What Is a Class?
What Is Inheritance?
What Is an Interface?
객체들은 바깥세계와의 상호작용을 노출된 메소드를 통해 한다.
메소드는 바깥세계와의 객체의 인터페이스를 구성한다.
가장 평범한 형태로 인터페이스는 관련있는 body없는 메소드들의 묶음이다.
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
class ACMEBicycle implements Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
// The compiler will now require that methods
// changeCadence, changeGear, speedUp, and applyBrakes
// all be implemented. Compilation will fail if those
// methods are missing from this class.
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}
인터페이스를 구현하면 클래스가 제공하기로 약속 한 동작에 대해 클래스가 더 공식적으로 될 수 있다.
인터페이스는 바깥세계와 클래스 사이의 계약서를 형성한다.
What Is a Package?