728x90
2021/02/18 - [Programming/Java] - [Java] - 객체지향언어란?
출처 : 자바의 정석
객체지향이론의 관점에서의 클래스 정의
객체를 생성하기 위한 틀.
클래스는 속성과 기능으로 정의되어 있다.
프로그래밍적 관점에서의 클래스 정의 1
데이터와 함수의 결합.
이를 이해하기 위해 데이터 저장형태의 발전과정을 보자.
변수 -> 배열 -> 구조체 -> 클래스
하나의 데이터를 저장하기 위해 변수를,
그리고 같은 종류의 데이터를 보다 효율적으로 다루기 위해서 배열이라는 개념이 도입되었으며,
자료형의 종류에 상관없이 서로 관계 깊은 변수들을 하나로 묶어서 다루기 위해 구조체가 등장.
그리고 함수는 주로 데이터를 가지고 작업을 하기 때무에 많은 경우에 있어 데이터와 함수는 관계가 깊다.
OOP 언어에서는 변수와 함수를 하나의 클래스에 정의하여 서로 관계가 깊은 변수와 함수들을 함께
다룰 수 있게 했다.
클래스 정의 2
사용자 정의 타입
객체지향언어에서는 클래스가 곧 사용자 정의 타입이다.
프로그래밍 언어가 제공하는 타입을 primitive type이라고 한다.
코드로 이해해보자.
int hour;
int minute;
int second;
시간을 표현하기 위해 3개의 변수를 선언하였다.
그런데 변수가 추가로 더 필요하다. 변수를 추가해보자
int hour1, hour2, hour3;
int minute, minute2, minute3;
int second, second2, second3;
이렇게 되면 변수가 추가로 필요할 때마다 계속 선언해야 한다.
배열로 처리해보자.
int [] hour = new int[3];
int [] minute = new int[3];
int [] second = new int[3];
변수가 추가로 더 필요해도 배열의 크기만 변경해주면 된다.
그러나 시간의 속성을 보면 시, 분, 초로 분리되어 있기때문에
위처럼 배열로 따로 따로 선언해주게 되면 후에 곤란해진다.
이런 경우에는 시, 분, 초를 하나로 묶는 사용자 정의 타입, 즉 클래스를 정의하여 사용해야 한다.
Class Time{
int hour;
int minute;
int second;
}
이게 바로 OOP 언어에서의 클래스, 사용자 정의 타입이다.
728x90
'Programming > Java' 카테고리의 다른 글
[Java] - 매개변수의 유효성 검사 (0) | 2021.02.23 |
---|---|
[Java] - 선언위치에 따른 변수의 종류 (0) | 2021.02.22 |
[Java] - 객체지향언어란? (0) | 2021.02.18 |
[Java] [우아한테크세미나] 190620 우아한객체지향 by 우아한형제들 개발실장 조영호님 (0) | 2021.02.18 |
[Java] - 특수문자를 split() 인자로 사용할때 주의할 점 (0) | 2021.02.18 |
댓글