클래스를 정의하는 방법은 다음과 같다.
public class Bicycle {
// 해당 클래스는 세 개의 필드를 가진다.
public int cadence;
public int gear;
public int speed;
// 해당 클래스는 하나의 생성자를 가진다.
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
// 해당 클래스는 네 개의 메서드를 가진다.
public void setCadence(int newValue) {
cadence = newValue;
}
public void setGear(int newValue) {
gear = newValue;
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
}
public class MountainBike extends Bicycle { // Bicycle의 subclass인 MountainBike을 선언
public int seatHeight;
public MountainBike(int startHeight, int startCadence,
int startSpeed, int startGear) {
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
}
public void setHeight(int newValue) {
seatHeight = newValue;
}
// 해당 클래스는 Bicycle을 상속받으므로 Bicycle이 가지는 필드와 메서드를 모두 가진다.
}
클래스를 선언할 때 컬리브라켓 안의 부분을 클래스 바디라고 부르고 이 안에서 객체를 새로 만들 때 쓰는 생성자, 클래스와 객체의 상태를 나타낼 수 있는 필드의 선언, 그리고 클래스와 객체의 행동을 구현하는 메서드를 선언할 수 있다. 선언부에는 어떤 클래스들이 해당 클래스를 접근할 수 있는 지 결정하는 접근제어자와 어떤 인터페이스를 상속받을 지도 적어줄 수 있다.
클래스를 선언할 때에는
extends
다음으로 부모클래스를 써준다.implements
에 이어 받고싶은 인터페이스를 써준다.자바 프로그램은 여러 객체를 생성해 객체끼리의 정보를 주고받으며 많은 일을 수행한다.
Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);