JavaSe基础(16)--内部类

内部类
概念 在类的内部定义一个新的类,这个新的类就称作内部类

当定义一个类 里面的功能主要 想为某一个类 所使用, 不想让其他的类访问到这个类的时候

内部类就是为 该内部类所在外部类服务的

格式

public class OutterClass {//外部类    
    public class InnerClass{ //内部类  是OutterClass的内部类

    }
}
  • 内部类 编译后生成的 class文件 是 外部类名称$内部类名称.class
  • 示例:

    class Outer
    {
        private static int num = 31;
    
        class Inner// 内部类。
        {
            void show()
            {
                System.out.println("show run..."+num);
            }
        }
    
        public void method()
        {
            Inner in = new Inner();
            in.show();
        }
    }
    

内部类访问特点:

  • 1 内部类可以直接访问外部类中的成员。
  • 2 外部类要访问内部类,必须建立内部类的对象

内部类的分类

1、普通(成员)内部类
  内部类调用外部类的方法  内----》外   
     外部类.this.外部类中的方法
     OutterClass.this.get(); 

  外部类调用内部类中方法  外----》内    
    外部类.内部类  变量名称 = new 外部类构造器. new 内部类构造器 ;
    变量名称.内部类中的方法;  
    OutterClass.InnerClass  oinner = new OutterClass().new InnerClass();
    oinner.getInnerClass();
2、static内部类
    //创建内部类对象
    //外部类.内部类   变量名称 = new 外部类.内部类构造器;
    OuterTwo.InnerStatic oi = new OuterTwo.InnerStatic();
    //使用静态内部类中的方法
    oi.getInnerMethod();

    //当内部类和内部类中的方法都是static修饰的时候 可以如下直接使用
    //外部类.内部类.内部类static修饰方法
    OuterTwo.InnerStatic.getInnerMethod();
3、匿名内部类
就是没有名字的内部类 
前提:  这个内部类去继承或实现 外部抽象类或外部接口时候   可以对内部进行简写  
变为 匿名内部类
 写法:
      new 外部类或外部接口() {   重写抽象方法}
      new A(){
          @Override
           public void getA() {
           }
      };

 注意:匿名内部类 其实相当于 要使用外部类或外部接口的 一个对象;
 什么时候使用:
          当该外部类 只调用一个次的时候。
  好处:
          减少了内部类在内存中的生命周期

内部类和普通类的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值