内部类就是在一个类的内部再定义一个类,比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。
Outer.java
package com.oop.demo10; public class Outer { private int id = 10; public void out(){ System.out.println("这是外部类的方法"); } //成员内部类 public class Inner{ public void in(){ System.out.println("这是内部类的方法"); } //获得外部类的私有属性、方法 public void gerID(){ System.out.println(id); } } //局部内部类 public void method(){ class Inner{ public void in(){ } } } } //一个java类可以有多个class类,但是只能有一个public class class A{ }
Application.java
package com.oop; import com.oop.demo10.Outer; public class Application { public static void main(String[] args) { //外部类 new关键词 Outer outer = new Outer(); //通过这个外部类来实例化内部类 Outer.Inner inner = outer.new Inner(); inner.in();//这是内部类的方法 inner.gerID();//10 } }
Test.java
package com.oop.demo10; public class Test { public static void main(String[] args) { //没有名字初始化类,不用将实例保存到变量中 //new Apple().eat();//1 Apple apple = new Apple(); //匿名内部类 UserService userService = new UserService(){ @Override public void hello() { } }; } } class Apple{ public void eat(){ System.out.println("1"); } } interface UserService{ void hello(); }