内部类分为一下四种:
成员内部类 静态内部类 局部内部类 匿名内部类
先来熟悉静态内部类:
// 相当于 类中的一个静态的属性或者方法
// 静态内部类中可以拥有静态的属性和方法
//也可以定义非静态的 因为,静态内部类也是一个类,所以类里面可以定义静态成员,也可以定义非静态成员。
//静态内部类的非静态方法可以访问外部类的静态变量和非静态变量
//而静态内部类的静态方法只可以访问外部类的静态变量
package lianxi;
public class StaticInner {
static String name = "小红";
int money;
public void fun(){
System.out.println("开心");
}
static class Inner{
static String name = "小黑";
int money = 10;
//静态内部类的非静态方法可以访问外部类的静态变量和非静态变量
//而静态内部类的静态方法只可以访问外部类的静态变量
public void test(){
System.out.println(name);
System.out.println(money);
}
public static void test1(){
//静态类的静态成员不可以访问外部类的非静态变量
System.out.println(name);
//System.out.println(money);编译错误
}
}
}
main方法:
package lianxi;
public class test {
public static void main(String[] args) {
StaticInner.Inner staticInner = new StaticInner.Inner();
staticInner.test();//小黑 10
staticInner.test1();//小黑
}
}