//内部类就是在一个类中再定义一个类
//内部类可以直接访问内部类的一些东西
单拉出来一个联系下,看看刚看到的有什么执行的方法,层次关系,特点,进行罗列一个
搞思维导图有几个技巧,需要把这个弄成分点的样式,- ,这个是罗列出一个一个的
Outer.java
package com.oop.Demo10;
public class Outer {   //外部类
    private int id=10;
    public void out() {
        System.out.println("这是外部类的方法");
    }
    public void getID() {
        System.out.println(id);
    }
    public  class Inner {  //内部类
        public void in() {  //类里面有方法
            System.out.println("这是内部类的方法");
        }
    }
}
实现类Application
package com.oop.Demo10;
//想要调用一个类里的方法,先new一个对象new这个类的对象,然后通过 类.方法 调用
//加上 static 变成静态类,先实例化
public class Application {
    public static void main(String[] args) {
        Outer outer = new Outer();
        //先new外部类,再new内部类
        //通过这个外部类来实例化内部类
       Outer.Inner inner = outer.new Inner();  //outer.new Inner()
        //对象的类型 对象名
        inner.in();   //调用外部类
        System.out.println("============");
        outer.out();  //调用内部类
    }
}
输出:
这是内部类的方法
============
这是外部类的方法
进程已结束,退出代码 0
package com.oop.Demo10;
public class Outer {   //外部类
    private int id=10;
    public void out() {
        System.out.println("这是外部类的方法");
    }
    public static class Inner {  //内部类
        //加上static,id报红的原因是先实例化了
        //加了static成了静态类,先实例化了类,定义变量id=10在其后面
        public void in() {  //类里面有方法
            System.out.println("这是内部类的方法");
        }
        public void getID() {
            System.out.println(id);  //id报红
        }
    }
}
B1.java
package com.oop.Demo10;
public class B1 {
    //局部内部类
    public void method() {  //方法
        class Inner {       //局部内部类
            public void in() {  //局部内部类中的方法
            }
        }
    }
}
A1.java
package com.oop.Demo10;
public class A1 {
    public class Outer {
        
    }
}
class a1 {
    
}
A2.java,实现接口是不是子类?
package com.oop.Demo10;
public class A2 {
    public static void main(String[] args) {
        //匿名内部类
        //没有名字初始化类,不用将实例保存到变量中~
        new Apple().eat();
        new UserService() {
            @Override
            public void Hello() {
            }
        };
    }
}
class Apple {
    public void eat() {
        System.out.println("123");
    }
}
interface UserService {
    void Hello();  //接口,先创建一个方法的接口让另外一个去实现
}
原文:https://www.cnblogs.com/function123/p/13615120.html