Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

클래스의 정의 본문

Java/객체지향

클래스의 정의

빌드이너프 2023. 5. 22. 14:19

클래스

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