클래스
- 객체의 모든 속성과 기능이 정의되어 있으며 클래스로부터 객체를 생성하면, 클래스에 정의된 속성과 기능을 모두 가진 객체가 만들어 짐
객체
- 객체는 속성과 기능의 집합이며, 갖고있는 속성과 기능을 맴버(구성원, member) 라고 함
- 객체지향 프로그래밍에서는 속성과 기능을 각각 변수, 메서드 라고 함
- 객체를 사용한다는 것은 객체가 가지고 있는 속성과 기능을 사용한다는 뜻
- 속성
- 맴버변수(member variable), 특성(attribute), 필드(field), 상태(state)
- 기능
- 메서드(method), 함수(function), 행위(behavior)
인스턴스
- 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(instantiate)라고 하며, 클래스로부터 만들어진 객체는 그 클래스의 인스턴스(instance)라고 함
- 인스턴스와 객체는 같은 의미
- 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖음
- 인스턴스는 어떤 클래스로부터 만들어진 것인지에 대한 구체적인 의미
- 책상은 인스턴스다. 보다 책상은 객체다. 가 더 자연스러움
- 책상은 책상클래스의 객체다. 보다 책상은 책상클래스의 인스턴스다. 가 더 자연스러움
package zlzltntn;
public class Tv {
// 맴버변수
private int channel;
private int volume;
Tv (){
channel = 5;
volume = 10;
}
Tv (int channel, int volume){
this.channel = channel;
this.volume = volume;
}
// 메서드
void channelUp(){
++channel;
}
void volumeUp(){
++volume;
}
void setChannel(int channel) {
this.channel = channel;
}
void setVolume(int volume) {
this.volume = volume;
}
int getChannel() {
return channel;
}
int getVolume() {
return volume;
}
public static void main(String [] args){
Tv tv; // Tv 클래스 타입의 참조변수 t를 선언
tv = new Tv(); // Tv 인스턴스를 new 연산자로 생성한 후, 인스턴스의 주소를 t에 저장
tv.channelUp();
System.out.println(tv.getChannel());
}
}