Day24N种内部类

image

package oop1.Demo10;

public class Outer {

    private int id;

    public void out() {
        System.out.println("外部类的方法");
    }

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

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

        public static void getID2() {
            //System.out.println(id);
            //改为静态内部类时就无法调用id了,很简单,id为非静态变量,getID这个类最先实例化,id此时还未生成,故无法调用
        }
    }
}

package oop1.Demo10;

public class Outer2 {

    public void method(){
        //局部内部类     即方法中的内部类
        class Inner{
            public void in(){

            }
        }
    }

}


//yigejava文件中可以有多个class类,但只能有一个public class
class A{

}
package oop1.Demo10;

public class Test {
    public static void main(String[] args) {
        //正常实例化
        Apple apple = new Apple();
        //匿名初始化类    不再给实例对象声明
        //不用将实例保存到变量中
        new Apple().eat();
        new UserService(){
            @Override
            public void kiss() {

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

interface UserService{
    void kiss();

}
package oop1.Demo10;

public class Application {
    public static void main(String[] args) {
        //new外部类
        Outer o = new Outer();
        //new内部类    通过外部类来实例化内部类
        Outer.Inner in = o.new Inner();
        in.in();
        in.getID();
    }
}
posted @ 2025-09-29 23:41  冰涿  阅读(2)  评论(0)    收藏  举报