Мне нужна помощь при написании статической версии методов добавления и вычитания. я пытался это сделать, но я не уверен, правильно ли это, и мой метод equals не работает. Когда я компилирую свой метод equals, он всегда печатает false.Проблема с записью статической версии методов добавления и вычитания (это в java)
public static void main(String[] args) {
Complex c1 = new Complex(7, 7);
Complex c2 = new Complex(7, 7);
System.out.println(Complex.add(c1, c2));
System.out.println(c1.equals(c2));
}
}
class Complex {
private static double realPart;
private static double imaginaryPart;
public Complex() {
realPart = 0;
imaginaryPart = 0;
}
public Complex(double c1, double c2) {
realPart = c1;
imaginaryPart = c2;
}
public static Complex add(Complex firstNumber, Complex secondNumber) {
Complex result = new Complex();
firstNumber.realPart = 7;
secondNumber.imaginaryPart = 7;
result.realPart = firstNumber.realPart + secondNumber.imaginaryPart;
return result;
}
public static Complex subtract(Complex firstNumber, Complex secondNumber) {
Complex result = new Complex();
firstNumber.realPart = 7;
secondNumber.imaginaryPart = 7;
result.realPart = firstNumber.realPart + secondNumber.imaginaryPart;
return result;
}
public boolean equals(Complex firstNumber, Complex secondNumber) {
if (firstNumber == secondNumber) {
return true;
} else {
return false;
}
}
public String toString() {
return "result= " + realPart;
}
}
, но он все равно возвращает false. я хотел бы знать, почему он это делает? – Dee
Это потому, что объекты будут равны только тогда, когда они ссылаются на одни и те же местоположения. Вы только что установили firstNumber = SecondNumber; И затем попробуйте приравнивать, используя ответ, о котором я упоминал, тогда вы узнаете, почему это так ... Если вы хотите другое, перейдите с первым ответом, как упомянуто, чтобы сравнить элементы обоих объектов, чтобы приравнять их! –
@ Dee-Up upvote будет более предпочтительным и полезным. СПАСИБО В ADVANCE ... –