До сих пор в качестве параметров методов мы использовали только простые типы. Однако передача методам объектов и вполне допустима, и достаточно распространена.
Скачать исходники для статьи можно ниже
Например, рассмотрим следующую короткую программу:
// Методам можно передавать объекты, 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.