java基础语法-内部类

一、概念
在一个类中定义了一个完整的类。
特点:1、编译之后会生成一个.class文件。
2、内部类可以使用外部类的私有属性从而不破坏外部类的封装

二、组成
成员内部类 静态内部类 局部内部类 匿名内部类

三、成员内部类

a)定义位置:类中,方法的外面。类似于一个成员变量 。
b)成员内部类对象的创建:基于外部类的对象进行创建。
语法:外部类.内部类类名 对象名 = 外部类对象名.new 内部类类名();

c)特点
i.成员内部类可以直接访问外部类的私有属性不破坏外部类的封装。
ii.外部类的成员变量可以和内部类的成员变量重名,但是遵循的是就近原则,以内部类的成员变量优先。
思考:如何访问外部类的同名成员变量?
this.属性名代表访问内部类的属性名;
外部类的类名.this.属性名;
iii.外部类中可以定义静态成员,成员内部类不能定义静态成员。

四、静态内部类
a)定义位置:类中,方法的外面,被static修饰。类似于静态属性。
b)创建对象:不需要依赖外部类对象,可以直接通过类名进行创建。
语法: 外部类类名.内部类类名 对象名 = new 外部类.内部类类名();
c)访问方式
访问静态内部类的普通成员通过对象名.进行访问
访问内部类的静态成员可以通过外部类类名.内部类类名.静态属性。
外部类类名.内部类类名.静态方法()。
d)特点:静态内部类可以直接访问外部类的静态成员,不能直接访问外部类的普通成员。

五、局部内部类
a)定义位置:在方法中,类似于局部变量。
b)创建对象:必须在定义的方法内创建对象。
c)特点
i.在局部内部类中可以访问外部类的私有属性。
ii.在局部内部类中可以访问本方法的局部变量,但是要求必须加上final。

六、匿名内部类
a)是一个特殊的局部内部类(局部内部类具有的特点 匿名内部类都具备)
b)要求:继承一个类或者实现一个的接口。
c)创建对象:只能创建一个类的对象
d)特点
i.可读性差
ii.代码更加简洁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值