2016-09-12 1 views
0

Je suis nouveau sur Java avec un peu d'arrière-plan en python. Maintenant je suis de retour à l'école et j'ai des problèmes avec cette tâche.Création de classes et d'objets en Java

Ecrivez une classe Car (voir les tableaux ci-dessous). Ensuite, créez une classe de lecteur appelée CarTest qui a une méthode principale. Dans la méthode principale, appelez le constructeur quatre fois pour créer quatre objets. Imprimez ensuite les informations initiales des quatre objets. Ensuite, mettez à jour les données et imprimez les informations mises à jour des quatre objets.
Lorsque vous exécutez CarTest le résultat devrait ressembler à ceci:

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 

Les champs de la classe Voiture

Field Data type 
make String 
model String 
year int 

Les méthodes de la classe voiture

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 ce que j'ai jusque là. Je ne pense pas que je suis trop loin, mais maintenant je suis coincé. Tous les conseils/explications sont grandement appréciés.

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

Quels résultats obtenez-vous? On dirait que vous devez soit surcharger la méthode 'toString' de l'objet' Car' afin de l'imprimer dans le format dont vous avez besoin, soit utiliser les getters correspondants sur chaque objet pour l'imprimer comme vous le souhaitez. – Orin

+0

Quelle est votre question? Si la solution ici a déjà résolu votre problème, veuillez accepter la réponse. – user3437460

Répondre

2

Dans Car override la méthode toString(). C'est la méthode qui est appelée lorsque vous appelez System.out.println(car)

Ainsi, selon l'affectation, il devrait ressembler à:

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

Si vous ne remplacez pas, l'appel est tout simplement de faire son chemin toute la chemin de la super classe Object et en appelant l'implémentation toString() par défaut. Par conséquent, les résultats que vous voyez probablement ...

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

+0

Je ne comprends toujours pas où changer cela – user1729377

+0

copier/coller la méthode que j'ai mis là dans votre classe de voiture et vous avez terminé – mprivat

0

Tu as fait une mauvaise copier-coller.

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); 

Cela devrait être respectivement carOne, carTwo, carThree et carFour.

+0

Merci, je l'ai juste copié mal. Je le change. – user1729377