JAVA编程学习记录(内部类)
发布日期:2021-07-23 18:13:29 浏览次数:3 分类:技术文章

本文共 1097 字,大约阅读时间需要 3 分钟。

第四周:内部类

概念:将一个类定义在另一个类中或方法里面,这样的类称为内部类。    //在A类中定义一个B类,B就属于A的内部类

分类:成员内部类、局部内部类、匿名内部类、静态内部类

访问特点:

1.内部类可以直接访问外部类的成员,包括私有成员;

2.外部类要访问内部类的成员则必须建立内部类的对象;

共性:

1.内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但前面会有外部类的类名和$符号;

    //例如:外部类$内部类.class

2.内部类不能用普通的方式访问,内部类是外部类的一个成员,因此内部类可以自由的访问外部类的成员变量,不管有无private;

详细区别:

1.成员内部类

成员内部类相当于外部类的一个成员;被定义在类(外部)中方法外

创建对象的格式为:

    外部类名.内部类名    对象名 = 外部类名.内部类对象;

// Outer.Inter  对象名 = new Outer.Inter;

成员内部类之所以可以直接访问内部类的成员,是因为内部类中有一个外部类对象的引用:外部类名.this;

成员内部类可以用的修饰符:final、abstract、public、private、protected、static;

2.静态内部类

静态内部类就是在成员内部类的基础上加静态修饰符static;被定义在类(外部)中方法外

在外部类中访问静态内部类有两种场景;

    1.在外部类中访问静态内部类中非静态成员:外部类名.内部类名 对象名 = 外部类名.内部类对象;需要通过创建对象访问;

    2.在外部类中访问静态内部类中的静态成员:外部类名.内部类名 对象名 = 外部类名.内部类对象;也可以用:外部类名.内部类名.成员;

3.局部内部类

局部内部类就是定义在局部位置的类,也就是定义在类中方法内的类

tips:

    1.方法内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化;

    2.方法内部类对象不能使用该内部类所在方法的非final局部变量;

可以用于局部内部类的修饰符有:final、abstract;

静态方法中的方法内部类只能访问外部的静态成员

4.匿名内部类

匿名内部类是内部类的简化写法,是建立一个带内容的外部类或者接口的子类匿名对象;

前提:

内部类可以继承或实现一个外部类或者接口;

格式:

new 外部类名或者接口名(   ){  方法重写  };

通常在方法的形式参数接口或者抽象类、且该接口中的方法不超过三个时可以将匿名内部类作为参数传递;

总结

从位置上讲:可以分为:成员内部类和局部内部类,静态内部类同属成员内部类,都在成员位置;

        

转载地址:https://blog.csdn.net/otmqixi/article/details/80057590 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA编程学习记录(API常用类(一))
下一篇:JAVA编程学习记录(知识补充)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月03日 04时25分58秒