文章目录
- 1.常量
- 2.变量
- 3.成员内部类
- 4.变动
1.常量
实例常量:只用final修饰,是某个具体类的实例
静态常量:final+static修饰,属于类,所有实例共享同一个类常量
2.变量
实例变量(成员变量):定义在类内部但在方法外部。
类变量(静态变量):使用 static修饰,属于类,所有实例共享同一个类变量。
局部变量:定义在方法、构造函数或块内部。仅在其所在的方法或块内有效。
3.成员内部类
成员内部类是定义在外部类内部,并且没有用 static 修饰的内部类。它是依附于外部类实例的,不能包含静态成员(除了常量)。
public class Main {
private int outerField1 = 10;
private static int outerField2 = 8;
public void test1(){
System.out.println("hello1");
}
public static void test2(){
System.out.println("hello2");
}
public class MemberInnerClass {
public void innerMethod() {
// 可以访问外部类的所有成员
System.out.println("Outer field: " + outerField1);
test1();
System.out.println("Outer field: " + outerField2);
test2();
}
}
public static void main(String[] args) {
Main outer = new Main();
MemberInnerClass inner = outer.new MemberInnerClass();
inner.innerMethod(); // 输出 "Outer field: 10" 和 "hello"
}
}
输出如下:
在这个例子中,MemberInnerClass 是一个成员内部类,它可以访问外部类的所有成员。
4.变动
在JDK16之前成员内部类不能有静态成员(除了常量),在JDK16之后成员内部类可以定义静态变量。