Object类的使用
Object类
Object类中的方法可以在网上搜索得到
-
Object类是所有java类的父类
-
如果类在声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
-
Object类中的功能(属性、方法)具有通用性。
属性:无
方法:equals() / toString() / getClass() / hashCode() /clone() / finalize() / wait() / notify() / notifyAll()
-
Object只有一个空参构造器
==和equals()的区别
1、 ==的使用:
-
可以使用在基本数据类型变量和引用数据类型变量中
-
如果比较的是基本数据类型的变量,比较的是两个变量保存的数据是否相等(不一定要类型相同)
如果比较的是引用数据类型变量,比较的是两个变量的地址值是否相同,即两个引用是否指向同一个对象实体。
2、equals()的使用:
-
是一个方法,而非运算符
-
只能应用于引用数据类型
-
Object类中equals()定义:
pubulic boolean equals(Object obj){
return (this == obj)
}
//说明:Object类中定义的equals()和==作用是相同的,即两个引用是否指向同一个地址
-
像String、Date、File、包装类都重写了equals()方法,即比较的是两个对象的"实体内容"是否相同
-
通常情况下,我们自定义的类如果调用equals()方法,通常是比较对象的"实体内容"是否相同,因此需要对Object类的equals()方法进行重写。【一些编译器可以自动生成重写的代码】
Customer cust1 = new Customer("TOM",21);
Customer cust2 = new Customer("TOM",21);
String str1 = new String("aaa");
String str2 = new String("aaa");
System.out.println(cust1.equals(cust2));//flase
System.out.println(str1.equals(str2));//true
基本数据类型变量
- 在内存种存储的是一个基本类型值。
- 可以在栈中直接分配内存
- 例如 int a=1; 变量a的值就是int值1;
引用数据类型变量
- 对应内存所存储的值是一个引用,是对象的存储地址。
- 对象的引用在栈中,对象实际存放在堆中。
- 例如 Circle circle = new Circle(9)【参数表示半径】; 变量circle 的值保存的是一个引用,它指明这个Circle对象的内容存储在内存的什么位置。
toString()方法
- 当我们输出一个对象的引用时就是调用当前对象的toString()
- Object类中toString()定义
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 像String、Date、File、包装类都重写了toString()方法,使得调用toSting()方法时,返回"实体内容"信息
- 自定义类也可以重写toString()方法,当调用此方法时,返回对象的"实体内容"【一些编译器可以自动生成重写的代码】
标签:String,Object,数据类型,equals,Day1,toString,javaSE,变量 From: https://www.cnblogs.com/KJplant/p/17258726.html