클래스의, 공통적인, 객체 생성없이 사용 가능없이 사용 가능
변경될 수 없는
추상의, 미완성의
abstract class AbstractTest { // 추상 클래스 : 추상 메서드를 포함한 클래스
abstract void move(); // 추상 메서드 : 구현부가 없는 메서드
}
AbstractTest a = new AbstractTest(); // ERROR:추상 클래스의 인스턴스 생성 불가
클래스 앞에는 public, (default)만 붙일 수 있고, 멤버 앞에는 모두 붙일 수 있다.
접근 제어자는 최대한 좁히는 게 좋다.
class Time {
private int hour;
private int minute;
private int second;
// 메서드를 통해 멤버 변수에 간접 접근
public int getHour() {
return hour;
}
public void setHour(int hour) {
if (isNotValidHour(hour))
return;
this.hour = hour;
}
// Alt+Shift+M
private boolean isNotValidHour(int hour) {
return hour < 0 || hour > 23;
}
}
public class c7_7_210414 {
public static void main(String[] args) {
Time t = new Time();
t.getHour();
t.setHour(25);
}
}