2016-09-12 2 views
0

Python에서 약간의 배경을 가진 Java에 새로운 기능. 이제 나는 학교에 돌아가서이 과제에 약간의 문제가 있습니다.Java에서 클래스 및 객체 생성

자동차를 작성하십시오 (아래 표 참조). 그런 다음 Main 메소드가있는 CarTest라는 드라이브 클래스를 작성하십시오. main 메소드에서 생성자를 네 번 호출하여 네 개의 객체를 만듭니다. 그런 다음 네 가지 객체의 초기 정보를 인쇄하십시오. 그런 다음 데이터를 업데이트하고 네 개의 객체에 대한 업데이트 된 정보를 인쇄합니다.
이 결과는 다음과 같아야합니다 CarTest 실행

run CarTest 
2007 Ford Taurus 
2011 Honda Odyssey 
1999 Toyota Corolla 
1966 Ford Mustang 

Update data! 
2007 Ford Explorer 
2010 Honda Odyssey 
1999 Nissan Maxima 
1966 Ford Mustang 

클래스 자동차의 필드

Method  Parameters          Type of the method 

Car   String makeInit, String modelInit, int yearInit  constructor 
getMake  No parameter           accessor 
setMake  String makeUpdate         mutator 
getModel No parameter           accessor 
setModel String modelUpdate         mutator 
getYear  No parameter           accessor 
setYear  int yearUpdate          mutator 
toString No parameter 

Heres는 내가 가지고있는 클래스 자동차의

Field Data type 
make String 
model String 
year int 

방법 지금까지. 나는 너무 멀다고 생각하지 않지만 지금은 붙어 있습니다. 모든 조언/설명은 크게 감사하겠습니다. Car 오버라이드 toString() 방법에서

public class Car 
{ 
    private String make; 
    private String model; 
    private int year; 

    public Car(String makeInit, String modelInit, int yearInit) 
    { 
     make = makeInit; 
     model = modelInit; 
     year = yearInit; 
    } 


    public String getMake() //Make accessor. 

    { 
    return make; 
    } 


    public void setMake(String makeUpdate) //Make mutator. 

    { 
    make = makeUpdate; 
    } 


    public String getModel() //Model accessor. 

    { 
    return model; 
    } 


    public void setModel(String modelUpdate) //Model mutator. 

    { 
    model = modelUpdate;  
    } 

    public int getYear() //Year accessor. 

    { 
    return year; 
    } 


    public void setYear(int yearUpdate) //Year mutator. 

    { 
    year = yearUpdate; 
    } 
} 








public class CarTest 
{ 

    public static void main (String[] args) 
    { 
    Car carOne = new Car("Ford","Taurus",2007); 
    Car carTwo = new Car("Honda","Odyssey",2011); 
    Car carThree = new Car("Toyota","Corolla",1999); 
    Car carFour = new Car("Ford","Mustang",1966); 

    { System.out.println(carOne);} 
    { System.out.println(carTwo);} 
    { System.out.println(carThree);} 
    { System.out.println(carFour);} 

    carOne.setMake("Ford"); 
    carOne.setModel("Explorer"); 
    carOne.setYear(2007); 
    carTwo.setMake("Honda"); 
    carTwo.setModel("Odyssey"); 
    carTwo.setYear(2010); 
    carOne.setMake("Nissan"); 
    carOne.setModel("Maxima"); 
    carOne.setYear(1999); 
    carOne.setMake("Ford"); 
    carOne.setModel("Mustang"); 
    carOne.setYear(1966); 


    System.out.println("Update Data!"); 
    System.out.println(carOne); 
    System.out.println(carTwo); 
    System.out.println(carThree); 
    System.out.println(carFour); 




    } 
} 
+1

출력은 무엇입니까? 'Car' 객체의 toString 메소드를 오버라이드하여 필요한 형식으로 인쇄하거나 각 객체의 해당 getter를 사용하여 필요한 방식으로 인쇄해야하는 것처럼 보입니다. – Orin

+0

귀하의 질문은 무엇입니까? 여기에서 해결책이 이미 문제를 해결했다면 대답을 수락하십시오. – user3437460

답변

2

. 즉 당신처럼 System.out.println(car)

를 호출 그래서 할당에 따라이 보일 것이다 때 호출되는 방법이다 : 당신이 그것을 오버라이드 (override)하지 않는 경우

public String toString() { 
    return year+" "+make+" "+model; 
} 

는 통화가 단순히 그것의 방법을 만드는 모든 방법을 Object 수퍼 클래스로 변경하고 기본 toString() 구현을 호출합니다. 따라서 당신은 아마보고있는 결과 ...

https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--

+0

Im 여전히이 부분을 변경해야 할 부분을 이해하지 못했습니다. – user1729377

+0

복사/붙여 넣기 방법을 Car 클래스 내부에 넣으면 완료됩니다. – mprivat

0

당신은 나쁜 복사 - 붙여 넣기를했다.

carOne.setMake("Ford"); 
carOne.setModel("Explorer"); 
carOne.setYear(2007); 
carTwo.setMake("Honda"); 
carTwo.setModel("Odyssey"); 
carTwo.setYear(2010); 
carOne.setMake("Nissan"); // no, should be carThree 
carOne.setModel("Maxima"); 
carOne.setYear(1999); 
carOne.setMake("Ford"); // no, should be carFour 
carOne.setModel("Mustang"); 
carOne.setYear(1966); 

이것은 각각 carOne, carTwo, carThree 및 carFour 여야합니다.

+0

감사합니다. 잘못 입력했습니다. 나는 그것을 바꾼다. – user1729377