什么是Object类?
1.Object类是所有类的根类。
2.每个类都使用Object作为超类。
注:超类也就是我们所说的父类,被继承的类称之为超类。
3.所有对象都实现Object类的方法。
4.Object类不做为接口的超类。
什么是Class类?
1.Java运行时系统一直对所有的对象进行运行时类型标识;
这些信息纪录了每个对象所属的类。
2.用来保存这些类型信息的类是Class类。
3.Class类封装一个对象和接口运行时的状态。
4.当装载类时,Class类型的对象自动创建。
5. Class 类没有公共构造方法。
6. Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。
Class类有那些方法?
一、返回此对象所表示的实体名称
方法:.getName()
二、为类创建一个新实例
方法:.newInstance()
三、返回该类的类加载器
方法:.getClassLoader()
四、返回表示数组组件类型的Class
方法:.getComponentType()
五、返回此Class类表示的实体超类的Class
方法:.getSuperclass()
六、判断此Class是否表示一个数组类
方法:.isArray()
Object类有哪些方法?
一、返回对象的哈希码值
方法:.hashCoad()
举例:
默认情况下,该方法会根据对象的地址计算。类比于身份证号。
public static void main(String []arr) {
Object object =new Object();
int a =object.hashCode();
System.out.println(a);
}
二、返回此Object的运行时类
方法:.getClass()
举例:
Object object =new Object();
Class a=object.getClass();
返回的是Class
三、返回该对象的字符串表示
方法:.toString()
举例:
新建一个类时toString()是他的默认方法。或者说toString是默认调用的
static int i =1;
public static void main(String[]args) {
Day04 a=new Day04();
System.out.println("我调用了" + a);
a.i++;
System.out.println("我的默认方法是toString"+i);
}
public String toString() {
System.out.println("我重写了toString方法");
return "toString";
}
四、其他对象是否与此对象相等
方法:.equals()
举例:
Obiect类中euals方法需要重写,才能比较值是否相等,否则比较地址。
package text;
public class Human {
public static void main(String []arr) {
Monster a=new Monster("邹运",19);
Monster b=new Monster("邹运",19);
System.out.println(a.equals(b));
}
}
我重写了equals
package text;
public class Monster {
private Object age;
private Object name;
public Monster(String name1, int age1) {
age=age1;
name=name1;
}
public boolean equals(Object object) {
if(this==object){
return true;
}
if(object==null) {
return false;
}
if(getClass() != object.getClass()){
return false;
}
Monster other=(Monster)object;
if(age!=other.age) {
return false;
}
if(name==null ){
if(other.name != null) {
return false;
}
}else if(!name.equals(other.name)) {
return false;
}
return true;
}
}
7799

被折叠的 条评论
为什么被折叠?



