До сих пор в качестве параметров методов мы использовали только простые типы. Однако передача методам объектов и вполне допустима, и достаточно распространена.
Скачать исходники для статьи можно ниже
Например, рассмотрим следующую короткую программу:
// Методам можно передавать объекты,
class Test {
int b;
int a;
// возврат значения true, если параметр о равен вызывающему объекту
boolean equals(Test о) {
if(о.а == а && o.b == b) return true;
else return false;
}
}
class PassOb {
public static void main(String args[]) {
Test ob1 = new Test();
ob1.b = 100;
ob1.a = 22;
Test ob2 = new Test();
ob2.b = 100;
ob2.a = 22;
Test ob3 = new Test();
ob3.b = 2;
ob3.a = -2;
System.out.println("ob1 == ob2: " + ob1.equals(ob2));
System.out.println("ob1 == ob3: " + ob1.equals(ob3));
}
}
Эта программа создает следующий вывод.
ob1 == ob2: true ob1 == оbЗ: false
Как видите, метод equals() внутри метода Test проверяет равенство двух
объектов и возвращает результат этой проверки. То есть он сравнивает
вызывающий объект с тем, который был ему передан. Если они содержат одинаковые значения, метод возвращает значение true. В противном случае он возвращает значение false.
Обратите внимание на то, что параметр о в методе equals () указывает Test в качестве типа. Хотя Test — тип класса, созданный программой,
он используется совершенно так же, как встроенные типы Java.


