클래스와 객체
1. 클래스와 객체의 정의와 용도
1) 클래스와 객체의 정의와 용도
- 클래스의 정의 : 객체를 정의해 놓은 것이다.
- 클래스의 용도 : 객체를 생성하는데 사용된다.
- 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념
- 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름
클래스 | 객체 |
제품 설계도 | 제품 |
TV 설계도 | TV |
붕어빵 기계 | 붕어빵 |
2. 객체와 인스턴스
클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(Instantiate)라고 한다.
클래스로부터 메모리에 생성된 객체를 인스턴스(Instance)라고 한다.
객체(Object)는 프로그램에서 구현할 대상으로 이를 구현하기 위한 설계도가 클래스(Class)이고, 클래스로부터 메모리에 생성된 실체가 인스턴스(Instance)이다.
3. 객체의 구성요소 - 속성과 기능
속성(property) - 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)
기능(function) - 메서드(method), 함수(function), 행위(behavior)
속성 | 크기, 길이, 높이, 색상, 볼륨, 채널 등 → 변수 |
기능 | 켜기, 끄기, 볼륨 높이기, 볼륨 낮귀, 채널 변경하기 등 → 메서드 |
4. 인스턴스의 생성과 사용
클래스명 변수명; → 클래스의 객체를 참조하기 위한 참조 변수를 선언
변수명 = new 클래스명 (); → 클래스의 객체를 생성 후, 객체의 주소를 참조 변수에 저장
Tv t; // TV클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야 한다.
같은 클래스로부터 생성되었을지라도 각 인스턴스의 속성(멤버변수)은 서로 다른 값을 유지할 수 있으며,
메서드의 내용은 모든 인스턴스에 대해 동일하다.
둘 이상의 참조변수가 하나의 인스턴스를 가리키는(참조하는) 것은 가능하지만 하나의 참조변수로 여러 개의 인스턴스를 가리키는 것은 가능하지 않다.
5. 객체 배열 (=참조변수 배열)
- 많은 수의 객체를 다룰 때 배열로 다루며 이를 객체 배열이라고 한다.
- 객체 배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장된다.
- 같은 타입의 객체가 저장할 수 있다.
6. 클래스의 또 다른 정의
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
- 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
- 클래스 : 데이터와 함수의 결함 (구조체 + 함수)
'Java' 카테고리의 다른 글
객체(Object) - 오버로딩(Overloading) (0) | 2022.08.23 |
---|---|
객체(Object) - 변수와 메서드 (0) | 2022.08.23 |
객체(Object) - 객체 지향 언어 (0) | 2022.08.22 |
배열(Array) - 다차원 배열 (0) | 2022.08.21 |
배열(Array) - 배열(Array)이란? (0) | 2022.08.20 |