java学习之路————第十三天

今天说了三种类:Object类  内部类   匿名内部类

一、Object类

   所有类的父类,如果一个类没有去继承某个类的时候,默认继承Object类

Object类中的一些常用方法:

1.void finalize()

      当对象没有引用指向它的时候,他就成了垃圾。此时由对象的垃圾回收器调用此方法回收垃圾,释放资源

2.Class getClass()

        后面框架将反射时再具体讲

3.String toString()

         返回字符串表现形式

          表示格式:

扫描二维码关注公众号,回复: 3919450 查看本文章

getClass().getName()+"@"+Integer.toHexString(hashCode());

4.int hashCode()

5.boolean equals(Object obj)

               用于比较两个对象的地址值是否相同。对我们来说意义不大,因为只要new就会在内存中重新开辟新的存储空间。我们需要的是比较对象的值是否相等。所以需要对该方法进行重写。

    记住:官方给我们提供的类中equals方法都是重写过后的方法

面试题:为什么重写equals的时候要重写hashCode?

二、内部类(了解)

 定义:在一个类的内部再定义一个类,称为内部类或嵌套类

备注:内部类往往只服务于它的外部内,可以访问外部内的成员变量和成员方法(包含私有的)

内部类访问特点:

      内部类要访问外部类的内容时可以直接访问,而外部类想要访问内部类内容时,必须通过创建内部类对象之后才能访问

三、匿名内部类(重点)

定义:没有名字的内部类,主要就是为了简化代码。

前提条件:必须要有继承或实现一个接口

语法:   

    new 父类名或接口名(){

                    重写父类中的方法或实现接口中的抽象方法或者自定义相关方法(一般不超过3个)

               }

什么时候使用匿名内部类?

         接口中的或父类的方法很少用到的时候,偶尔用到的时候考虑用匿名内部类方式完成。

案例:定时器

猜你喜欢

转载自blog.csdn.net/mataodehtml/article/details/83591173