学习小结(第八章类的高级概念)

本文详细解析了Java中的访问修饰符及其适用范围,并深入探讨了内部类的概念、分类及其实现细节,包括成员内部类、静态内部类、局部内部类和匿名内部类的特点与使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、访问修饰符

  本类 同包类 不同包类
子类 非子类 子类 非子类
public
protected  
默认    
private        


2、封装

          

     外部操作私有属性,用set/get方法

     封装的好处:类的成员变量可以成为只读或者只写的。

                           类可以对存储在其成员变量中的内容有一个整体的控制。

                           类的用户不需要知道类是如何存储数据的。


3、静态类成员、初始化块

     

4、内部类(把一个类定义在另一个类的内部)

      特点:独立的class文件,同样需要编译,同样可以产生对象

      分类:①成员内部类:位置:位于外部类的全局位

                                           访问修饰符:决定能否在第三方类中使用该内部类
                                           class文件名:外部类名字$内部类名字。
                                           产生对象:可以在外部类的任意方法中,也可以在第三方类的方法中(考虑访问修饰符)

                                           在内部类里面:属性:不能定义static的属性(常量可以是static)

                                                                    方法:不能定义static的方法

                                                                               可以访问外部类的任意属性和方法
                                                                               使用this代表的是内部类对象
                                                                               如果内部类属性与外部类属性同名:使用外部类类名.this.属性名调用外部类的属性
                                                                               如果内部类方法与外部类方法同名:使用外部类类名.this.方法名调用外部类的方法

                                          在外部类里面:可以直接产生内部类对象,然后无视访问修饰符视情况调用其属性和方法

                                          在第三方类中:产生内部类对象,必须先产生外部类对象

                                                                   使用特殊外部类对象.new的语法产生内部类对象

                                                                  根据访问修饰符视情况调用属性和方法

              ②成员内部类特例:静态内部类
                  位置:位于外部类的全局位置,但是添加static修饰符
                  访问修饰符:决定能否在第三方类中使用该内部类
                  class文件名:外部类名字$内部类名字
                  产生对象:可以在外部类的任意方法中,也可以在第三方类的方法中(考虑访问修饰符)

                  在内部类里面:属性:可以定义静态和非静态的

                                           方法:可以定义静态和非静态的

                                                     非静态方法:只能访问外部类的静态属性和静态方法
                                                                       this代表内部类对象
                                                                       如果属性方法出现同名的情况,用外部类类名.的方式特制外部类中的属性方法

                                                     静态方法:只能访问外部类的静态属性和静态方法

                 在外部类里面:直接new出内部类对象
                                          用对象名.的方式访问内部类的非static属性和方法,无视访问修饰符
                                          用内部类类名.的方式访问内部类的static属性和方法,无视访问修饰符

                 在第三方类中:无需产生外部类对象,使用外部类类名.内部类类名的方式产生内部类对象
                                          根据访问修饰符,调用属性和方法

              ③局部内部类:

                  位置:在外部类的某个方法内部
                  访问修饰符:没有
                  class文件名字:外部类类名&数字编号+内部类类名
                  产生对象:只能在内部类所在的方法中

                  在内部类中:只能定义非static的属性和方法(常量可以是static)
                                        如果outMethod是静态的,则不能访问外部类的非静态属性和方法;其他情况都可以访问
                                        this代表当前内部类对象
                                        如果内部类属性与外部类属性同名:使用外部类类名.this.属性名调用外部类的属性
                                        如果内部类方法与外部类方法同名:使用外部类类名.this.方法名调用外部类的方法
                                        无法访问内部类所在方法的变量,只能访问常量
                 在外部类中:直接new出来即可
                                      无视访问修饰符视情况调用其属性和方法

             ④局部内部类特例:匿名内部类

                 位置:在外部类的某个方法内部,new对象的同时定义属性行为,所以只能用这一次
                 访问修饰符:不存在
                 class文件名:外部类的类名&数字编号
                 在内部类中:只能定义非static的属性和方法(常量可以是static)
                                      如果outMethod是静态的,则不能访问外部类的非静态属性和方法;其他情况都可以访问
                                      this代表当前的匿名内部类对象
                                      如果内部类属性与外部类属性同名:使用外部类类名.this.属性名调用外部类的属性
                                      如果内部类方法与外部类方法同名:使用外部类类名.this.方法名调用外部类的方法
                                      无法访问内部类所在方法--即outMethod()中的的局部变量,只能访问常量






       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值