충분히 쌓여가는
클래스의 정의 본문
클래스
1. 설계도
2. 데이터 + 함수
3. 사용자 정의 타입
더보기
1. 변수
하나의 데이터를 저장할 수 있는 공간
2. 배열
같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간(같은 타입만)
3. 구조체
서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간(다른 타입 가능)
4. 클래스
데이터와 함수의 결합(구조체 + 함수)
사용자 정의 타입
기본 자료형(primitive type)외에 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것
자바와 같은 객체지향언어에서는 클래스가 곧 사용자 정의타입
기본형의 개수는 8개로 정해져 있지만 참조형의 개수가 정해져 있지 않은 이유는 프로그래머가 새로운 타입을 추가할 수 있기 때문
시간을 표현하기 위해 3개의 변수 선언
int hour = 12;
int minute = 34;
float second = 56;
시간의 개수 늘어날때마다 변수 추가는 곤란하기 때문에 배열사용
하나의 시간을 구성하는 시분초로 서로 분리되어 있기 때문에
시분초를 하나로 묶는 사용자 정의 타입 필요 = 클래스 사용
int[] hour = new int[3];
int[] minute = new int[3];
float[] second = new float[3];
클래스 사용
시분초가 하나의 단위로 묶여서 다루어지기 때문에 다른 시간 데이터와 섞이는 일은 없지만,
시간 데이터에는 추가적인 제약조건이 있다
시, 분, 초는 모두 0보다 크거나 같다
시의 범위는 0~23, 분과 초의 범위는 0~ 59
class Time {
int hour;
int minute;
float secondl;
}
비객체지향적 코드 | 객체지향적 코드 |
int hour1, hour2, hour3; int minute1, minute2, minute3; float second1, second2, second3; |
Time t1 = new Time(); Time t2 = new Time(); Time t3 = new Time(); |
int [] hour = new int[3]; int [] minute = new int[3]; float [] second = new float[3]; |
Time[] t = new Time[3]; t[0] = new Time(); t[1] = new Time(); t[2] = new Time(); |
Time 클래스
public class Time {
private int hour;
private int minute;
private float second;
public int getHour() {return hour;}
public int getMinute() {return minute;}
public float getSecond() {return second;}
public void setHour(int h) {
if (h < 0 || h > 23) return;
hour = h;
}
public void setMinute(int m) {
if (m < 0 || m > 59) return;
minute = m;
}
public void setSecond(float s) {
if (s < 0.0f || s > 59.99f) return;
second = s;
}
}
'Java > 객체지향' 카테고리의 다른 글
인스턴스 변수와 클래스 변수 (0) | 2023.05.24 |
---|---|
선언 위치에 따른 변수의 종류 (0) | 2023.05.23 |
객체 배열 (0) | 2023.05.22 |
인스턴스 생성과 사용 (0) | 2023.05.21 |
클래스와 객체와 instance (0) | 2023.05.21 |