Java入门 13 03\21
Object 类的使用
- Object类是所有Java类的根父类。
- 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
- Object类只声明了一个空参的构造器。
final、finally、finalize的区别?
1、final修饰符是一种关键字*
2、finally是在异常处理时提供finally块来执行任何清除操作。
3、finalize是一个方法名。
三者的具体区别
重写equals()
-
重写的原则:比较两个对象的实体内容(即: name 和 age )是否相同。
有自动生成的equals();
== 与 equals() 的区别:
== 的使用:
-
== 为运算符。
-
可以使用在 ①基本数据类型变量 和 ②引用类型变量 中。
-
如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等(相等则为true)。( 不一定类型要相同 )。
如果比较的是引用数据类型变量,比较的是两个对象的地址值是否相同。
(即 两个引用是否指向同一个对象实体 。)
注意 : == 使用时左右的变量类型必须一致。
equals的使用:
-
是一个方法,而非运算符。
-
只能适用于 ① 引用数据类型 。
-
Object类中equals()的定义:
public boolean equals(Object obj){
return(thsi == obj);
}
说明: Object类中定义的equals()和 == 的作用是相同的 ,比较两个对象的地址是否相同,即两个引用是否指向同一个实例。
-
像String、Date、File、包装类等都重写了Object类中的equals()方法, 重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的实体内容是否相同。
-
通常情况下,我们自定义类如果使用equals()的话,也通常是比较两个对象的 “ 实体内容 ” 是否相同。那么我们就需要对Object类中的equals()方法进行重写。
toString()方法
-
toString()方法在Object类中定义,其返回值是String类型,返回类名和它的引用地址。
-
当我们输出一个对象的引用是,实际上就是调用当前对象的toString()
-
Object类中toSrting()的定义:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 3. 像String、Date、File、包装类等都重写了Object类中的toString()方法。 使得在调用对象的toString()时,返回了“实体内容”信息。 4. 自定义也可以重写toSring()方法,当调用此方法时,返回对象的 “ 实体内容 ”。 ` public String toString() { return "Customer[name = " + name + ", age = " + age + "]"; } Source --> Generate toString() -->
-
-
在进行String和其他类型数据的连接操作时,自动调用toString()方法。
-
可以根据需要在用户自定义类型中重写toString()方法。
如String类重写了toString()方法,返回字符串的值。
eg: s1 = “hello”;
System.out.println(s1); //相当于System.out.println(s1.toString());