클래스란 무엇인가

정소이·2023년 1월 17일
0

OOP를 향해서

목록 보기
2/10

현실세계에서 우리는 같은 종류의 객체를 많이 찾을 수 있다.
예를 들어, 제조사와 모델이 모두 같은 자전거가 수천대 있을 수 있다.
각 자전거는 동일한 설계도로 제작되었기때문에 동일한 요소를 갖고있다.

다음 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

profile
프로그래밍 학습에 왕도는 없다! 내가 컴퓨터를 닮아갈때까지!

0개의 댓글