JAVA常用类与内部类

什么是内部类?

  • 在类中定义的类,称之为内部类。
    在这里插入图片描述

Java中有几种内部类?

1、成员内部类:定义在类中的类,属于类的成员,创建成员内部类对象必须依赖外部类对象。
在这里插入图片描述
2、静态内部类:定义在类中的类,class 关键字前加入 static 修饰符,创建静态内部类对象不需要外部类对象。
在这里插入图片描述
在这里插入图片描述
3、局部内部类:定义在方法中的类,作用范围只在当前方法中。
在这里插入图片描述
4、匿名内部类:特殊的局部内部类,没有类名,只能作为子类出现且只能创建一个对象。
在这里插入图片描述

Object类

Object类有什么特点?

  • Object类是所有类的父类(超类,根类,基类),Java中所有类都是Object类的子类
  • Object类中所定义的方法是所有类都具备的。
  • 由于多态的存在,Object类型的引用可以存储任意类型的对象。

getClass方法有什么用?

  • 可以获取引用中对象的实际类型。
    在这里插入图片描述
    打印结果:class 包名.Dog
  • 可以判断两个引用中保存的对象是否为同一类型
    在这里插入图片描述
    打印结果:false

hashCode方法有什么用?

  • 可以返回一个对象的《哈希码值》,默认返回根据内存地址转换成的《哈希码值》。
    哈希码值:通过特定的算法计算出的一个整数,通常用该整数表示一个对象。
    在这里插入图片描述
  • mc1、mc2分别是两个不同的对象,拥有不同的地址,所以两个hashCode也会不同。

toString方法有什么用?

  • 返回表示当前对象的字符串;通常我们会覆盖该方法,将本类的各个属性拼接成字符串并返回。
    在这里插入图片描述
  • System.out.print 方法直接打印对象引用时会自动调用toString方法,打印该方法的返回值。
    在这里插入图片描述
    打印结果:Student [ 张三,18,90.5]
  • 约定俗称的toString方法字符串拼接习惯:
    类名 [ 属性名1=属性1 , 属性名2=属性2 …]
    例:
"Student [name=" + name + ", age=" + age + "]"

**Object类中的toString方法默认返回的是该对象内存地址相关信息。
**

equals方法有什么用

  • 判断两个对象的内容(各个属性值)是否相同。
    Object类中提供的equals方法仅用于判断两个对象的地址是否相同,通常我们会覆盖方法,加强原有功能(让其具备判断两个对象内容是否相同的功能)。
    在这里插入图片描述
  • 判断两个对象内容是否相同:
    在这里插入图片描述

finalize方法有什么用?

  • 垃圾回收器在回收垃圾对象时,调用该方法。
  • 垃圾对象:
    1、没有引用的对象
    在这里插入图片描述
    2、失去引用的对象
    在这里插入图片描述
发布了6 篇原创文章 · 获赞 11 · 访问量 2381

猜你喜欢

转载自blog.csdn.net/qq_46288317/article/details/104561954