변수와 클래스 생성에 대해서 질문이 있습니다.

nexusz99의 이미지

변수를 생성할때요

int a;

만 하고 초기화를 안해도 a라는 변수는 메모리에 올라가게되는건가요?

int a; 이렇게 하는걸 정의라고 하는거 맞죠?

/////////////

클래스
A라는 클래스가 있다고 하면요
A a;
로 하면 a는 A의 객체가 되는거라고 해야되는건가요?

A a = new A();
라고 했을경우 어떤식으로 해석을 해야하나요? A의 객체 a 에 A를 준다?

그럼 B라는 클래스가 있을경우

A a = new B();
이런식으로 하면 어떻게 되는건가요?
ㅠㅠ

질문이 좀 횡성수설 한데 .. 꼭좀 알려주세요

netionics의 이미지

Java라는 가정하에

1. 초기화 안해도 공간을 잡아 먹습니다. 변수를 값에 이름을 붙여주는 것이 아니라 값을 담는 상자에 이름을 붙인다고 생각하시는게 좋습니다. 적어도 C++나 Java에서는요
2. a는 A의 객체 맞습니다만 위에서 말한바대로 A의 객체를 담은 상자에 a라는 이름을 붙인것이라 생각하시면 좋습니다.
3. A를 담을 수 있는 상자를 만들어 a라는 이름을 붙이고(A a) A객체를 생성한 후(new A()) 앞에서 만든 상자 a에 넣는다 (a = ...)라고 보시면 됩니다.
4. a에 담을 수 있는 것은 한정되어 있습니다. B객체를 a에 담을 수 있다면 ok이고 아니면 에러입니다. 상속를 모르시면 이해할 수 없습니다.

:)