Java内部类

本文介绍了Java中的内部类,包括静态内部类、局部内部类和匿名内部类的使用方式,以及如何通过外部类实例化内部类。示例代码展示了内部类访问外部类私有属性和方法的能力,同时探讨了各种内部类的特性及其在实际编程中的应用场景。
摘要由CSDN通过智能技术生成

内部类初学

创建一个外部类,里面写一个内部类:

public class Outer {

    private int id;
    public void out(){
        System.out.println("这是外部类的方法");
    }
    class  Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }
    }
}

测试:

public class Appication {
    public static void main(String[] args) {
        //new
        Outer outer = new Outer();
        //通过外部类来实例化内部类
        Outer.Inner inner = outer.new Inner();
        inner.in();
    }
}

先实例化外部类,再通过外部类实例化内部类

outer.new Inner()//再快捷键即可

内部类可以访问外部类的私有属性和方法

class  Inner{
        public void in(){
            System.out.println("这是内部类的方法");
        }

        //可以获得外部类的私有属性和私有方法
        public void getID(){
            System.out.println(id);
        }

静态内部类

一个java类中可以用多个class,但只能有一个public class

public class Outer {

        }
   class A{
       public static void main(String[] args) {
           //这种里面可以直接写psvm做测试
       }
   }

局部内部类

方法里面也能写类

public class Outer {

    public void method(){
        class A{
            
            }
        }
    }

匿名内部类

public class test {
    public static void main(String[] args) {
        //没有名字初始化类,不用将实例保存到变量中
        new A().eat();
        //甚至可以写接口,并且这个接口可以new,但一般不这样写
        UserService userService = new UserService() {

            @Override
            public void query() {

            }
        };
    }
}

class A{
    public A() {
        System.out.println("静态内部类构造");
    }

    public void eat(){
        System.out.println("eat");
    }
}

interface UserService{
    void query();
}

注意:不推荐这样写

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值