Java面向对象--四种内部类

内部类

  • 内部类就是在一个类的内部在定义一个类,比如A类里定义一个B类,那么B相对于A为内部类,A相对于B为外部类。

  • 一个Java文件中可以有多个类,但是只能有一个public类

  1. 成员内部类

    成员内部类是最普通的内部类,它的定义为位于另一个类的内部;

    public class Outer {
        private int id;
        public void out(){
            System.out.println("这是外部类方法");
        }
    
        public class Inner{
            //成员内部类
            public void in(){
                System.out.println("这是内部类方法");
            }
            //可以获得外部类的私有属性,方法
            public void  getID(){
                System.out.println(id);
            }
        }
        
    }
    
    public class Start {
        public static void main(String[] args) {
            Outer outer = new Outer();
            //内部类的实例化
            Outer.Inner inner = outer.new Inner();
            inner.in();
        }
    }
    
  2. 静态内部类

    静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静态成员属性有点类似,并且它不能使用外部类的非static成员变量或者方法,因为外部类的非static成员必须依附于具体的对象。

    public class Outer {
        private int id;
        public void out(){
            System.out.println("这是外部类方法");
        }
        
        //静态内部类
        static class In{
            public void in(){
                System.out.println("这是静态内部类方法");
            }
        }
        
    }
    
  3. 局部内部类

    局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

    局部内部类就像是方法里面的一个局部变量一样,是不能有 public、protected、private 以及 static 修饰符的。

    //局部内部类
    class people{
        public void men(){
            class son{
                int age = 0;
            }
        }
    }
    
  4. 匿名内部类(这是一个链接哦!)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值