현실세계에서 우리는 같은 종류의 객체를 많이 찾을 수 있다.
예를 들어, 제조사와 모델이 모두 같은 자전거가 수천대 있을 수 있다.
각 자전거는 동일한 설계도로 제작되었기때문에 동일한 요소를 갖고있다.
다음 Bicycle 클래스는 가능한 자전거 구현 중 하나다.
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
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);
}
}
이 클래스의 필드인 cadence, spped, gear는 객체의 상태(state)를 나타내고, changeCandence, changeGear, speedUp은 외부와 가능한 상호작용을 정의한다.
이제 이 Bicycle 클래스는 다른 프로그램에서 사용할 수 있는 자전거 설계도면이 되었다.
이 Bicycle 클래스로 새로운 객체를 만들고 사용할 수 있다.
class BicycleDemo {
public static void main(String[] args) {
// Create two different
// Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on
// those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
출처
https://docs.oracle.com/javase/tutorial/java/concepts/class.html