Java

java 클래스 구현, 상속, 자동차 예제

pepega 2021. 10. 21. 16:47
//Car.java

public class Car
{
    private String carname; //차 이름
    
    protected int speed; //차 속도를 수정해야하기 때문에 protected
    
    public Car() {}
    
    public Car(String carname) //생성자
    {
        this.carname = carname; //차 이름
        this.speed = 100;  //차 속도 설정 (100이 기본)
    }
    
    public String getName()
    {
        return this.carname;
    }
    
    public int getSpeed()
    {
        return this.speed;
    }
    
    public void setSpeedUp()
    {
        speed += 10;
    }
    
    public void setSpeedDown()
    {
        speed -= 10;
    }
}
//Sedan.java

public class Sedan extends Car
{
    private String carname; //차 이름
    
    public Sedan() {}
    
    public Sedan(String carname, int speed)
    {
        this.speed = speed; //차 속도 설정, 부모변수에 입력
        this.carname = carname; //차 이름 설정
    }
    
    public String getName()
    {
        return this.carname;
    }
    
    public int getSpeed()
    {
        return this.speed;
    }
    
    public void setSpeedUp()
    {
        speed += 20;
    }
    
    public void setSpeedDown()
    {
        speed -= 20;
    }
}
//Truck.java

class Truck extends Car
{
    private String carname;
    
    public Truck() {}

    public Truck(String carname, int speed)
    {
        this.carname = carname; //차 이름 설정
        this.speed = speed; //차 속도 설정, 부모변수에 입력 
    }
    
    public String getName()
    {
        return this.carname;
    }
    
    public int getSpeed()
    {
        return this.speed;
    }
    
    public void setSpeedUp()
    {
        super.speed += 5;
    }
    
    public void setSpeedDown()
    {
        super.speed -= 5;
    }
}
//CarTest.java

public class CarTest
{
    public static void main(String[] args)
    {
        Car[] carList = new Car[5];
        
        carList[0] = new Car("재규어"); //부모 클래스 호출
        carList[1] = new Sedan("K5", 100);  //자식 클래스 호출
        carList[2] = new Truck("포터", 100); //자식 클래스 호출
        carList[3] = new Sedan("아반떼", 100);
        carList[4] = new Truck("볼보", 100);
        
        for(int i = 0; i < carList.length; i++) //배열 수 만큼 출력
        {
            System.out.println("차명 : " + carList[i].getName()); //차 이름 출력
            System.out.println("현재 속도 : " + carList[i].getSpeed()); //현재 속도 출력
            System.out.println("속도 업!");
            carList[i].setSpeedUp(); //속도 업
            System.out.println("현재 속도 : " + carList[i].getSpeed());
            System.out.println("속도 다운!");
            carList[i].setSpeedDown();
            System.out.println("현재 속도 : " + carList[i].getSpeed());
            System.out.println("속도 다운!");
            carList[i].setSpeedDown();
            System.out.println("현재 속도 : " + carList[i].getSpeed());
            System.out.println();
        }
    }
}

java CarTest
차명 : 재규어
현재 속도 : 100
속도 업!
현재 속도 : 110
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 90

차명 : K5
현재 속도 : 100
속도 업!
현재 속도 : 120
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 80

차명 : 포터
현재 속도 : 100
속도 업!
현재 속도 : 105
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 95

차명 : 아반떼
현재 속도 : 100
속도 업!
현재 속도 : 120
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 80

차명 : 볼보
현재 속도 : 100
속도 업!
현재 속도 : 105
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 95

'Java' 카테고리의 다른 글

Overloading, Overriding (Java)  (0) 2021.10.21
java 상속 관계 구조 구현(학생 예제)  (0) 2021.10.21