2014년 4월 1일 화요일

[Java]생성자 메서드의 초기화

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

댓글 없음:

댓글 쓰기