클래스(설계도) | 객체(제품) |
TV 설계도 | TV |
핸드폰 설계도 | 핸드폰 |
클래스 : 설계도라고 생각 하면된다.
TV를 만들기 위해서는 설계도가 필요한데 설계도 안에는 TV에 필요한 기능, 속성 등 여러가지 속성들이 들어 있다고 생각
하면된다.
즉.. 아래보면 Tv 라는 클래스가 정의되어 있고, 가로,세로, 볼륨, 체널, 여러 기능들이 정의되어 있다.
하지만 클래스는 말그대로 설계도 일 뿐이고.. Tv를 사용하려면 Tv라는 객체를 생성해야 한다.
객체를 만들때는 new 라는 명령어를 통해서 생성한다.
객체를 생성하기 위해서는
new 라는 키워드를 사용해서 생성한다. 방법은
클래스(타입) 참조변수( 왼쪽에 있는 클래스의 참조변수) = new 생성자():
new : 인스턴스를 생성한다. 메모리에 공간을 할당해준다. ---> 생성자();
즉 생성자()를 통해서 초기화된 -> 인스턴스(객체)를 생성하여 메모리 공간에 할당해 준다.
이렇게 생성된 인스턴스의 주소를 참조변수에 저장해준다.
new 키워드를 통해서 인스턴스를 생성하였고 Tv() 생성자를 통해서 인스턴스를 초기화 하였다.
이렇게 생성된 인스턴스의 주소값을 t1(참조변수)에게 저장한다.
그 후에 객체를 사용하려면 '참조변수를 통해서 사용한다.'
t1.vol // t1.channel
1) Method 영역에 클래스가 올라가고
2) stack 영역에 main메서드가 올라가고 main메서드안에서
2-1) Tv 클래스가 Method 영역에 올라가고
2-2) main 영역에 t1 참조변수가 생성되고
2-3) Heap 영역에 Tv() 인스턴스가 생성되고 주소가 할당됨(생성자에 따라 인스턴스 변수의 초기화가 달라짐)
2-4) 생성된 인스턴스의 주소를 참조변수 t1에 저장
이번에는 생성자를 다르게 해서 인스턴스를 생성하면
인스턴스 생성할때, Tv(int a, int b) 생성자를 사용하여 인스턴스(객체)를 초기화 하므로 vol, channel 값이 변경된 것을 확인
할 수 있다.
이렇게 생성된 인스턴스는 참조변수를 통해서만 사용할 수있으며,, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.
그렇게 때문에 생성한 인스턴스의 주소값을 참조변수에 넣어서 사용한다.
'dev > JAVA' 카테고리의 다른 글
[JAVA] 매개변수(Parameter) , 인수(argument) (0) | 2022.05.30 |
---|---|
[JAVA] 클래스 (0) | 2022.05.30 |
[JAVA] 변수 (0) | 2022.05.30 |
[JAVA] 생성자 맨날 까먹음,,,,...!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (0) | 2022.05.28 |
[JAVA] 날짜를 비교하여 반복문 돌리기 (0) | 2022.01.15 |