프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch6-9,10 클래스의 정의

life grow 2022. 6. 22. 23:13

6-9 클래스의 정의(1)

 

클래스 == 데이터 + 함수

 

데이터의 저장공간에 발전과정

1.변수: 하나의 데이터를 저장할 수 있는 공간

2.배열: 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간(같은 타입만)

3.구조체: 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간

(다른 타입도 가능. 왜? 서로 관계가 있으니까)

4.클래스: 데이터(변수)와 함수의 결합(구조체 + 함수)

함수==메서드(어떤 하나의 작업을 하는 명령문들을 하나로 묶어 놓은 것)

작업, 계산할 때 뭐 가지고 할까? 데이터

데이터: 숫자나 문자

데이터와 관련있는 함수는 같이 묶어놓는 것이 편리하다.

데이터 + 데이터와 관련있는 함수를 합친 것이 클래스

 

6-10 클래스의 정의(2)

 

사용자 정의 타입 - 원하는 타입을 직접 만들 수 있다.

 

시,분,초가 하나의 시간인데

배열은 시간끼리, 분끼리, 초끼리 따로 묶인다.

이 문제를 해결하려면 어떻게 해야할까?

3개의 변수를 묶어서 타임이라는 클래스로 정의했다.

                                      class Time {

int hour;                              int hour;

int minute;              ->         int minute;

int second;                         int second;}

와 Time 클래스는 거의 같은 코드다.

 

2번째 3개의 시간을 다루기 위한 코드는

3개의 객체를 만들어서 바꿀 수 있다.

 

3번째 배열은

객체 배열(참조변수 배열)로 바꿀 수 있다.

 

3개의 변수를 클래스로 묶으니

1. 코드가 간결해지고

2. 시,분,초가 따로 묶이는 일이 없어진다.

 

왼쪽 코드와 오른쪽 코드가 서로 같다.

둘의 차이점은

1. 오른쪽 코드가 더 객체지향적인 코드이다.

2. 시,분,초 값이 하나로 강하게 묶여있다.

3. 코드가 덜 복잡해지고 유지보수하기 편해진다.