6.1 클래스와 객체
1.1 클래스와 객체의 정의와 용도
클래스의 정의 - 객체를 정의해 놓은 것이다.
클래스의 용도 - 클래스는 객체를 생성하는데 사용된다.
객체의 정의 - 실제로 존재하는 것, 사물 또는 개념이다.
객체의 용도 - 객체의 속성과 기능에 따라 다르다.
클래스 | 객체 |
제품 설계도 | 제품 |
TV 설계도 | TV |
붕어빵기계 | 붕어빵 |
1.2 객체와 인스턴스
- 객체(Object)는 인스턴스(Instance)를 포함하는 일반적인 의미이다
책상은 인스턴스다. | 책상은 책상 클래스의 객체다 |
책상은 객체이다. | 책상은 책상 클래스의 인스턴스다. |
- 인스턴스화(instantiate, 인스턴스화)
= 클래스로부터 인스턴스를 생성하는 것을 의미한다.
클래스 ---------------- (인스턴스화) ------------------>인스턴스(객체)
1.3 객체의 구성요소 - 속성과 기능
- 객체는 속성과 기능으로 이루어져 있다.
- 객체는 속성의 기능의 집합이며, 속성과 기능을 객체 멤버(member, 구성요소)라고 한다.
- 속성은 변수로, 기능은 메서드로 정의한다.
- 클래스를 정의할 때 객체의 속성은 변수로, 기능은 메서드로 정의한다.
class Tv{
//변수
String color; //색
boolean power; //전원상태(on/off)
int channel; //채널
//메서드
void power() { //전원 on/off
power = ! power; }
void channeruup{ //채널 높이기
channel++; }
void channelDown { //채널 낮추기
channel--; }
}
1.4 인스턴스의 생성과 사용
- 인스턴스의 생성방법
Tv t; //클래스명 참조변수명 -> 객체를 다루기 위한 참조변수 선언
t = new Tv(); //new 클래스명(); -> 객체 생성 후, 생성된 객체의 주소를 참조변수에 저장.
//Tv t = new Tv();
- 인스턴스의 생성과 사용 2
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println(t.channel);
-인스턴스의 생성과 사용 3
Tv t;
t1 = new Tv();
t2 = new Tv();
t2 = t1 //t1의 값을 t2에 저장
t1.channel = 7;
System.out.println(t1.channel);
System.out.println(t2.channel);
-인스턴스의 생성과 사용 4
하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우는 가능하다.
여러개의 인스턴스를 하나의 참조변수가 가리키는 경우는 불가능하다.
- 참조변수란 실제값을 저장하는 기본타입과 달리 주소값을 저장하는 변수이다.
1.5 클래스의 또 다른 정의
1. 클래스 - 데이터와 함수의 결합
- 변수: 하나의 데이터를 저장할 수 있는 공간
- 배열: 같은 타입의 여러 데이터를 저장할 수 있는 공간
- 구조체: 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간
- 클래스: 데이터와 함수의 결합(구조체 + 함수)
2. 클래스 - 사용자 정의 타입(User - defined type)
- 프로그래머가 직접 새로운 타입을 정의할 수 있다.
- 서로 관련된 값을 묶어서 하나의 타입으로 정의한다.
<정석>
class Time{
int hour;
int minute;
int second;
}
class Time{
int hour;
int minute;
int second;
}
↓
Time t = new Time();
class Time{
int hour1, hour2, hour3;
int minute1, minute2, minute3;
int second1, second2, second3;
}
↓
Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();
class Time{
int[] hour = new int[3];
int[] minute = new int[3];
int[] second = new int[3];
}
↓
Time[] t = new Time[3]
Time t[0] = new Time();
Time t[1] = new Time();
Time t[2] = new Time();
☞ 본 블로그 게시물의 작성은 자바의 정석 기초편 요약본을 보고 작성하였습니다.
'Java > 객체지향' 카테고리의 다른 글
자바의 정석 제 6장 정리 (0) | 2021.11.04 |
---|---|
[객체지향][자바의 정석] - 5. 변수의 초기화 멤버변수의 초기화 (0) | 2021.11.02 |
[객체지향][자바의 정석] - 6.4 생성자 (0) | 2021.11.01 |
[객체지향][자바의 정석] - 3. 메서드 오버로딩 (0) | 2021.10.17 |
[객체지향][자바의 정석] - 2. 변수와 메서드 (0) | 2021.10.13 |