java四种内部类--Java笔记

本文深入探讨了Java中的内部类,包括局部内部类、匿名内部类、成员内部类和静态内部类的定义、访问特性和应用场景。详细阐述了它们如何直接访问外部类的私有属性,以及外部类如何通过实例化内部类来访问其成员。同时,对比了不同类型的内部类在访问控制、作用域和使用限制上的异同,并提供了实例代码展示其用法。
摘要由CSDN通过智能技术生成

目录

一.内部类

1.一个类的内部嵌套了另一个类,外面的类称外部类,里面的类称内部类

2.类的五大成员有①.属性 ②.方法 ③.构造器 ④.代码块 ⑤.内部类

3.内部类可以直接访问私有属性

4.内部类可分为①.局部内部类 ②.匿名内部类 ③.成员内部类 ④.静态内部类

5.内部类访问外部类成员时可以直接进行访问(静态内部类只能访问静态成员),外部类访问内部类时需先创建对象再进行访问

6.只有静态内部类可以有静态的属性和方法,其他三个内部类都不行

7.匿名内部类最后必须加分号;

二.内部类的分类

1.定义在外部类局部位置上分为①.局部内部类 ②.匿名内部类(某种意义上和局部变量一样)

①.局部内部类(有类名)

②.匿名内部类(无类名)

2.局部内部类和匿名内部类的共同点

1.可以访问外部类的所有成员

2.只能用final进行修饰,访问修饰符为默认的

3.作用域为定义它的地方。内部类访问外部类成员时可以直接进行访问,外部类访问内部类时需先创建对象再进行访问

4.重名时遵循就近原则,访问外部成员可以使用外部类名.this.成员名

3.定义在外部类成员位置上分为①.成员内部类 ②.静态内部类(内部类为类的成员)

①.成员内部类(无static修饰)

②.静态内部类(有static修饰)

4.成员内部类和静态内部类的共同点

1.可以添加任意的访问修饰符

2.作用域和类的其他成员一样

一.内部类

1.一个类的内部嵌套了另一个类,外面的类称外部类,里面的类称内部类

A类为外部类,aa为内部类

                

2.类的五大成员有①.属性 ②.方法 ③.构造器 ④.代码块 ⑤.内部类

3.内部类可以直接访问私有属性

4.内部类可分为①.局部内部类 ②.匿名内部类 ③.成员内部类 ④.静态内部类

5.内部类访问外部类成员时可以直接进行访问(静态内部类只能访问静态成员),外部类访问内部类时需先创建对象再进行访问

6.只有静态内部类可以有静态的属性和方法,其他三个内部类都不行

7.匿名内部类最后必须加分号;

         

 

二.内部类的分类

1.定义在外部类局部位置上分为①.局部内部类 ②.匿名内部类(某种意义上和局部变量一样)

①.局部内部类(有类名)

AA类为局部内部类

 

 输出: 

②.匿名内部类(无类名)

它既有定义类的特征,也有创建对象的特征

此处编译类型为A类,运行类型为匿名内部类,进行向上转型,main方法中调用A类的a()方法a()方法中创建匿名内部类并调用A类的aa1()方法A类的aa1()方法中调用a1()a1()动态绑定匿名内部类的a1()

输出:

  

2.局部内部类和匿名内部类的共同点

1.可以访问外部类的所有成员

2.只能用final进行修饰,访问修饰符为默认的

3.作用域为定义它的地方。内部类访问外部类成员时可以直接进行访问,外部类访问内部类时需先创建对象再进行访问

       下图可见在定义内部类AA方法a()中是可以通过创建对象来调用的,在外部类和外部类的其他方法中则不能创建内部类AA的对象

4.重名时遵循就近原则,访问外部成员可以使用外部类名.this.成员名

3.定义在外部类成员位置上分为①.成员内部类 ②.静态内部类(内部类为类的成员)

①.成员内部类(无static修饰)

         重名时遵循就近原则,访问外部成员可以使用外部类名.this.成员名

         AA类为成员内部类

 

 输出: 

②.静态内部类(有static修饰)

            重名时遵循就近原则,访问外部成员可以使用外部类名.成员名

 输出:

 只能访问外部类的静态成员

 

4.成员内部类和静态内部类的共同点

1.可以添加任意的访问修饰符

 

2.作用域和类的其他成员一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值