关闭

JAVA内部类

标签: classjavainner
60人阅读 评论(0) 收藏 举报
分类:

一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类。

1.内部类的作用

1.内部类提供了更好的封装,只能让外部类直接访问,不允许同一个包中的其他类直接访问。

2.内部类可以直接访问外部类的私有属性,内部类被当成外部类的成员。但外部类不能访问内部类的内部属性。

2.内部类的使用场合

由于内部类提供了更好的封装特性,并且可以很方便的访问外部类的属性。所以,通常内部类在只为所在外部类提供服务的情况下优先使用。

3.内部类的分类

3.1成员内部类

可以使用privateprotectedpublic任意进行修饰。类文件:外部类s内部类class

3.1.1 成员内部类的访问方式

1.在外部类内提供一个方法创建内部类的对象进行访问。

2.在其他类创建内部类的对象进行访问。创建的格式:

外部类.内部类  变量名=new 外部类().new  内部类;

3.如果是静态内部类,则它的访问方式为:

  外部类.内部类   变量名=new  外部类.内部类();

  定义格式为:

      static  class ClassName{

           //类体

      }

3.1.2成员内部类的注意事项

1.成员内部类可以直接访问外部类的成员。

2.如果成员内部类与外部类存在同名的成员,在内部类中默认是访问内部类的成员,成员通过“外部类.this.成员”指定访问外部类的成员。

3.如果成员内部类出现了静态的成员,那么该成员内部类也得用static修饰。

4.如果成员内部类是私有的,那么创建内部类的对象就只能在外部类提供方法创建。

 

3.1.3匿名内部类

1.适合那种只需要使用一次的类。比如:键盘监听操作等等。语法:

new 父类构造器(实参列表)实现接口(){

      //匿名类类体

}

2.好处:可以简化书写

3.前提:必须有继承的关系

3.1.4 局部内部类

1.定义:在一个类的方法内部定义的另外一个类,则这个类称为局部内部类。

2.局部内部类注意的事项:如果局部内部类访问了局部变量,那么该变量需要使用final修饰(原因:因为声明周期不一致,所以内部类访问的局部变量是一个复制品。)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:359次
    • 积分:60
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档