[JAVA 객체지향] | 1. 클래스와 객체
Q1. 클래스
- 정의 : 객체를 정의해 놓은 것
- 용도 : 객체를 생성하는 데 사용
TV 👉 클래스 👉 class TV {
속성 | 크기, 길이, 높이, 색상, 볼륨, 채널 ...
👇
변수
👇
String color;
boolean power;
int channel;
기능 | 켜기, 끄기, 볼륨 높이기, 채널 변경하기 ...
👇
메서드
👇
void power() { power = !power; }
void channelUp() { channel++; }
void channelDown() { channel--; }
}
이것이 클래스생성
class TV {
String color;
boolean power;
int channel;
void power() { power = !power; }
void channelUp() { channel++; }
void channelDown() { channel--; }
}
Q2. 객체
- 객체 = 속성(변수) + 기능(메서드)
- 속성은 변수로, 기능은 메서드로 구현.
Q4. 객체 vs 인스턴스
- 객체 ≒ 인스턴스
(둘 다 같은 말이라고 봐도 된다.) - 객체 : 모든 인스턴스를 대표하는 일반적 용어
- 인스턴스 : 특정 클래스로 부터 생성된 객체
Q5. 인스턴스화
클래스
👇 TV t = new TV( );
이것이 인스턴스화
객체
class명 참조변수명 = new 생성자;
class명 참조변수명 👉 ① 참조변수를 만들고
new 생성자 👉 ② 객체를 만들고 (new 연산자가 객체를 만들고, 그 객체의 주소를 알려준다.)
= 👉 ③ 참조변수와 객체를 연결해준다.
Tv t = new Tv();
Tv t 👉 ① Tv클래스 타입의 참조변수 t를 선언
new Tv(); 👉 ② 객체를 만들었다.
t = new Tv(); 👉 ③ 객체의 주소값이 참조변수 t에 대입된다.
❗❗❗참조변수 t는 객체가 아니고, 메모리에 생성된 객체를 가리키는 주소값을 가지고 있을 뿐이다. 아래 사진에 메모리에 만들어진 것이 객체이다. 객체에는 클래스가 설계된대로 변수와 메소드가 만들어진다. ❗❗❗
객체를 사용하려면 꼭 참조변수를 만들고 대입연산자를 통해 객체와 연결시켜줘야 한다.
Q6. 객체를 사용한다?
- 객체를 사용한다는 것은 객체가 가지고 있는 변수와 메소드를 사용한다는 것이다.
이것이 객체사용
참조변수.변수;
. 👉 "참조변수가 가리키는 객체의"
👉 참조변수가 가리키는 객체의 변수를 사용하겠다.
참조변수.메소드( );
. 👉 "참조변수가 가리키는 객체의"
👉 참조변수가 가리키는 객체의 메소드를 사용하겠다.
t.channel = 7;
. 👉 참조변수 t가 가리키는 객체 Tv()의
👉 변수 channel을 사용하겠다.
t.channelDown( );
. 👉 참조변수 t가 가리키는 객체 Tv()의
👉 메소드 channelDown( )을 사용하겠다.
t.channel = 7;
System.out.printf("현재 채널은 %d번 입니다.",t.channel);
t.channelDown();
System.out.printf<("현재 채널은 %d번 입니다.",t.channel);
( t가 가리키고 있는 객체가 사용할 수 있는
변수는 color, power, channel이 있고,
메소드는 power(), channelUp(), channelDown()이 있다. )
꼭 참조변수를 통해서만 객체의 변수와 메소드를 사용할 수 있다.
콘솔 창 결과
현재 채널은 7번 입니다.
현재 채널은 6번 입니다.
- 객체를 사용할려면 아래의 3단계를 거쳐야 한다.
(아래의 링크를 클릭하여 확인해보세요.)
1. 클래스 생성
2. 인스턴스(객체) 생성
3. 인스턴스(객체) 사용
Q7. 하나의 인스턴스를 여러개의 참조변수가 가리킬 수 있다!
- 참조변수 tv1이 가리키는 객체의 주소값이 참조변수 tv2에 대입된다.
- 0x200 객체를 가리키는 참조변수가 없으니 이 객체는 더 이상 사용불가
- JVM의 Garbage Collector가 주기적으로 메모리를 확인하고 있다가 사용할 수 없는 객체들을 제거한다.
- 하나의 인스턴스를 여러 개의 참조변수가 가리킬 수 있다.
- 여러 인스턴스를 하나의 참조변수가 가리킬 수 없다.
(변수는 하나의 값만 저장할 수 있기 때문이다.)
Author And Source
이 문제에 관하여([JAVA 객체지향] | 1. 클래스와 객체), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@on-n-on-turtle/JAVA-객체지향-1.-클래스와-객체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)