一、類變量
1.什麼是類變量
類變量:也叫靜态變量或靜态屬性,是該類的聲明的所有對象共享的變量,所有該類聲明的對象去通路它時,取到的都是相同的值,同樣任何該類的對象去修改它時,修改的也是同一個變量。
2.怎麼定義類變量
定義文法:(1)通路修飾符 static 資料類型 變量名;(推薦)
(2)static 通路修飾符 資料類型 變量名;
3.怎麼通路類變量
(1)對象.類變量名
(2)類.類對象名(推薦)
注:靜态變量的通路修飾符的通路權限和普通屬性一樣
package com.hspedu.static_;
public class VisitStatic {
public static void main(String[] args) {
System.out.println(A.age);//18
A a = new A();
A a1 = new A();
System.out.println(a.age);//18
a1.age = 2;
System.out.println(A.age);//2
System.out.println(a.age);//2
System.out.println(a1.age);//2
}
}
class A{
public static int age=18;
}
4.類變量使用細節
(1)什麼時候需要用類變量
當需要所有對象都共享一個變量的時候,如,定義一個學生類,要統計所有學生交的學費。
(2)類變量(靜态屬性/靜态變量)和非靜态變量的差別
類變量是該類的所有對象共享的,而非靜态變量是每個對象獨享的。
(3)加上static稱為類變量或靜态變量或靜态屬性,否則稱為執行個體變量/普通變量/非靜态變量...
(4)類變量可以通過 類名.類變量名 或 對象名.類變量名來通路,但推薦用第一種(前提是滿足通路修飾符的通路權限和範圍)
(5)執行個體變量不能通過類.變量名來通路
(6)類變量是在類加載的時候就初始化了,也就是說,即使你沒有建立對象,隻要類加載了,就可以使用類變量
(7)類變量的生命周期是随類的加載開始,随類的消亡而銷毀的。
二、類方法
1.類方法也叫靜态方法
2.定義類方法形式:(推薦)(1)通路修飾符 static 資料傳回類型 方法名(){ }
(2)static 通路修飾符 資料傳回類型 方法名(){ }
3.類方法的調用
類.類方法名 或 對象名.類方法名(前提是 滿足通路修飾符的通路權限和範圍)
4.類方法的應用場景
(1)當方法不涉及到任何對象相關的成員,可以将方法設計成靜态方法。
(2)實際開發過程中,往往将一些通用的方法設計成靜态方法,這樣不用建立對象就能使用,比較友善,例如,冒泡,電腦...
5.類方法使用細節
(1)類方法和普通方法都是随着類的加載而加載,将結構資訊存儲在方法區中
類方法中沒有this的參數
普通方法中隐含着this參數
(2)類方法可以通過類名調用,也可以通過對象名調用。
(3)普通方法需要通過對象名調用,即要先聲明對象,再調用(例:對象名.方法名(參數)),不能通過類名調用。
(4)類方法中不允許使用和對象有關的關鍵字,比如this和super。普通方法可以。
(5)類方法(靜态方法)隻能通路靜态變量或靜态方法
(6)普通成員方法,既可以通路非靜态成員,也可以通路靜态成員
小結:靜态方法,隻能通路靜态的成員,非靜态方法,可以通路靜态成員和非靜态成員(必須遵守通路權限)