클래스와 객체
클래스와 객체를 설명하는 예시로 여러 예시가 있습니다.
- 게임 비유 : 클래스(직업)에 따라 클래스(직업)에 맞는 아이템과 동작들이 주어져서 객채가 생성되는 것.
- 붕어빵 비유 : 클래스라는 모형틀(붕어빵틀)을 만들고 팥을 넣고 구워 객채(붕어빵)를 만든다.
이러한 예시를 보고 클래스와 객체가 무엇인지 아래 설명을 본다면 좀 더 이해가 쉬울 겁니다.
클래스
클래스란 "객체를 정의해놓은 것" 또는 "객체의 설계도 또는 틀"이라고 정의할 수 있습니다.
클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성됩니다.
- 클래스의 정의 : 객체를 정의해 놓은 것
- 클래스의 용도 : 객체를 생성하는데 사용
객체
객체는 "실제로 존재하는 것"으로 우리가 주변에서 볼 수 있는 책상, 의자, 컴퓨터와 같은 사물들을 곧 객체라고 할 수 있습니다.
프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻합니다.
- 객채의 정의 : 실제로 존재하는 것, 사물 또는 개념
- 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다르다.
인스턴스
인스턴스란, 클래스로부터 객체를 만드는 과정을 클래스의 인스터스화라고 하며,
클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 합니다.
class Tv {
// Tv의 속성(멤버변수)
String color; // 색상
boolean power; // 전원상태(on/off)
int channel; // 채널
// Tv의 기능(메서드)
void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드
void channelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드
void channelDown() { --channel; } // TV의 채널을 낮추는 기능을 하는 메서드
}
위 처럼 Tv 클래스가 있다고 가정합시다.
Tv 클래스를 선언한 것은 Tv설계도를 작성한 것에 불과하므로 Tv인스턴스를 생성해야 Tv를 사용할 수 있습니다.
인스턴스는 다음과 같이 생성할 수 있습니다.
클래스명 변수명 = new 클래스명();
Tv t = new Tv();
Example Code
class Tv {
// Tv의 속성(멤버변수)
String color; // 색상
boolean power; // 전원상태(on/off)
int channel; // 채널
// Tv의 기능(메서드)
void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드
void channelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드
void channelDown() { --channel; } // TV의 채널을 낮추는 기능을 하는 메서드
}
class TvTest {
public static void main(String args[]) {
Tv t; // Tv인스턴스를 참조하기 위한 변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한다.
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.");
}
}
Tv 클래스를 생성하고 그 클래스 안에는 Tv의 속성과 Tv의 기능인 메서드가 포함되어있습니다.
( 메서드에 void가 붙으면 return; 반환을 생략 가능합니다 )
메인 클래스인 TvTest에 Tv 클래스를 이용해 t라는 객체를 생성하고 그 객체의 채널은 7로 지정하고, channelDown() 메서드를 통해 채널을 -1 하여 "현재 채널은 6 입니다." 라고 출력이 되었습니다.
이번 포스팅에는 자바의 클래스와 객체에 대해 간단하게 알아보았습니다.
다음 포스팅에서는 클래스 변수, 인스턴스 변수, 클래스 메서드, 인스턴스 메서드에 대해 다뤄보려 합니다.
클래스 변수와 인스턴스 변수
(Java/자바) 클래스 변수, 인스턴스 변수, 지역 변수란?
이 글을 읽기 앞서 자바의 클래스와 객체란? 인스턴스란 ? 무엇인지 모른다면 아래 포스팅을 참고하시면 좋습니다. (Java/자바) 클래스와 객체 클래스와 객체 클래스와 객체를 설명하는 예시로 여
hstory0208.tistory.com
클래스 메서드와 인스턴스 메서드
[Java/자바] 클래스(static) 메서드와 인스턴스 메서드
클래스 변수와 인스턴스 변수에서도 그랬듯이, 메서드 앞에 static이 붙으면 클래스 메서드, 없으면 인스턴스 메서드 입니다. 클래스 메서드도 클래스 변수처럼, 객체를 생성하지 않고도 "클래스
hstory0208.tistory.com
참고자료
자바의 정석3
'◼ JAVA' 카테고리의 다른 글
[Java/자바] 메서드(Method)란 ? (1) | 2022.10.19 |
---|---|
[Java/자바] 클래스 변수, 인스턴스 변수, 지역 변수란? (1) | 2022.10.18 |
(Java/자바) System.arraycopy()를 이용해 배열 복사 (1) | 2022.10.14 |
[Java/자바] 연산자의 모든 것 (0) | 2022.10.13 |
[Java/자바] StringBuilder 클래스란 ? (0) | 2022.10.13 |