内部类

内部类

定义

public class Outer {
//    内部类可以访问外部类中static属性和方法
    private static int id=10;
    public void out()
    {
        System.out.println("这是外部类的out方法");
    }

    class Inner{
        public void in()
        {
            System.out.println("这是内部类的in方法");
        }
        //通过内部类获得外部类的私有属性
        public void getID()
        {
            System.out.println(id);
        }
    }
}
//一个java类中只能有一个public类,但可以有多个普通class类
class A{
    public static void main(String[] args) {
        
    }
}

调用

public class Main {
    public static void main(String[] args) {
        //实例化一个外部类
        Outer outer=new Outer();
        outer.out();

        //通过外部类来实例化内部类
        Outer.Inner inner=outer.new Inner();
        inner.in();
        //内部类可以直接获得外部类的方法和属性
        inner.getID();
    }
}

结果:

这是外部类的out方法 这是内部类的in方法 10

局部内部类

public class Outer {
    
    //可以在方法中定义局部内部类
    public void method()
    {
        class Inner
        {
            public void in()
            {
                
            }
        }
    }
}

匿名类

public class Main {
    public static void main(String[] args)
    {
        //没有名字的初始化类,叫匿名类,不用将实例保存在变量中
        new Apple();
		
        //用来实现接口
        UserService userService = new UserService()
       	{
            @Override
            public void hello() 
            {
            }
        };

    }
}

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

//接口
interface UserService
{
    void hello();
}
posted @ 2023-07-01 08:58  晚枫zz  阅读(8)  评论(0)    收藏  举报