今天做一個JAVA作業的時候,遇到了一個錯誤: 無法從靜態上下文中引用非靜態 變量 this,錯誤原因是我把一個正方形的類寫在了測試類的里面,然后又在靜態main方法中中使用了RegularPolygon b = new RegularPolygon(6,4);。可以有以下兩種改正形式 ...
注意: 上述代碼運行時:報錯 無法從靜態上下文中引用非靜態 變量,原因是:靜態主方法只能訪問靜態變量 如果要訪問動態變量,必須將動態變量實例化。 以上程序運行正確。 說白了,就是在JAVA程序中,除了主靜態方法以及類方法之外,其他在該類下定義的實例變量 實例方法,在主類方法中調用時必須要將其實例化,說白了就是要加上對象的引用: 比如: 某個對象.變量 某個對象.方法 以上程序也可以實現相同的功能 ...
2015-12-20 17:45 0 3293 推薦指數:
今天做一個JAVA作業的時候,遇到了一個錯誤: 無法從靜態上下文中引用非靜態 變量 this,錯誤原因是我把一個正方形的類寫在了測試類的里面,然后又在靜態main方法中中使用了RegularPolygon b = new RegularPolygon(6,4);。可以有以下兩種改正形式 ...
為什么靜態方法不能調用非靜態變量,非靜態方法可以引用靜態變量? 理由很簡單,靜態方法不屬於對象,是屬於類的,是不需要實例化的,而非靜態變量是屬於對象的,需要先實例化。在一個類的靜態成員中去訪問其非靜態成員之所以會出錯是因為在類的非靜態成員不存在的時候類的靜態成員就已經存在了,訪問一個內存中不存在 ...
問題:字段初始值設定項無法引用非靜態字段、方法或屬性的問題 在類中 變量賦值其他變量報錯? public class TestClass{ public TestClass() { } public int a=1; public int b= a;//注意 此處 ...
設定項無法引用非靜態字段、方法或屬性} C#規定在類內部只能定義屬性或者變量,並初始化,不能直 ...
屬性或變量,不能變量引用變量。 原因與各種屬性的內存的分配順序有關,沒太理解上去,別這么用就行了 ...
生命周期不同:非靜態成員變量隨着對象的創建而存在;靜態成員變量隨着類的加載而存在 調用方式不同:非靜態成員變量用 對象名.變量名 調用;靜態成員變量用 類名.變量名,JDK1.7以后也能用對象名.變量名調用 別名不同:非靜態成員變量也稱為實例變量;靜態變量稱為類變量 數據存儲 ...
關於靜態變量和非靜態變量的區別 靜態變量:被static修飾的變量,加載類的時候被創建,不隨對象的創建而改變,靜態變量位於方法區,類消失對應的變量消失。 非靜態變量:不被static修飾的變量,每創建一次對象,就會為變量分配 ...