Detailed explanation of Java static static modifiers: static variables, static methods and static code blocks
•
Java
类名.静态成员
Static variable
public static double PI = 3.14159256;
Example 1
public class StaticVar {
public static String str1 = "Hello";
public static void main(String[] args) {
String str2 = "World!";
// 直接访问str1
String accessVar1 = str1+str2;
System.out.println("第 1 次访问静态变量,结果为:"+accessVar1);
// 通过类名访问str1
String accessVar2 = StaticVar.str1+str2;
System.out.println("第 2 次访问静态变量,结果为:"+accessVar2);
// 通过对象svt1访问str1
StaticVar svt1 = new StaticVar();
svt1.str1 = svt1.str1+str2;
String accessVar3 = svt1.str1;
System.out.println("第3次访向静态变量,结果为:"+accessVar3);
// 通过对象svt2访问str1
StaticVar svt2 = new StaticVar();
String accessVar4 = svt2.str1+str2;
System.out.println("第 4 次访问静态变量,结果为:"+accessVar4);
}
}
第 1 次访问静态变量,结果为:HelloWorld! 第 2 次访问静态变量,结果为:HelloWorld! 第 3 次访向静态变量,结果为:HelloWorld! 第 4 次访问静态变量,结果为:HelloWorld!World!
Static method
Example 2
public class StaticMethod {
public static int count = 1; // 定义静态变量count
public int method1() {
// 实例方法method1
count++; // 访问静态变量count并赋值
System.out.println("在静态方法 method1()中的 count="+count); // 打印count
return count;
}
public static int method2() {
// 静态方法method2
count += count; // 访问静态变量count并赋值
System.out.println("在静态方法 method2()中的 count="+count); // 打印count
return count;
}
public static void PrintCount() {
// 静态方法PrintCount
count += 2;
System.out.println("在静态方法 PrintCount()中的 count="+count); // 打印count
}
public static void main(String[] args) {
StaticMethod sft = new StaticMethod();
// 通过实例对象调用实例方法
System.out.println("method1() 方法返回值 intro1="+sft.method1());
// 直接调用静态方法
System.out.println("method2() 方法返回值 intro1="+method2());
// 通过类名调用静态方法,打印 count
StaticMethod.PrintCount();
}
}
在静态方法 method1()中的 count=2 method1() 方法返回值 intro1=2 在静态方法 method2()中的 count=4 method2() 方法返回值 intro1=4 在静态方法 PrintCount()中的 count=6
Static code block
Example 3
public class StaticCode {
public static int count = 0;
{
count++;
System.out.println("非静态代码块 count="+count);
}
static {
count++;
System.out.println("静态代码块 count="+count);
}
public static void main(String[] args) {
System.out.println("*************** StaticCode1 执行 ***************");
StaticCode sct1 = new StaticCode();
System.out.println("*************** StaticCode2 执行 ***************");
StaticCode sct2 = new StaticCode();
}
}
静态代码块 count=1 *************** StaticCode1 执行 *************** 非静态代码块 count=2 *************** StaticCode2 执行 *************** 非静态代码块 count=3
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
