3.6 Класс Object
В Java класс
Object располагается на вершине дерева иерархии классов.
3.6.1 Определение класса Object
Каждый класс имеет класс
Object как суперкласс. Каждый класс в системе Java -потомок, прямой или косвенный, класса
Object. Этот класс определяет основное состояние и поведение, которое должны иметь все объекты, типа способности сравнивать один объект с другим, преобразовывать к строке и возвращать объектную ссылку. Класс
Object включен в пакет java. lang
3.6.2 Метод equals()
Метод
equals, сравнивает два объекта и возвращает истину, если они равны. Он равняется методу, обеспеченному в классе Объекта, использует функцию идентичности, чтобы определить, равны ли объекты (если сравненные объекты равны, то метод возвращает истину).
Однако, для некоторых классов, два отличных объекта одинакового типа можно было бы счесть равными, если они содержат одну и ту же информацию. Рассмотрите код, который проверяет два целых числа, one и anotherOne, на равенство:
Integer one = new Integer(1);
Integer anotherOne = new Integer(1);
if (one.equals(anotherOne))
System.out.println( objects are equal );
Эти объекты программы равны даже при том, что one и anotherOne являются ссылками на два различных объекта. Их считают равными, потому что сравненные объекты содержат то же самое значение целого числа.
3.6.3 toString()
toString возвращает представление строки объекта. Вообще, метод toString возвращает строку, которая «дословно представляет» этот объект. Результатом должно быть краткое, но информативное представление, которое является простым для чтения человеку. Рекомендуется, чтобы все подклассы отменили этот метод.
Следующая программа - пример отмены метода toString ().
Пример 12:
/** This class simply over-rides java.lang.Object's ** toString() method.
** /
class Parent
{
public String toString()
{
return I'm Parent's toString() ;
}
}
/** Class that inherits from Parent, which also
** over-rides toString()
** /
class Derived extends Parent
{
public String toString()
{
return I'm Derived's toString() ;
}
}
/** Test driver */
public class UpCast
{
public static void main(String[] args)
{
Derived d = new Derived();
System.out.println( Derived's toString() : + d.toString());
// This works because Derived IS-A Parent Parent p = (Parent) d;
System, out .println( Parent's toString() : + p. toString() ) ;
// And this works because everything IS-A Object Object о = (Object) d;
System.out.println( Object's toString() : +o.toString()); System.out.println( explict cast to Object's toString(): +( (Object) o).toString());
}
}
Вывод описанной выше программы:
Рисунок 3.16: Вывод