학습할 것 (필수)

클래스 정의하는 방법

클래스를 정의하는 방법은 다음과 같다.

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이 가지는 필드와 메서드를 모두 가진다.
}

클래스를 선언할 때 컬리브라켓 안의 부분을 클래스 바디라고 부르고 이 안에서 객체를 새로 만들 때 쓰는 생성자, 클래스와 객체의 상태를 나타낼 수 있는 필드의 선언, 그리고 클래스와 객체의 행동을 구현하는 메서드를 선언할 수 있다. 선언부에는 어떤 클래스들이 해당 클래스를 접근할 수 있는 지 결정하는 접근제어자와 어떤 인터페이스를 상속받을 지도 적어줄 수 있다.

클래스를 선언할 때에는

  1. 접근제어자를 먼저 정해준다.
  2. 컨벤션에 따라 첫 글자를 대문자로 한 클래스명을 적는다.
  3. 부모클래스가 있다면 extends 다음으로 부모클래스를 써준다.
  4. implements 에 이어 받고싶은 인터페이스를 써준다.
  5. 컬리브라켓을 이용해 바디를 구현한다.

객체 만드는 방법 (new 키워드 이해하기)

자바 프로그램은 여러 객체를 생성해 객체끼리의 정보를 주고받으며 많은 일을 수행한다.

Point originOne = new Point(23, 94);
Rectangle rectOne = new Rectangle(originOne, 100, 200);
Rectangle rectTwo = new Rectangle(50, 100);