Сравнение двух объектов с помощью логического метода в классе моего автомобиля - PullRequest
0 голосов
/ 25 октября 2018

У меня проблемы с написанием моего основного метода в классе моего автомобиля.Мой код класса написан следующим образом;

public boolean compare (Car otherCar) {
    return (model.equals(otherCar.model) && year == otherCar.year);
} 

Моя проблема в том, что у меня проблемы с написанием моего основного метода, мне нужно сравнить мой автомобильный объект "ferrari" с моим автомобильным объектом "кобра".Мне нужно использовать оператор if / else и метод сравнения, чтобы сравнить объект Ferrari с объектом Cobra.И нужно вывести «Same», если они одинаковые, или «Different», если они разные.Все мои другие методы работали нормально, кроме этого.

Редактировать:

private String model;
private int year;

// default constructor
public Car()
{
    model = "NA";
    year = 0;
}

// overloaded constructor
public Car (String newModel, int newYear)
{
    model = newModel; 
    year = newYear;
}

// mutator methods
public void setModel (String newModel)
{
    model = newModel;
}

public void setYear (int newYear)
{
    year = newYear;
}

// accessor methods
public String getModel()
{
    return model;
}

public int getYear()
{
    return year;
}

public boolean compare (Car otherCar)
{
    return (model.equals(otherCar.model) && year == otherCar.year);
} 

public void print()
{
    System.out.println(model + " (" + year + ")");
}
}

Мой вопрос заключается в том, как мне написать оператор if - else в моем основном методе, чтобы сравнить эти два объектаиспользуя метод сравнения

Редактировать 2: `{
// Создать объект класса Car с именем ferrari Car ferrari = new Car ();

     // Use the print method to print all information about the ferrari object.
     ferrari.setModel("Ferrari");
     ferrari.setYear(2010);
     ferrari.print();
     // Create an object of the class Car named cobra, passing parameters "Cobra" and 1967.
     Car cobra = new Car("Cobra", 1967);

     // Print information about the Cobra object using get methods.
     System.out.println(cobra.getModel() + " " + cobra.getYear());

     // Change the model of the cobra object to "Shelby Cobra".
     cobra.setModel("Shelby Cobra");

     // Change the year of the cobra object to 1963.
     cobra.setYear(1963);


     System.out.println(cobra.getModel() + " " + cobra.getYear());

     // Use an if/else statement and the compare method to compare the ferrari obj with the 

`

1 Ответ

0 голосов
/ 25 октября 2018

В вашем методе main вы можете просто написать if if для сравнения автомобилей и распечатки следующим образом:

if (ferrari.compare(cobra)) {
    System.out.println("Both cars are same.");
} else {
    System.out.println("Both cars are different.");
}

Еще одно примечание: для печати значений объектов лучше переопределить метод toString (), которыйтаким образом, вам не нужно реализовывать свой метод print (), как вы это сделали.Вы можете реализовать метод toString следующим образом:

public String toString() {
    return String.format("model: %s, year: %s", model, year);
}

И тогда ваш метод if else может быть написан так и будет выглядеть лучше,

    if (ferrari.compare(cobra)) {
        System.out.println("("+ferrari + ") AND (" + cobra + ") cars are same");
    } else {
        System.out.println("("+ferrari + ") AND (" + cobra + ") cars are different");
    }

, который даст следующий вывод,

(model: Ferrari, year: 2010) AND (model: Shelby Cobra, year: 1963) cars are different
...