成员内部类
public class Animal {
private String sname = "动物";
private int age = 3;
public static String master = "Mr Zhou";
public void eat() {
System.out.println("Animal eat方法");
}
public class Face{
private String color = "黄色";
private String sname = "大花脸";
private static final int s = 0;
public void smile() {
System.out.println("Animal.Face.smile");
System.out.println(sname);
System.out.println(this.sname);
System.out.println(Animal.this.sname);
eat();
System.out.println(Animal.master);
System.out.println(age);
}
}
public static void main(String[] args) {
Animal a = new Animal();
Animal.Face face = a.new Face();
face.smile();
}
}
静态内部类
public class Animal1 {
private String sname = "动物";
private int age = 3;
public static String master = "Mr Zhou";
static class Body{
private String sname = "身体";
private int height = 180;
public void sport() {
System.out.println("Animal1.Body.sport()");
System.out.println(height);
System.out.println(sname);
System.out.println(master);
show();
}
}
public void eat() {
}
public static void show() {
}
public static void main(String[] args) {
Body b = new Animal1.Body();
Body b1 = new Body();
b1.sport();
}
}
局部内部类
public class Animal2 {
private String sname = "动物";
private int age = 3;
public static String master = "Mr Zhou";
public void sleep() {
int num = 5;
class Eye{
private int sight = 1;
private String sname = "双眼皮";
public void watch() {
System.out.println("Animal2.sleep().Eye.watch()");
System.out.println(sname);
System.out.println(Animal2.this.sname);
System.out.println(master);
System.out.println(num);
eat();
}
}
Eye e = new Eye();
e.watch();
}
public void eat() {
}
public static void main(String[] args) {
Animal2 a = new Animal2();
a.sleep();
}
}
匿名内部类
public interface InterfaceA {
void eat();
}
public class SmailFace {
}
public class Test {
static String name = "zhangsan";
public static void main(String[] args) {
int num = 3;
new InterfaceA() {
@Override
public void eat() {
System.out.println("eat方法");
System.out.println(num);
System.out.println(name);
}
}.eat();
}
}