반응형
클래스(Class)와 객체(Object)의 정의와 용도
클래스(Class)란?
"객체를 정의해놓은 것" 또는 "객체의 설계도 또는 틀"
- 클래스의 정의 : 객체를 정의해 놓은 것
- 클래스의 용도 : 객체를 생성하는데 사용
객체(Object)란?
클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다.
- 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념
- 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
예) TV설계도(클래스)는 TV(객체)를 정의한 것이며 TV(객체)를 만다는데 사용된다.
객체와 인스턴스
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate)라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다.
예) TV설계도(클래스)로 부터 만들어진(인스턴스화) TV(객체)는 TV설계도(클래스)의 결과물(인스턴스)
객체의 구성요소 - 속성과 기능
객체는 다수의 속성과 다수의 기능을 갖는다. 즉 객체는 속성과 기능의 집합이라고 할 수 있다.
객체가 가지고 있는 속성과 기능을 그 객체의 멤버(구성원, member)라 한다.
클래스는 객체를 정의한 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다.
클래스로부터 객체를 생성하면, 클래스에 정의된 속성과 기능을 가진 객체가 만들어지는 것이다.
- 속성(property) - 멤버 변수(member variable), 특성(attribute), 필드(field), 상태(state)
- 기능(function) - 메서드(method), 함수(function), 행위(behavior)
예) TV(객체) 속성 - 크기, 길이, 높이, 색상, 볼륨, 채널 등 기능 - 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등
인스턴스의 생성과 사용
클래스만 선언해서는 객체를 사용할 수 없다.
클래스로 부터 인스턴스를 생성해야 인스턴스를 사용할 수 있다.
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.
예) TV설계도(클래스)만 작성 해서는 TV(객체)를 사용할 수 없다. TV설계도를 통해 TV를 생성해야 TV를 사용할 수 있다.
Class Tv { // TV 설계도
String color; // 색상
boolean power; // 전원
int channel; // 채널
void powerOnOff() { // 전원 ON, OFF
power = !power;
}
void channelUp() { // 채널 UP
if (power) ++channel;
}
void channelDown() { // 채널 DOWN
if (power) --channel;
}
}
Tv t; // 클래스 선언
t.powerOnOff(); // 클래스만 선언했기 때문에 오류 발생
t = new Tv(); // 인스턴스 생성
t.powerOnOff(); // 전원 ON
t.channelUp(); // 채널 UP
t.channelDown(); // 채널 DOWN
반응형
'Java' 카테고리의 다른 글
선언위치에 따른 변수의 종류 (0) | 2021.09.13 |
---|---|
클래스의 또 다른 정의 (0) | 2021.09.13 |
객체지향언어 (0) | 2021.09.13 |
String 배열(string array) (0) | 2021.09.13 |
다차원 배열(multi-dimensional array) (0) | 2021.09.13 |