**
P76( Object 类):
**
一、Object 类与单根结构
- Java 实现了一个单根结构,Java中所有的类,不管你愿意不愿意,不管你声明不声明,这些类一定都是一个叫做 Object 类 的子类 ,这个 Object 是 Java 的类型系统当中的那个根,所以这个叫单根结构
二、Objcet类函数
- Object 类函数有以下几个
我们学习 toString()和 equals()函数
toString()函数
我们写一个 toString(),若懒得写,可以使用 ecplise 的自动生成 toString()函数功能:右击->源码->生成 toString()->选择后点生成,如图:
在Java中,所有的对象都是继承自 Object,自然继承了 toString 方法,在当使用 System.out.println( ) 里面为一个对象的引用时,自动调用 toString 方法将对象打印出来。如果重写了 tostring 方法则调用重写的 toString 方法。
equals()函数
-
equals()函数的用处:比较两个对象的内容是否相同,因为用 “==” 是比较不了的,它只能用来比较:这两个变量是不是管理着同一个对象
-
显示 false 答案不正确,因为对于 Object 这个公共父类来说,它没有可能去知道它的某个子类长什么样子,所以我们需要自己写一个 CD 类的 equals
-
可以使用 ecplise 的自动选择覆盖父类函数功能:右击->源码->覆盖/实现方法->选择后点确定,它做的事情是列出父类有些什么函数,然后问你要重新改写哪个函数,如图:
改写之后如下:
@Override是什么?
- 是告诉编译器,下一行的那个函数,是一个覆盖了父类的那个函数,换句话说,它必须和父类的那个函数具有完全相同的函数签名或者说函数原型,也就是函数的名字、参数表必须一样并且必须都是 public,如果有一个不相同,就会被认为是编译错误,即使不被认为是编译错误,该函数也并不会去取代 Object 里头的那个相应的函数,运行结果依然是错误的
"equals"和"=="的区别(面试题)
- equals 比较的是内容是否相等
- == 基本类型的话比较的是值本身,应用类型的话比较的是地址值