溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java教程 Java語(yǔ)言中static修飾符有什么用

發(fā)布時(shí)間:2021-07-01 16:19:35 來(lái)源:億速云 閱讀:185 作者:Leah 欄目:編程語(yǔ)言

Java教程 Java語(yǔ)言中static修飾符有什么用,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

在Java類(lèi)中,我們常常會(huì)看到static關(guān)鍵字,往往被稱(chēng)為靜態(tài)的。Static修飾符可以用來(lái)修飾數(shù)據(jù)成員,方法成員,但是不能修飾類(lèi)(此處指外部類(lèi)),不能修飾構(gòu)造方法。如:

package com.csst.vo;    public class User {          private String name;          private static int count;          public String getName() {                 return name;          }          public void setName(String name) {                 this.name = name;          }                public static int getCount() {                 return count;          }          public static void main(String[] args){                 User user1=new User();                 User user2=new User();                 user1.setName("Rose");                 user2.setName("Kate");                 user1.count=10;                 user2.count=20;                 System.out.println("user1.name:"+user1.getName()+" user2.name:"+user2.getName());                 System.out.println("user1.count:"+User.getCount()+"user2.count:"+user2.count);          }  }

該程序運(yùn)行結(jié)果為:

user1.name:Rose user2.name:Kate   user1.count:20 user2.count:20

我們可以發(fā)現(xiàn),user1和user2的name屬性是不同的,分別為該對(duì)象調(diào)用setName所指定的,而雖然user1和user2分別對(duì)count屬性指定了不同的值,但是最終輸出的count值卻均為20。原因就是count被static修飾,而name沒(méi)有使用count修飾。
被static修飾符修飾的數(shù)據(jù)成員或方法成員被稱(chēng)為靜態(tài)成員,或者類(lèi)成員,沒(méi)有被static修飾的,被稱(chēng)為實(shí)例成員。static成員只被初始化一次,所有的對(duì)象共享,因此count會(huì)輸出兩個(gè)20。實(shí)例成員只有當(dāng)初始化對(duì)象的時(shí)候才初始化,每次創(chuàng)建對(duì)象,都會(huì)被初始化一次。name在user1和user2被創(chuàng)建時(shí),初始化了2次,因此最終輸出的是Rose和Kate。
另外,static成員,由于是類(lèi)共享的,所以不僅可以使用對(duì)象調(diào)用,也可以使用類(lèi)名調(diào)用。在static方法中,不能夠直接使用非靜態(tài)的成員,如果使用,必須初始化對(duì)象,調(diào)用。如過(guò)在上面示例的User.java中有如下代碼,會(huì)發(fā)生編譯錯(cuò)誤。

public static void test(){          setName("test");   }

可以修改如下:

public static void test(){                 User user=new User();                 user.setName("test");   }

看完上述內(nèi)容,你們掌握J(rèn)ava教程 Java語(yǔ)言中static修飾符有什么用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI