第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

'static'關(guān)鍵字在一個(gè)類中做什么?

'static'關(guān)鍵字在一個(gè)類中做什么?

qq_笑_17 2019-05-25 14:43:38
'static'關(guān)鍵字在一個(gè)類中做什么?具體來(lái)說(shuō),我正在嘗試這段代碼:package hello;public class Hello {     Clock clock = new Clock();     public static void main(String args[]) {         clock.sayTime();     }}但它給出了錯(cuò)誤無(wú)法訪問(wèn)靜態(tài)方法main中的非靜態(tài)字段所以我把聲明改為clock:static Clock clock = new Clock();它奏效了。在聲明之前放置該關(guān)鍵字是什么意思?對(duì)于該對(duì)象可以做什么,它究竟會(huì)做什么和/或限制什么?
查看完整描述

4 回答

?
胡子哥哥

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊

static 成員屬于類而不是特定實(shí)例。

這意味著即使您創(chuàng)建了一百萬(wàn)個(gè)類的實(shí)例,或者您沒(méi)有創(chuàng)建任何一個(gè)實(shí)例,static存在一個(gè)字段的實(shí)例[1]。它將由所有實(shí)例共享。

由于static方法也不屬于特定實(shí)例,因此它們不能引用實(shí)例成員。在給出的示例中,main不知道它應(yīng)該引用Hello哪個(gè)Clock類的實(shí)例(以及它的哪個(gè)實(shí)例)。static會(huì)員只能參考static會(huì)員。實(shí)例成員當(dāng)然可以訪問(wèn)static成員。

附注:當(dāng)然,static成員可以通過(guò)對(duì)象引用訪問(wèn)實(shí)例成員。

例:

public class Example {
    private static boolean staticField;
    private boolean instanceField;
    public static void main(String[] args) {
        // a static method can access static fields
        staticField = true;

        // a static method can access instance fields through an object reference
        Example instance = new Example();
        instance.instanceField = true;
    }

[1]:根據(jù)運(yùn)行時(shí)特性,它可以是每個(gè)ClassLoader或AppDomain或線程一個(gè),但這不是重點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

這意味著Hello中只有一個(gè)“clock”實(shí)例,而不是“Hello”類的每個(gè)單獨(dú)實(shí)例中的一個(gè)實(shí)例,或者更多 - 這意味著在所有實(shí)例中都會(huì)有一個(gè)共同的“時(shí)鐘”引用。 “Hello”課程。

所以,如果你要在你的代碼中的任何地方做一個(gè)“新的Hello”:A-在第一個(gè)場(chǎng)景中(在更改之前,不使用“static”),每次調(diào)用“new Hello”時(shí)它會(huì)生成一個(gè)新的時(shí)鐘,但是在第二個(gè)場(chǎng)景中B-(在更改之后,使用“靜態(tài)”),每個(gè)“新的Hello”實(shí)例仍將共享并使用首先創(chuàng)建的初始和相同的“時(shí)鐘”引用。

除非你在main之外的某個(gè)地方需要“時(shí)鐘”,否則這也會(huì)起作用:

package hello;public class Hello{
    public static void main(String args[])
    {
      Clock clock=new Clock();
      clock.sayTime();    
    }}


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

static關(guān)鍵字是指某物(字段,方法或嵌套類)是相關(guān)于類型,而不是任何特定的實(shí)例的類型。因此,例如,一個(gè)調(diào)用Math.sin(...)沒(méi)有Math該類的任何實(shí)例,實(shí)際上您無(wú)法創(chuàng)建Math該類的實(shí)例。

有關(guān)更多信息,請(qǐng)參閱Oracle Java教程相關(guān)部分。


邊注

遺憾的是, Java 允許您像訪問(wèn)實(shí)例成員一樣訪問(wèn)靜態(tài)成員,例如

// Bad code!Thread.currentThread().sleep(5000);someOtherThread.sleep(5000);

這使它看起來(lái)好像sleep是一個(gè)實(shí)例方法,但它實(shí)際上是一個(gè)靜態(tài)方法 - 它總是使當(dāng)前線程休眠。最好在調(diào)用代碼中明確這一點(diǎn):

// ClearerThread.sleep(5000);


查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

staticJava中的關(guān)鍵字表示變量或函數(shù)在該類的所有實(shí)例之間共享,因?yàn)樗鼘儆?em>類型,而不是實(shí)際的對(duì)象本身。

因此,如果您有一個(gè)變量:private static int i = 0;i++在一個(gè)實(shí)例中遞增it(),則更改將反映在所有實(shí)例中。i在所有情況下現(xiàn)在都是1。

可以在不實(shí)例化對(duì)象的情況下使用靜態(tài)方法。


查看完整回答
反對(duì) 回復(fù) 2019-05-25
  • 4 回答
  • 0 關(guān)注
  • 468 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)