JAVA入门-Object类、Class类

什么是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;
 }
 }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值