//static
public class Student{
private static int age;//靜態(tài)的變量 多線程!
private double score;//非靜態(tài)的變量
public void run(){
go();
}
public static void go(){
}
public static void main(String[] args) {
Student.go();
}
}
通過(guò)以上代碼可以看出割卖,非靜態(tài)的方法可以直接調(diào)用靜態(tài)的方法。但是靜態(tài)的方法無(wú)法調(diào)用非靜態(tài)的方法。(可以理解成靜態(tài)的方法是先于非靜態(tài)方法和類(lèi)一起加載進(jìn)來(lái)的,因此無(wú)法用“先來(lái)的指揮后來(lái)的”)在主方法中,可以通過(guò)Student.go();來(lái)直接調(diào)用靜態(tài)方法窑眯。通過(guò)new Student().run();來(lái)調(diào)用非靜態(tài)的方法,當(dāng)然這樣也可以調(diào)用靜態(tài)的方法医窿。
public final class Person {
//2:賦初值
{
System.out.println("匿名代碼塊");
}
//1:只執(zhí)行一次
static {
System.out.println("靜態(tài)代碼塊");
}
//3
public Person(){
System.out.println("構(gòu)造方法");
}
public static void main(String[] args) {
Person person1 = new Person();
System.out.println("========================");
Person person2 = new Person();
}
}
運(yùn)行結(jié)果如下:
可以看出static方法塊只有在第一次執(zhí)行時(shí)被調(diào)用磅甩,以后都不會(huì)被執(zhí)行。
注意:這個(gè)類(lèi)中用了final關(guān)鍵字留搔,使得這個(gè)類(lèi)無(wú)法被繼承更胖。
//靜態(tài)導(dǎo)入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
public class Test {
public static void main(String[] args) {
System.out.println(random());
System.out.println(PI);
}
}
這里用static靜態(tài)導(dǎo)入包铛铁,在方法中就可以不用具體注明各個(gè)包的完整路徑隔显,直接調(diào)用即可。