"안녕하세요, 아미고! 오늘은 Bilaabo가 변수가 초기화되는 순서에 대해 이야기하겠습니다 ."
어떤 코드를 보고 있다고 상상해 보십시오. 변수는 어떤 값을 얻습니까?
암호
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
암호
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
"그게 정말 허락되는 건가요?"
"물론이죠. 클래스의 멤버 메소드와 필드가 선언되는 순서는 중요하지 않습니다. "
클래스는 위에서 아래로 로드되므로 필드가 이미 로드된 다른 필드에만 액세스하는 것이 중요합니다. 이 예에서 b는 a 에 액세스할 수 있지만 c 에 대해서는 아무것도 모릅니다 .
"그리고 어떻게 될까요?"
"변수가 생성되면 기본값을 얻습니다."
암호 | 실제로 일어나는 일 |
---|---|
|
|
|
|
"이런 몰리! 너무 간단해. 고마워, Bilaabo. 넌 진짜 친구야!"
"만세! 빌라아보에게 친구가 생겼다!"
GO TO FULL VERSION