- public class Car {
- String name; //자동차 객체의 이름
- boolean power; // 시동 상태
- int tire; //자동차 타이어 갯수
- }
Car 클래스가 있고
- public class CarTest {
- Car c1 = new Car();
- }
- }
CarTest 클래스가 있을때에 c1.tire의 값이 없음에도 실행되는 이유는
클래스가 생성되면서 생성자 메서드가 초기화 되기때문입니다.
- Car(){
- this.name = null;
- this.power = false;
- this.tire = 0;
- } //생성자 메서드
메모리에는 code영역 stack영역 heap영역이 존재합니다.
처음에 stack영역에 Car c1이라는 변수가 만들어지고 heap영역에는 new Car()라는 생성자 메서드가 저장됩니다. Car c1 = new Car(); //c1에 new Car가 대입되는게 아닌 new Car의 위치를 가르키는 주소 또는 참조값을 지칭합니다.
처음에 stack영역에 Car c1이라는 변수가 만들어지고 heap영역에는 new Car()라는 생성자 메서드가 저장됩니다. Car c1 = new Car(); //c1에 new Car가 대입되는게 아닌 new Car의 위치를 가르키는 주소 또는 참조값을 지칭합니다.
댓글 없음:
댓글 쓰기