자바 인스턴스에 관한 질문.
파랑
public class car122
{
public static final int co=1;
public static final int con = 2;
public static final int tt=3;
public static final int v4 = 1;
public static final int v6 = 2;
public static final int v8 = 3;
public static final int v10 = 4;
public int en;
public int bo;
public int to;
public boolean is;
public int cu;}
public class cartest
{
public static void turnon(car c)
{
c.is = true;
}
public static void turnoff(car c)
{
c.is = false;
}public static void acc(car c)
{
//System.out.println(c.v4);
switch(c.en)
{
case c.v4:
speedup(c,4);
break;
case car.v6:
speedup(c,10);
break;
case car.v8:
speedup(c,20);
break;
}
}
public static void speedup(car c,int n)
{
if(c.is == false)
{
return;
}
if((c.cu + n)= c.to)
{
c.cu = c.to;
}
else
{
c.cu= c.cu + n;
}}
public static void main(String args[])
{
car c1 = new car();
c1.to = 100;
c1.cu = 0;
c1.en = c1.v4;
turnon(c1);
//System.out.println(c1.en);
//for sure my c1.en
for(int i = 0;i 4;i++)
{
acc(c1);
System.out.println(c1.cu);
}}
}
함수
public static void acc(car c)
{
//System.out.println(c.v4);
switch(c.en)
{
case c.v4:
speedup(c,4);
break;
case car.v6:
speedup(c,10);
break;
case car.v8:
speedup(c,20);
break;
}
}
부분에서case car.v4:
를 c.v4로 바꾸면 에러가 납니다.
왜 그렇습니까?
car.v4나 c.v4나 같은 값을 가르치고 있는것 아닙니까?
-
파도
static 변수에 대한 접근은 클래스이름.변수이름 으로 접근합니다. 따라서 case 문에서 car122 클래스 내의 v4를 사용하고 싶으신 거니까 car122.v4라고 써야 하겠죠?
-
카프리콘
car 라는 클래스가 어디있나요? 안보이넹... car 라는 클래스가 있다면... car. 과 c. 은 다르죠... 클래스이름에서 엑세스 하는 것과 인스턴스에서 엑세스 하는 것은... 다르죠...