0
点赞
收藏
分享

微信扫一扫

2月11号学习笔记

无聊到学习 2022-02-11 阅读 83
linqp2pc#

成员内部类的定义格式

修饰符 class 外部类名称 {

修饰符 class 内部类名称{

...

}

...

}

【注意】内 用外,随意访问;外用内,需要内部类对象内用

如何使用成员内部类?有两种方式

1 间接方式:在外部类的方法当中,使用内部类,然后main只是调用外部类方法

2 直接方式:公式

外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称;

如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名

如果一个类定义在一个方法的内部,那么这就是一个局部内部类

“局部”:只有当前所属的方法才能使用它,出了这个方法,外面就不能用了

定义格式

修饰符 class 外部类名称 {

修饰符 返回值类型 外部类方法名称(参数列表){

class 局部类名称{

...

}

}

}

小结一下类的权限修饰符

public>protected>空写>private

定义一个类的时候,权限修饰符规则

1 外部类:public/空写

2 成员内部类:public/protected/空写/private

3 局部内部类:什么都不写

局部内部类,如果希望访问所在的方法的局部变量,那么这个局部变量必须是【有效final】的

备注:从java8开始,只要局部变量事实不变,那么final关键字就可以省略

原因:

1 new出来的对象在堆内存当中

2 局部变量是跟着方法走的,在栈内存当中

3  方法运行结束之后,立刻出栈,局部变量会立刻消失

4  new出来的对象会在堆当中持续存在,直到垃圾回收消失

如果接口的实现类(或者父类的子类)只需要使用唯一一次

那么这种情况下就可以省略掉该类的定义,而改为使用【匿名内部类】

匿名内部类的定义格式

接口名称 对象名 = new 接口名称(){

        覆盖重写所有抽象方法

}

对格式进行解析

1  new代表创建对象的动作

2  接口名称就是匿名内部类需要实现哪个接口

3  {...}才是匿名内部类的内容

【注意】

1  匿名内部类在【创建对象】的时候,只能使用唯一一次

如果希望多次创建对象,而且类的内容一样的话,那么就必须使用单独调用的实现类了

2  匿名对象,在【调用方法】的时候,只能调用唯一一次

需要再创建一个匿名内部类的匿名对象

3  匿名内部类是省略了【实现类/子类名称】,但是匿名对象是省略了【对象名称】

强调!!匿名内部类和匿名对象不是一回事!

一,Object类

1  Object类介绍

Object类是所有类的父亲,一个类都会直接或间接的继承自该类

该类中提供了一些非常常用的方法

2  toString()方法

A:作用: 打印对象信息

B:重写前:打印的是包

C:重写后:打印的是对象中的属性值

3  equals()方法

A:作用: 比较对象

B:重写前:比较的是对象的地址值

C:重写后:比较的是对象的属性值

举报

相关推荐

0 条评论