静态内部类的初始化 初始化静态内部类的方式相对简单。可以直接通过外部类类名来实例化静态内部类。 publicclassMain{publicstaticvoidmain(String[]args){// 初始化静态内部类OuterClass.InnerStaticClassinnerObj=newOuterClass.InnerStaticClass();innerObj.printOuterField();// 输出: Outer static field}} 1. 2...
步骤一:创建外部类的实例 由于静态内部类不能直接访问外部类的非静态成员变量和方法,我们需要先创建外部类的实例,然后通过该实例来访问静态内部类。 步骤二:通过外部类的实例访问静态内部类 通过外部类的实例,我们可以使用以下语法来访问静态内部类: 外部类名.静态内部类名 静态内部类实例名=外部类实例.静态内部类实...
一个类中有静态的本类对象,创建的过程从上到下先执行本类的非静态块和非静态属性,最后在执行构造方法。 那么我们初始化t1的时候,就要从上向下找非静态块和非静态属性(如果有的话 ),最后在执行构造方法。 代码语言:javascript 复制 {print("初始化块");j=100;} 我们调用print函数并且将j的值修改为100,这样就...
根据输出结果,可以发现 在初始化 StaticInit类时,先初始化了类的静态变量. 再是执行了变量s2的初始化,最后 才是类构造器的执行输出 对StaticInit类再加一个f()方法 publicclassStaticInit{ StaticInit1s2=newStaticInit1(1); publicStaticInit(){ System.out.println("StaticInit-init"); } staticStaticInit1s...
1. 静态代码块 静态代码块:定义在类中方法外,使用static修饰 ①可以为类变量(静态变量)初始化 ②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次 ③若有多个静态代码块,那么按照定义的先后顺序依次执行 ④在静态代码块中不能访问非静态成员(属性、方法、内部类) ...
1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 2.然后,初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化; 3.其次,初始化父类的普通成员变量和代码块,在执行父类的构造方法; 4.最后,初始化子类的普通成员变量和代码块,在执行子类的构造方法; ...
在Java中,类的初始化顺序是按照一定的规则进行的。当我们创建一个类的实例或访问静态成员时,Java虚拟机(JVM)会按照特定的顺序来初始化类。以下是类初始化的基本步骤: 静态变量:首先被初始化的是静态变量。这些变量在类加载的时候被初始化,并且只会被初始化一次。如果一个静态变量是一个常量(final),则其初始值必...
内部静态类(Static Nested Class)是定义在另一个类内部的类,但它使用static关键字修饰。这意味着内部静态类不依赖于外部类的实例,可以直接通过外部类名访问。 说明静态内部类的初始化方式: 静态内部类的初始化方式与普通的顶级类相似。你可以直接使用new关键字来创建静态内部类的实例,前提是外部类已经被加载。 提供...
静态变量初始化顺序 1.简单规则 首先先看一段最普遍的java代码: public class Test { public static Test1 t = new Test1(); public static int a = 0; public static int b; public static void main(String[] arg) { System.out.println(Test.a); ...