亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

靜態變量和靜態方法和靜態類有什么區別?

靜態變量和靜態方法和靜態類有什么區別?

慕神8447489 2021-12-01 18:57:14
我在面試,面試官問了我這個問題,我不能用他想要的正確答案讓他滿意,需要幫助,謝謝
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

靜態變量是一個變量:


public static int whatever = 0;

靜態方法是一種方法:


public static void whatever() {}

靜態類是一個類:


public static class SomeInnerClass {}

(一個類只有在static嵌套在另一個類中時才能有修飾符)


靜態變量和方法可以從任何其他類訪問,并且不綁定到該類的實例。例如,假設您有以下類:


public class SomeClass {

    public static int myInt = 0;


    public static int add(int one, int two) {

        return one + two;

    }

}

從任何其他類,您可以直接訪問變量和方法,而無需創建 的實例SomeClass:


SomeClass.myInt = 23;

int sum = SomeClass.add(SomeClass.myInt, 2); //this will equal 25

如果變量和方法不是靜態的,則必須首先實例化 SomeClass 然后引用該實例:


SomeClass someClass = new SomeClass();

someClass.myInt = 23;

int sum = someClass.add(someClass.myInt, 2); //this will equal 25

靜態類用于將嵌套類與其父類分開,并消除對父類實例的依賴。取以下代碼:


public class ParentClass {

    public class ChildClass {}

}

從另一個(父類的非子類)類中,您將能夠使用:


ParentCLass parent = new ParentClass();

但是你不能這樣做:


ChildClass child = new ChildClass(); //this won't compile if it's not in ParentClass

但是,如果 ChildClass 變為靜態:


public class ParentClass {

    public static class ChildClass {}

}

您將能夠從另一個(父類的非子類)類實例化它:


ChildClass child = new ChildClass(); //this will compile when put in any class

我建議閱讀一些關于類如何工作的 Java 基礎知識:https : //www.geeksforgeeks.org/classes-objects-java/


查看完整回答
反對 回復 2021-12-01
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

在 Java 中,static 是一個關鍵字,用于描述對象在內存中的管理方式。這意味著靜態對象專門屬于該類,而不是該類的實例。變量、方法、類可以是靜態的。它們之間的區別和往常一樣(變量、方法和類之間的區別)。一個靜態變量(例如int或String等容器),靜態方法(一個存在于內存中并且是類的一部分的方法(可以在沒有Hello.staticMethod()類的實例的情況下調用),一個靜態類有點在 Java 中獨一無二,看看這個Java 中的靜態類


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 284 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號