2015-01-09 108 views
-2

我只是好奇爲什麼類變量(即變量與static關鍵字)其調用類變量而不是包變量。我的意思是如果我在一個類中聲明一個靜態變量,只要它不是私有的,我可以從同一個包中的另一個類訪問這個變量。在java中命名變量的做法。爲什麼類變量不包變量

此外,實例變量是在一個類中聲明的,並且該類中的方法可以訪問實例變量,爲什麼不把它們命名爲類變量......我只是不明白它。

回答

2

該類基本上是創建實例(對象)的框架或藍圖。靜態變量和方法在框架內部定義,並在類由ClassLoader加載時創建,因此不需要爲其創建實例。這就是爲什麼他們是類變量。它們不是包變量,因爲它們專門屬於該類。即你可以通過調用MyClass.myVariable來訪問它們。

實例變量只有在類的實例(即對象是通過調用new()創建並且它們特定於該對象而不是特定於該類時才存在。有一個實例變量的計數與創建該類的對象數量一樣多,而總是隻有一個靜態類變量的計數。這就是爲什麼他們被稱爲實例變量,因爲它們是特定於實例而不是類。

0

它被稱爲類變量,因爲它在一個類中。命名約定中的可見性並不重要。 而非靜態變量是一個實例變量,因爲它可能在一個類的實例中不同。方法在該類的所有實例中總是相同的。

0

因爲包由一組類共同工作,而類是組成實現中的對象的抽象。你不能讓變量純粹作爲包變量存在,因爲它不會給出哪個類「擁有」變量的上下文。另外,這只是不好的面向對象編程。