티스토리 뷰

객체지향 프로그래밍의 상속성을 이용해 Car, SportCar, Truck 세 가지 클래스를 만들고 악셀, 브레이크 메서드를 구현해 보았습니다.

 

실습을 진행한 코드의 Class 구성도 입니다.

Car class, SportsCar class, Truck class

package com.car;

public class MTest {

	public static void main(String[] args) {
		Car car1 = new Car();
		car1.accelPedal();
		car1.accelPedal();
		System.out.println(car1);
		car1.breakPedal();
		System.out.println(car1);
		car1.breakPedal();
		
		System.out.println("===================");
		
		Car car2 = new SportsCar("빨간색");
		car2.accelPedal();
		car2.accelPedal();
		System.out.println(car2);
		car2.breakPedal();
		car2.breakPedal();
		
		System.out.println("===================");
		
		Car car3 = new Truck("다라이색");
		car3.accelPedal();
		car3.accelPedal();
		System.out.println(car3);
		car3.breakPedal();
		car3.breakPedal();
	}
	
	
	
}

위의 클래스 다이어그램과 main 함수에서의 호출에 따라 콘솔창과 같은 결과가 나오도록 클래스를 구성해 보겠습니다. 

package com.car;

public class Car {

	private String color;
	private int speed;

	public Car() {
		this.speed = 0;
		this.color = "";
	}

	public Car(String color) {
		this.speed = 0;
		this.color = color;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public int getSpeed() {
		return speed;
	}

	public void setSpeed(int speed) {
		this.speed = speed;
	}

	public void accelPedal() {
		this.speed += 10;
		System.out.println("속도가 올라갑니다.");
	}

	public void breakPedal() {
		this.speed -= 10;
		if (this.speed > 0) {
			System.out.println("속도가 줄어듭니다.");
		} else {
			System.out.println("멈췄습니다.");
			this.speed = 0;
		}
	}

	@Override
	public String toString() {
		return "현재 속도는 " + this.speed + " 입니다.";
	}

}
package com.car;

public class SportsCar extends Car {

	public SportsCar() {
		super.setSpeed(0);
		super.setColor("black");
	}

	public SportsCar(String color) {
		super.setSpeed(0);
		super.setColor(color);
	}

	public void accelPedal() {
		super.setSpeed(super.getSpeed() + 15);
		System.out.println("속도가 빠르게 올라갑니다.");
	}

	public void breakPedal() {
		super.setSpeed(super.getSpeed() - 15);
		if (super.getSpeed() > 0) {
			System.out.println("속도가 빠르게 내려갑니다.");
		} else {
			System.out.println("멈췄습니다.");
			super.setSpeed(0);
		}
	}

	@Override
	public String toString() {
		return "SportsCar 의 현재 속도는 " + super.getSpeed() + " 입니다.";
	}
}
package com.car;

public class Truck extends Car{

	public Truck() {
		super.setSpeed(0);
		super.setColor("black");
	}

	public Truck(String color) {
		super.setSpeed(0);
		super.setColor(color);
	}

	public void accelPedal() {
		super.setSpeed(super.getSpeed() + 5);
		System.out.println("속도가 느리게 올라갑니다.");
	}

	public void breakPedal() {
		super.setSpeed(super.getSpeed() - 5);
		if (super.getSpeed() > 0) {
			System.out.println("속도가 느리게 내려갑니다.");
		} else {
			System.out.println("멈췄습니다.");
			super.setSpeed(0);
		}
	}

	@Override
	public String toString() {
		return "Truck 의 현재 속도는 " + super.getSpeed() + " 입니다.";
	}
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함