<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這篇文章主要是從類中static修飾的成員變數,static修飾的成員方法這兩個方面來講解static,static成員變數的初始化會在程式碼塊中講解
在Java中,被static修飾的成員,稱之為靜態成員,也可以稱為類成員,其不屬於某個具體的物件,是所有物件所共用的。
舉個例子:
class Animal{ String name; int age; static String type = "Dog"; //構造方法 public Animal(String name,int age){ this.name = name; this.age = age; } public void SetAnimal(){ System.out.println(this.name+" "+this.age+" "+type); } } public class Test { public static void main(String[] args) { Animal animal1 = new Animal("小白",1); Animal animal2 = new Animal("大黃",2); animal1.SetAnimal(); animal2.SetAnimal(); } }
執行結果如下圖所以:
我定義了一個動物類,成員變數有名字和年齡,還有一個被static修飾的變數type(種類),以及一個構造方法。我在主函數中建立了兩個物件,物件的種類都是狗。並用構造方法為我建立的兩個變數進行賦值。而種類type是我實現在定義定義變數的時候就進行初始化的,這種初始化變數叫做就地初始化。
注意: s t a t i c 修 飾 的 成 員 變 量 不 是 一 定 要 就 地 初 始 化 color{#FF0000}{static修飾的成員變數不是一定要就地初始化} static修飾的成員變數不是一定要就地初始化
在我們用完static修飾完type之後,type就是靜態成員變數,靜態成員變數也叫類變數。沒被static修飾的成員變數叫做普通成員變數。靜態成員變數有個特點就是 不 屬 於 對 象 color{#FF0000}{不屬於物件} 不屬於物件。
什麼是不屬於物件?
也就是說static修飾過的變數,是不依賴物件的。舉個例子:
class Animal{ String name; int age; static String type = "Dog"; //構造方法 public Animal(String name,int age){ this.name = name; this.age = age; } public void SetAnimal(){ System.out.println(this.name+" "+this.age+" "+type); } } public class Test { public static void main(String[] args) { Animal animal1 = new Animal("小白",1); Animal animal2 = new Animal("大黃",2); System.out.println(animal1.type); System.out.println(Animal.type); } }
仍然是上面的程式碼,我們都知道 物件名.成員變數可以存取成員變數,而存取static修飾的成員變數不需要建立物件,可以直接通過 類名.靜態成員變數進行存取。執行結果結果如圖所示:
兩個列印的結果都是Dog,所以static修飾的變數不屬於物件,因為不需要建立物件也可以存取。如果大家是想存取static修飾的變數,建議大家就直接用類名.靜態成員變數就可以了,不建議使用物件.變數名進行存取。
static修飾的成員方法和成員變數一樣 ,不屬於物件。static修飾的成員方法也叫類方法。也就是說,如果我想呼叫static修飾的成員方法直接用 類名.成員方法 就可以了。舉個例子:
class Animal{ String name; int age; static String type = "Dog"; public static void staticFunc(){ System.out.println("static修飾的成員方法"); } } public class Test { public static void main(String[] args) { Animal animal1 = new Animal("小白",1); Animal animal2 = new Animal("大黃",2); Animal.staticFunc(); } }
我們平時寫的方法一般都是static修飾的,為什麼要用static修飾我相信你的心裡應該也有答案了。
因為static修飾的方法不屬於物件,不需要建立物件就可以直接使用。你也可以把static修飾的成員方法看成我們平時寫的方法,只不過這是個在不同的類裡面定義的一個成員方法罷了。
static修飾的成員方法是不依賴於物件的方法,所以在static修飾的方法中,不能直接存取普通的成員變數,因為普通的成員方法是需要依賴物件的。如果不建立物件,直接在static中修飾的成員方法中存取普通成員變數是不可以的。如果想要在static中修飾的成員方法中存取成員變數,有兩種方法,第一種是直接在static修飾的成員方法中建立一個物件,這樣就可以存取了。第二種是把建立好的物件作為static修飾成員方法的形參,這樣也可以直接存取。
到此這篇關於Java深入講解static操作符的文章就介紹到這了,更多相關Java static內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45