[英]How does non-static method access static members in java?
考慮一下:
class SomeClass
{
static int a;
int method()
{
int b = a;
return b;
}
}
如何a
是正在方法來訪問? 它是this.a
或someClass.a
?
編輯:對不起,如果我不清楚我的問題。 我想知道的是:*是否有一個 [在方法 ]關聯的隱藏這或SomeClass的或者是一個簡單的 [在方法 ]正在訪問類的成員?
它只是a
:類的任何實例的相同字段。 如果需要明確的消歧,可以編寫someClass.a
。
仔細考慮為什么你需要一個非靜態方法來返回一個靜態成員:它看起來像一個代碼“聞到”我。
我將編輯您的示例,以使其看起來更正確:
public class SomeClass
{
private static int a = 1;
public int method()
{
int b = a;
return b;
}
}
int b = a;
等於int b = SomeClass.a;
不要與this
混淆 - 它是對象的引用。 靜態字段屬於一類,而不是一個對象,因此它是不正確的得到a
與this.a
而且,正如這里已經提到的:
實例方法可以直接訪問類變量和類方法。
如果你的類中,你可以通過只調用訪問a
從任何其他類,您將通過使用someClass.a
接收此靜態成員
只要靜態成員是公共的,您就可以使用任何類中的“SomeClass.a”。 對於私有成員,如果您確實需要訪問該成員並在該類中,請創建一個訪問器方法,只需將其指定為“a”即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.