好程式設計師Java教程解密static關鍵字的理解
好程式設計師Java教程分享static關鍵字的理解,static關鍵字含義可以理解為靜態的。
1. 當其修飾屬性時,該屬性為整個類公有,所有的物件操作的都是同一個靜態屬性。所以呼叫時應該使用類名去呼叫,而不需要使用物件呼叫。
用類名去呼叫static有兩層含義:
1. 可以理解為其為整個類公有的內容。
2. 可以理解為不需要建立物件就可以直接使用。
class Student {
private String name ;
private String no ;
// 此處省略掉getter和setter
public static String school ;
public static void main(String[] args ) {
Student stu1 = new Student();
stu1 . setName ( " 某某某 " );
stu1 . setNo ( "1001" );
Student. school = "千鋒" ;
Student stu2 = new Student();
Student. school = "千鋒教育" ;
System. out .println(Student. school );
}
}
2. 當其修飾方法時,該方法不需要物件呼叫,直接使用類名即可呼叫。
// 只顯示程式碼片段
public static String getSchool() {
return school ;
}
// 其他位置呼叫
System. out .println(Student. getSchool ());
注意:在static方法中不能呼叫普通屬性。也不能使用this關鍵字。因為static方法是使用類名呼叫的,而使用時不能判斷是否建立物件,所以根本不能呼叫物件所對應的方法或屬性,只能呼叫static的屬性或方法。
程式碼塊,是指在類中,直接使用{}中間寫一段程式碼,此程式碼不需要手動呼叫,在每次建立物件時會自動呼叫,甚至會在構造方法之前呼叫。
public class Student {
private String name ;
private String no ;
public static String school ;
public Student(){
System. out .println( "無參建構函式" );
}
{
System. out .println( "此處是程式碼塊" );
}
}
3. 當static修飾程式碼塊時,該程式碼塊為靜態程式碼塊,在類載入時呼叫,僅在第一次載入時呼叫一次。不需要建立物件。如果建立了物件,呼叫次序為:先呼叫static程式碼塊,再呼叫程式碼塊,最後呼叫構造方法。
public class Student {
private String name ;
private String no ;
public static String school ;
public Student(){
System. out .println( "無參建構函式" );
}
{
System. out .println( "此處是程式碼塊" );
}
static {
System. out .println( "此處是靜態程式碼塊" );
}
}
當有一個父類Person,有一個子類Student,分別都有構造方法,程式碼塊和靜態程式碼塊時,建立一個子類物件,呼叫次序為:
此處是Person靜態程式碼塊
此處是Student靜態程式碼塊
此處是Person程式碼塊
Person無參建構函式
此處是Student程式碼塊
Student無參建構函式
程式碼如下:
public class Person {
public Person(){
System. out .println( "Person無參建構函式" );
}
{
System. out .println( "此處是Person程式碼塊" );
}
static {
System. out .println( "此處是Person靜態程式碼塊" );
}
}
public class Student extends Person{
public Student(){
System. out .println( "Student無參建構函式" );
}
{
System. out .println( "此處是Student程式碼塊" );
}
static {
System. out .println( "此處是Student靜態程式碼塊" );
}
}
總結一句:static其實翻譯類的,更容易理解,比如static修飾屬性,稱為類屬性,static修飾方法,稱為類方法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2651643/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java 的 static 關鍵字Java
- Java課堂篇4_關鍵字this、static的理解Java
- java中的static關鍵字Java
- c語言static關鍵字的理解C語言
- java中static關鍵字的作用Java
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- java中的static和final關鍵字Java
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師Java教程分享jsp相關面試題程式設計師JavaJS面試題
- static關鍵字
- 好程式設計師Java教程分享List介面程式設計師Java
- 好程式設計師Java教程分享javaweb框架程式設計師JavaWeb框架
- final關鍵字和static關鍵字
- static關鍵字的作用
- 好程式設計師Java教程分享Java面試妙招程式設計師Java面試
- 好程式設計師Java教程分享Java開發工具程式設計師Java
- java併發程式設計:volatile關鍵字Java程式設計
- Java併發程式設計volatile關鍵字Java程式設計
- java併發程式設計——volatile關鍵字Java程式設計
- 好程式設計師Java教程分享Java中this的幾種用法程式設計師Java
- 好程式設計師Java教程分享幾個流行的Java框架程式設計師Java框架
- Java基礎——final和static關鍵字Java
- Java關鍵字volatile的理解Java
- 深入理解Swift中static和class關鍵字Swift
- 好程式設計師Java教程分享Java開發主流框架程式設計師Java框架
- 好程式設計師Java教程分享Java 迴圈結構程式設計師Java
- 好程式設計師Java教程分享Java設計模式的6大原則程式設計師Java設計模式
- 好程式設計師Java教程分享Java的4大核心基礎程式設計師Java
- 好程式設計師Java教程分享Java的五大特點程式設計師Java
- 好程式設計師Java教程分享如何系統的學習Java程式設計師Java
- JAVA面試題 淺析Java中的static關鍵字Java面試題
- Java併發程式設計:volatile關鍵字解析Java程式設計
- 好程式設計師Java教程分享Jmeter效能測試程式設計師JavaJMeter
- 好程式設計師Java教程分享MyBatis Plus介紹程式設計師JavaMyBatis
- 好程式設計師Java教程:SQL語言之檢視程式設計師JavaSQL
- 好程式設計師Java教程分享:Java工程師常見面試題程式設計師Java工程師面試題
- 好程式設計師解密Spark是否可以替代hadoop程式設計師解密SparkHadoop
- 好程式設計師:Java程式設計師面試秘籍程式設計師Java面試