内部类
内部类就是在一个类的内部再定义一个类。比如:A类中定义了一个B类,那么B类相对于A类来说就称为内部类,而A 类就是B类的外部类了。
-
成员内部类。
package oop.demo01.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 getID(){ System.out.println(id); } } }
package oop.demo01.demo10; public class Application { public static void main(String[] args) { //外部类通过new实现 Outer outer=new Outer(); //通过这个外部类来实例化内部类 Outer.Inner inner=outer.new Inner(); inner.in(); } }
-
静态内部类。
package oop.demo01.demo10; public class Outer { private int id; public void out(){ System.out.println("这是外部类的方法"); } public static class Inner{ public void in(){ System.out.println("这是内部类方法"); } } }
package oop.demo01.demo10; public class Application { public static void main(String[] args) { //外部类通过new实现 Outer outer=new Outer(); } }
-
局部内部类。
一个java类中可以有多个class类,但只能由一个public class类。
package oop.demo01.demo10; public class Outer { //局部内部类 public void method(){ class Inner{ public void in(){ } } } }
-
匿名内部类。
package oop.demo01.demo10;
import oop.demo01.deno09.UserService;
public class Test {
public static void main(String[] args) {
// Apple apple = new Apple();//实例化类
//没有名字初始化类;不用将实例保存到变量中。
new Apple().eat();
}
}
class Apple{
public void eat(){
System.out.println("1");
}
}
标签:Outer,内部,void,public,new,class,out
From: https://www.cnblogs.com/sx-xiaoL/p/17417287.html