Day39-20260210
Static
package com.oop.demo07;
//Static :
public class Student {
private static int age;//静态的变量 多线程!
private double score;//非静态的变量
//静态方法
public void run(){
go();//类中非静态的可以访问静态的方法,静态的可以访问静态的但是不能调用非静态的
}
public static void go(){
}
//静态属性
public static void main(String[] args) {
new Student().run();//方法
Student.go();//类名调用
go();//当前类中直接调用
// Student s1 = new Student();//属性
// System.out.println(Student.age);//静态的推荐使用类名访问方法
// //System.out.println(Student.score);
// System.out.println(s1.age);
// System.out.println(s1.score);
}
}
package com.oop.demo07;
public class Person {
{
//代码块(匿名代码块)
}//创建对象时自动创建,在构造器之前
static {
//静态代码块
}//类一加载,直接执行,永久只执行一次
//2,赋初始值
{
System.out.println("匿名代码马块");
}
//1,只执行一次
static {
System.out.println("静态代码块");
}
//3
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person1 = new Person();
System.out.println("========================");
Person person2 = new Person();
}
}
静态代码块
匿名代码马块
构造方法
========================
匿名代码马块
构造方法
进程已结束,退出代码为 0
package com.oop.demo07;
//静态导入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
//final断子绝孙是常量修饰符
//通过final修饰的类不能被继承,没有子类了
public class Test {
public static void main(String[] args) {
System.out.println(Math.random());
System.out.println(random());
System.out.println(PI);
}
}
0.9481691403729069
0.9455844673727518
3.141592653589793
进程已结束,退出代码为 0
本文展示了Java中static关键字的几种用法:1) 静态变量和方法,静态成员属于类而非实例,可通过类名直接访问;2) 静态代码块,在类加载时执行且只执行一次;3) 静态导入包,可直接使用导入类的静态成员。代码示例演示了静态与非静态方法的调用规则、静态/匿名代码块的执行顺序(静态代码块优先),以及使用final修饰符创建不可继承的常量类。静态特性在内存管理和多线程编程中具有重要作用。
浙公网安备 33010602011771号