内部类
1,新建Outer类
package oop.demo11;
//外部类;
public class Outer {
// private int id = 19301041;
private static int id = 19301041;
public void out() {
System.out.println("这是一个外部类 方法;");
}
// 这是一个内部类
public class Inner {
public void in() {
System.out.println("这是一个内部类 方法;");
}
// 内部类,访问外部类的一些私有变量;
// 获得外部类的系有属性;
public void getTd() {
System.out.println("id:" + id);
}
}
// 静态内部类
// 这是一个内部类
public static class Inner2 {
public void in() {
System.out.println("这是一个内部类 方法;");
}
// 内部类,访问外部类的一些私有变量;
// 获得外部类的系有属性;
public void getTd() {
System.out.println("id:" + id);
}
}
// 局部内部类
public void method() {
class Inner3 {
public void in() {
}
}
}
}
//一个Java类 中可以的多个class类 但是 只有一个 public class
//内部类;
class A {
public static void main(String[] args) {
}
}
2,新建Test类
package oop.demo11;
public class Test {
public static void main(String[] args) {
Apple apple = new Apple();
apple.eat(); //eat------------>Apple
System.out.println("===========");
// 没有名字初始化类、 匿名内部类;匿名对象的使用; 不用蒋实例保存到变量中,
new Apple().eat(); //eat------------>Apple
UserService userService = new UserService() {
@Override
public void hell0() {
}
};
}
}
class Apple {
public void eat() {
System.out.println("eat------------>Apple");
}
}
interface UserService {
void hell0();
}
3,新建Application类
package oop.demo11;
public class Application {
public static void main(String[] args) {
//new
Outer outer = new Outer();
outer.out(); //这是一个外部类 方法;
// 通过这个外部内来实例化这个内部类;
Outer.Inner inner = outer.new Inner();
inner.in(); //这是一个内部类 方法;
inner.getTd(); //id:19301041
}
}
4,运行结果