클래스의 정의
1. 설계도
2. 데이터와 함수의 결합
3. 사용자 정의 타입
데이터와 함수의 결합 관점
변수 -> 배열 -> 구조체 -> 클래스
1. 변수는 하나의 데이터를 저장할 수 있는 공간
2. 배열은 같은 타입의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체는 서로 관련된 여러 데이터 (다른 타입도 ok) 하나로 저장할 수 있는 공간
-> 서로 관련있는 것들을 하나로 묶어서 다루면 편리한 일이 많음
4. 클래스는 데이터와 함수의 결합 (구조체 + 함수)
-> 함수가 작업하는 데이터를 같이 묶어놓는 것이 편리하다~
사용자 정의 타입 관점
사용자 정의 타입으로 우리가 원하는 타입을 직접 만들 수 있다.
시간을 다루고싶은데 시간을 저장하는 타입이 없다고 가정해보자.
int hour;
int minute;
int second;
더 많은 시간을 다루고 싶을 때
int[] hour = new int[3];
int[] minute = new int[3];
int[] second = new int[3];
하지만 이것은 비객체지향적인 코드로
시, 분, 초가 하나로 묶이지 않는다는 문제가 존재한다.
따라서 세개의 변수를 하나로 묶어서 Time이라는 클래스를 만들면,
하나의 객체를 생성해서 시간을 표현할 수 있으며, 객체배열로도 묶을 수 있다.
class Time {
int hour;
int minute;
int second;
}
Time t = new Time();
Time[] t = new Time[3];
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();
이와같이 객체지향적인 코드로 만들면
서로 관련된 값들을 강하게 묶을 수 있는 장점도 있고,
코드가 간결해지고 유지보수하기도 편해진다 !
'Backend > Java' 카테고리의 다른 글
| 자바의정석 ch6. 메서드란? (2) | 2020.12.13 |
|---|---|
| 자바의정석 ch6. 선언위치에 따른 변수의 종류 (0) | 2020.12.13 |
| 자바의정석 ch6. 객체 배열 (2) | 2020.12.12 |
| 자바의 정석 ch6. 객체의 생성과 사용 (0) | 2020.12.12 |
| 자바의 정석 ch6. 클래스와 객체 (0) | 2020.12.12 |
댓글