Programming Language/Java

[JAVA] 클래스의 정의

BS Kwak 2021. 7. 13. 14:15

클래스의 정의

클래스의 정의는 크게 3가지로 나눌 수 있다. 

(1) 설계도 (2) 데이터 +함수 (3) 사용자 정의 타입

 

(1) 설계도

말그대로 설계도.. "https://bskwak.tistory.com/219" 참고 

 

)2) 클래스 == 데이터 + 함수

 

※ 배열 vs 구조체 

더보기

배열은 같은 type만 묶을 수 있고 

구조체는 다른 type도 묶을 수 있음

구조체에서 좀 더 발전(?)된 형태가 클래스라 할 수 있음

클래스 == 구조체(다양한 type 변수) + 함수(메서드) 

 

(3) 사용자 정의 타입

원하는 타입을 새로 만듦 - 예를 들면 시간 같은거? 

/*1*/
int hour;
int min;
int sec;

/*2*/
int hour1, hour2, hour3;
int min1, min2, min3;
int sec1, sec2, sec3;

/*3*/
int[] hour = new int[3]; 
int[] min = new int[3];
int[] sec = new int[3];

class 로 시간에 대한 "hour, minute, second"를 하나로 묶어서 코드를 써보면 다음과 같다. 

class Time{
	int hour;
    int minute;
    int second;
}

/*1*/
Time t = new Time();

/*2*/
Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();

/*3*/
Time[] t = new Time[3];
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();

코드가 훨~씬 간결해지고 시분초가 하나로 묶이기 때문에 이전 코드처럼 따로 분리되는 현상이 사라짐 

 

이전 코드 : 비 객체 지향 코드 

이후 코드 : 객체 지향적 코드 (관련된 값들을 묶을 수 있고 간결해짐)

하는 일의 차이는 없지만, JAVA와 같은 객체 지향 언어에서는 이후 코드가 적합