10.2 Object类

一、概述
  a、在java中,所有的类都直接或间接继承了java.lang.Object类。
  b、Object类是比较特殊的类,它是所有类的父类,是java类层总的最高层类。
  c、由于所有类都是Object子类,所以在定义类时,省略了extends Object关键字。
  d、在Object类中主要包括clone()、finalize()、equals()、toString()等方法,其中常用的两个方法是equals()和toString();
注意:Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,因为这些方法被定义为final类型。

1、getClass()方法:返回对象执行时的Class实例,然后使用此实例调用getName()方法可以取得类的名称
  getClass().getName(); (也可以将getClass()方法与toString()方法联合使用)

2、toString()方法:将一个对象返回为字符串形式,它会返回一个String实例。
  a、在实际应用中通常会重写toString()方法,为对象提供一个特定的输出模式。
  b、当这个类型自动转化为字符串或与字符串连接时,将自动调用重写的toString()方法。

例子10.3

1 public class ObjectInstance {
2     public String toString() {        //重写toString()方法
3         return "在" + getClass().getName() + "类中重写toString()方法!";
4     }
5     public static void main(String[] args) {
6         System.out.println(new ObjectInstance());        //打印本类对象
7     }
8 }
View Code

3、equals方法:比较两个对象的实际内容是否相等(而“==”是比较两个对象的引用地址是否相等)

例子10.4

 1 package aaaa;
 2 class V{
 3     
 4 }
 5 
 6 public class OverWriteEquals {
 7     public static void main(String[] args) {
 8         String s1 = "123";        //实例化两个对象,内容相同
 9         String s2 = "123";
10         System.out.println(s1.equals(s2));        //使用equals()方法比较
11         System.out.println(s1==s2);
12         
13         System.out.println("======================");
14         
15         V v1 = new V();        //实例化两个V对象
16         V v2 = new V();
17         System.out.println(v1.equals(v2));        //使用equals()方法比较
18         System.out.println(v1==v2);
19     }
20 }
View Code

原文地址:https://www.cnblogs.com/studycode/p/9532901.html