자바의 정석 기초편 ch6-9,10 클래스의 정의
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. 코드가 덜 복잡해지고 유지보수하기 편해진다.