클래스의 또 다른 정의
클래스?
1. 데이터와 함수의 결합
- 변수 - 하나의 데이터를 저장할 수 있는 공간
- 배열 - 같은 타입의 여러 데이터를 저장할 수 있는 공간
- 구조체 - 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간
- 클래스 - 데이터와 함수의 결합(구조체 + 함수)
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
Java에서는 구조체 개념이 없기 때문에 구조체처럼 동작하도록 만들어 줘야 함
2. 사용자 정의 타입
프로그래밍 언어에서 제공하는 기본 자료형 외에 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 사용자 정의 타입이라고 한다. 기본형의 개수는 8개로 정해져 있지만 참조형의 개수가 정해져 있지 않은 이유는 이처럼 프로그래머가 새로운 타입을 추가할 수 있기 때문이다.
class Time {
int hour;
int minute;
float second;
}
위는 시, 분, 초를 하나의 단위로 묶는 사용자 정의 타입이다.
시간 데이터는 다음과 같은 추가적인 제약조건이 있다.
- 시, 분, 초는 모두 0보다 크거나 같아야 한다.
- 시의 범위는 0~23, 분과 초의 범위는 0~59이다.
객체지향 언어가 아닌 언어에서는 이러한 추가적인 조건들을 반영하기가 어려우나 객체지향 언어에서는 제어자와 메서드를 이용해서 이러한 조건들을 코드에 쉽게 반영할 수 있다.
public class Time {
private int hour;
private int minute;
private float second;
public boid setHour(int h) {
if (h < 0 || h > 23) return;
hour = h;
}
}
위의 코드는 hour의 값을 변경하기 위한 메서드로 지정한 값이 0보다 작거나 23보다 크면 변경하지 않고 메서드를 종료시킨다. 조건에 맞는 경우만 return 되지 않고 hour에 지정한 값이 저장되게 된다.
'Java의 정석' 카테고리의 다른 글
객체 지향 개념 - 5 메서드? return문 (0) | 2022.03.04 |
---|---|
객체 지향 개념 - 4 선언 위치에 따른 변수의 종류 (0) | 2022.03.03 |
객체 지향 개념 - 2 인스턴스의 생성과 사용 (0) | 2022.02.28 |
객체 지향 개념 - 1 객체지향 언어? 클래스와 객체 (0) | 2022.02.25 |
Array (0) | 2022.02.24 |