06.Java面向物件——static關鍵字
阿新 • • 發佈:2018-11-02
一、關於new
在定義一個類時,只是在描述某類事物的特徵和行為,並沒有產生具體的資料。只有通過new關鍵字建立該類的例項物件後,系統才會為每個物件分配空間,儲存各自的資料。
二、靜態變數
static只能修飾成員變數,不能修飾區域性變數
class Student { static String schoolName; // 定義靜態變數schoolName } public class Example12 { public static void main(String[] args) { Student stu1 = new Student(); // 建立學生物件 Student stu2 = new Student(); Student.schoolName = "傳智播客"; // 為靜態變數賦值 System.out.println("我的學校是" + stu1.schoolName); // 列印第一個學生物件的學校 System.out.println("我的學校是" + stu2.schoolName); // 列印第二個學生物件的學校 } }
Student類中定義了一個靜態變數,被所有例項所共享。“schoolName”這類特定的資料 在記憶體中僅需要存一份。
【為什麼是傳智播客,因為我自學看的書,就是他們寫的這一本《Java基礎案例教程》,寫的真的好。我這些都是看這本書的筆記,並再次向大家推薦這本書《Java基礎案例教程》黑馬程式設計師編著】
三、靜態方法
可以不用先建立物件而直接呼叫靜態方法。
class Person { public static void sayHello() { // 定義靜態方法 System.out.println("hello"); } } class Example13 { public static void main(String[] args) { //1.類名.方法的方式呼叫靜態方法 Person.sayHello(); //2.例項化物件的方式來呼叫靜態方法 Person p = new Person(); p.sayHello(); } }
Person.sayHello()——通過靜態方法,不需建立物件就呼叫;
下一行通過例項化物件來呼叫
四、靜態程式碼塊
什麼叫程式碼塊?
{
//大括號裡的就叫程式碼塊
}
用靜態程式碼塊對類成員變數進行初始化,類只加載一次>>靜態程式碼塊只執行一次
static{
System.out.println("執行了靜態程式碼塊");
}
靜態程式碼塊,只會在第一次被載入時使用,且只會載入一次