Posts ☕️ [Java] Oracle 매뉴얼 번역 (2)
Post
Cancel

☕️ [Java] Oracle 매뉴얼 번역 (2)

👀 본 포스팅은 Oracle-Java Documentation 원문을 의역한 내용입니다.(오역이 있을 수 있음)



클래스란?

현실 세계에서, 우리는 같은 종류의 서로 다른 객체들을 자주 발견할 수 있습니다.

수 천가지 종류의 “자전거” 처럼요. 각각의 자전거들은 약간씩 차이는 있지만,

“자전거”의 기본 뼈대가 같고, 공통된 종류의 부품이 들어갑니다. (패달, 기어, 안장 등)

객체지향 프로그래밍에서 이러한 “자전거”라는 하나의 인스턴스

자전거를 이루는 객체들의 클래스로 이루어져있다고 말할 수 있는데요.

클래스는 개별 객체가 생성되는 청사진 같은 것입니다.



What Is a Class?: 클래스란?


아래의 자전거(Bicycle) 클래스 는 자전거가 구현 가능한 기능들을 포함하고 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Bycicle {

		int cadence = 0; // 자전거의 패달 rpm
		int speed = 0;   // 자전거의 속도
		int gear = 1;    // 자전거의 기어

		void changeCadence(int newValue) {
				 cadence = 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);
		}
	}


지금 당장, 위와 같은 자바 문법은 낯설 수 있어요.

하지만 자전거(Bycicle)의 클래스는 우리가 앞서 이야기했던 자전거 객체를 기초로 만들어졌습니다.

cadence(패달 rpm), speed(속도), gear(기어) 필드는 객체(자전거)의 상태를 나타내고,

changeCadence(패달 rpm 변경), speedUp(속도 변경), changeGear(기어 변경)과 같은 메소드들은

바깥 세상과 어떻게 상호작용할지 정의하죠


자전거(Bicycle) 클래스main 메소드를 포함하지 않고 있다는 사실을 눈치채셨나요?

그 이유는, 위 소스코드는 완전한 어플리케이션 형태가 아니기 때문입니다.

어플리케이션에서 “사용이 될 수도 있는 자전거” 에 대한 청사진을 만들어 놓은 것이죠.

새로운 자전거 객체를 만들고, 사용하는 것에 대한 책임은 우리가 만드는 어플리케이션의 다른 클래스에 있을 것입니다.

아래는 두 개의 서로 다른 자전거의 메소드를 발동시키는 자전거 데모(Bicycle Demo) 클래스입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Bicycle eDemo {
	public static void main(String[] args) {

	// Create two different
	// Bicycle objects
	Bicycle bike1 = new Bicycle();
	Bicycle bike2 = new Bicycle();

	// Invoke method 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();
	}
}

위 소스코드를 테스트 해 보면, 두 자전거의 최종 rpm, 속도, 그리고 기어가 출력됩니다.

1
2
cadence:50 speed:10 gear:2
cadnece:40 speed:20 gear:3
This post is licensed under CC BY 4.0 by the author.