回覆列表
  • 1 # 使用者3109062618397768

    不行,因為java中靜態的東西是類級別的,也就是說用類名就可訪問,也可以用任何物件名訪問,無論以哪種形式訪問的都是同一個東西。而一般我們所說的成員變數,是指物件級別的,也就是說每一個物件所擁有的成員變數都是獨立的不同的變數,是屬於物件自己擁有的。相對於來說訪問範圍,無疑是靜態的更大,靜態的可以被任何物件所訪問且是同一個,而成員變數是每個物件各自擁有的。那麼,為什麼“靜態方法不能呼叫類成員變數”,因為要想訪問成員變數你必須有個“已經例項化好的物件”,除非你在靜態方法裡建立一個當前類的例項物件,否則你是無法直接呼叫成員變數的,因為它不知道這個成員變數屬於哪個例項物件的。而在成員方法裡,所有屬於成員的變數、方法已經可以確定是同一個物件的,並且可以用this表示當前物件。

  • 2 # niioo358

    靜態方法是不需要初始化就可以呼叫的,例如Student類有一個靜態方法study,可以Student.study,而不需要例項化一個Student物件。但是非靜態的全域性變數是需要例項化一個物件後,該變數和例項化的那個物件繫結在一起才能夠使用,所以就產生了矛盾,如果靜態方法去呼叫非靜態的變數,那麼該變數可能還沒有被例項化,所以是不能夠呼叫的。

  • 中秋節和大豐收的關聯?
  • 印度新冠疫情爆發跟川普訪印會不會有關?