package com.neibulei;
/**
- 静态内部类
- 1.不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员。
- 2.只能直接访问外部类的静态成员(实例成员需实例化外部类对象)。
- @author WHD
*/
public class Test2 {
public static void main(String[] args) {
//创建内部类对象
//外部类名.内部类名 对象名=new 外部类名.内部类名();
Outer1.Inner inner = new Outer1.Inner();
//输出内部类里的成员变量a
System.out.println(inner.c);
//执行内部类方法innerM1()
inner.innerM1();
//执行内部类静态方法
//外部类名.内部类名.静态方法名
Outer1.Inner.m2();
}
}
//同一个包里不能有两个相同的类名
class Outer1{
public int a = 20;
public static int b = 100;
public void m1() {
System.out.println(“外部类普通方法”);
}
public static void m2() {
System.out.println(“外部类静态方法”);
}
static class Inner{
public int c = 30;
public static int d = 300;
public void innerM1() {
// System.out.println(a); 不能直接访问非静态的内容
System.out.println(b);
m2();
// m1();不能直接访问非静态的内容
System.out.println(“内部类的m1方法”);
}
public static void m2() {
System.out.println("内部类的m2静态方法");
}
}
}