1. 객체지향 언어
- 코드의 재사용성이 높다.
- 코드의 관리가 용이하다.
- 신뢰성이 높은 프로그래밍을 가등하게 한다.
2. 클래스와 객체
2.1 클래스와 객체의 정의와 용도
클래스: 객체를 정의 해놓은것으로 객체를 생성할때 사용한다.
클래스 | 객체 |
---|---|
제품설계도 | 제품 |
TV설계도 | TV |
붕어빵 기계 | 붕어빵 |
2.2 객체와 인스턴스
클래스 —(인스턴스화)—> 인스턴스(객체)
2.3 객체의 구성요소 - 속성과 기능
1 | 속성(propertiy) - 맴버변수(member variable), 특성(attribute), 필드(field), 상태(state) |
- TV의 속성과 기능
속성 | 기능 |
---|---|
크기, 길이, 높이, 색상, 볼륨, 채널 등 | 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 |
속성-> 맴버변수
기능->매서드
- TV 클래스
1
2
3
4
5
6
7
8
9
10
11class Tv {
//Tv의 속성(맴버변수)
String color;
boolean power;
int channel;
//Tv의 기능(매서드)
void power(){ power=!power;}
void channelUp(){++channel;}
void channelDowun(){--channel;}
}
2.4 인스턴스의 생성과 사용
클래스 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언한다.
변수명 = new 클래스명(); // 클래스의 객체를 생성 후 , 객체의 주소를 참수변수에 저장한다.
Tv t;
t = new Tv();
- TvTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21class Tv {
//Tv의 속성(맴버변수)
String color;
boolean power;
int channel;
//Tv의 기능(매서드)
void power(){ power=!power;}
void channelUp(){++channel;}
void channelDowun(){--channel;}
}
class TvTest{
public static void main(String args[]){
Tv t; // 메모리에 참조변수 t의 공간 생김
t = new Tv(); // t에 객체 주소값이 저장, 메모리 공간에 TV 클래스 인스턴스가 생김
t.channel = 7; //t에 저장된 주소에 있는 인스턴스 멤버변수 channel에 7저장
t.channelDown(); //t가 참조하는 Tv인스턴스 channelDowun매서드 호출->channel1감소
}
}
2.5 클래스의 또 다른 정의
클래스 - 데이터와 함수의 결합
- 변수 - 하나의 데이터를 저장할 수 있는 공간
- 배열 - 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
- 구조체 - 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
클래스 - 데이터와 함수의 결합(구조체+함수)
클래스 - 사용자 정의 타입
서로 관련된 변수를 묶어서 하나의 타입으로 새로 추가1
2
3int hour;
int minute;
float second;
1 | class Time{ |