강의로 돌아가기
김상규

제 이클립스에 그대로 복사 실행했는데 패키지 명이랑 함께 출력이 되네요. 뭐가 문제죠?

제 이클립스에 그대로 복사 실행했는데

Date20171013.Suv에 기름을 넣습니다.
기름이 10리터 들어있습니다.
Date20171013.Truck에 기름을 넣습니다.
기름이 10리터 들어있습니다.
Date20171013.Bus에 기름을 넣습니다.
기름이 10리터 들어있습니다.

이런 식으로 패키지 명이랑 함께 출력이 되네요. 뭐가 문제죠?

작성중인 코드―Car.java
1
2
3
public class Car{
    public int gas;
}
작성중인 코드―Suv.java
1
2
public class Suv extends Car{
}
작성중인 코드―Truck.java
1
2
public class Truck extends Car{
}
작성중인 코드―Bus.java
1
2
public class Bus extends Car{
}
작성중인 코드―GasStation.java
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
32
33
34
35
36
37
38
39
40
41
42
43
44
public class GasStation{
    public static void main(String[]args){
        GasStation gasStation = new GasStation(); //gasStation인스턴스 생성
        Suv suv = new Suv(); //suv 인스턴스 생성
        Truck truck = new Truck(); //truck 인스턴스 생성
        Bus bus = new Bus(); //bus 인스턴스 생성

        //gasStation에서 suv에 기름을 넣습니다.
        gasStation.fill(suv);

        //gasStation에서 truck에 기름을 넣습니다.
        gasStation.fill(truck);

        //gasStation에서 bus에 기름을 넣습니다.
        gasStation.fill(bus);

    }

    public void fill(Suv suv){
        System.out.println("Suv에 기름을 넣습니다.");
        suv.gas += 10;
        System.out.println("기름이 "+suv.gas+"리터 들어있습니다.");
    }

    public void fill(Truck truck){
        System.out.println("Truck에 기름을 넣습니다.");
        truck.gas += 10;
        System.out.println("기름이 "+truck.gas+"리터 들어있습니다.");
    }

    public void fill(Bus bus){
        System.out.println("Bus에 기름을 넣습니다.");
        bus.gas += 10;
        System.out.println("기름이 "+bus.gas+"리터 들어있습니다.");
    }

    // public void fill(Car car){
    //  //참고. car.getClass().getName()은 car오브젝트가 실제로 어떤 클래스인지를 알려줍니다.
    //  System.out.println(car.getClass().getName()+"에 기름을 넣습니다.");

    //  car.gas += 10;
    //  System.out.println("기름이 "+car.gas+"리터 들어있습니다.");
    // }
}
1 개의 답변
김성현

앞에 패키지 명까지 출력되는 것 같습니다. 앞서 배운 substring 메소드로 자르시면될 것 같습니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.