首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 靜態/實例 方法與變量訪問規則總結:靜態上下文不能直接訪問實例成員

     編輯:程式設計綜合問答

核心規則表

訪問者 \ 被訪問實例變量靜態變量實例方法靜態方法
實例方法✓✓✓✓
靜態方法✗ (需對象引用)✓✗ (需對象引用)✓

詳細解釋

  • 靜態方法 屬於類,無 this 引用,故不能直接訪問實例變量/方法(需創建對象實例後通過引用訪問)。
  • 實例方法 擁有 this,可訪問所有成員。
  • 靜態變量 屬於類,全局唯一,任何上下文均可直接訪問。
  • 實例變量 屬於對象,必須通過對象引用訪問。

代碼驗證

public class Demo {
    static int sVar = 1;
    int iVar = 2;

    static void sMethod() {
        System.out.println(sVar);      // ✓
        // System.out.println(iVar);   // ✗ 編譯錯誤
        Demo d = new Demo();
        System.out.println(d.iVar);    // ✓ 通過對象訪問
    }

    void iMethod() {
        System.out.println(sVar);      // ✓
        System.out.println(iVar);      // ✓
        sMethod();                     // ✓
        iMethod();                     // ✓ 遞歸調用自身
    }
}

題目選項判斷

靜態變量可以訪問靜態方法 ✓
實例變量可以訪問靜態方法 ✗(變量不「訪問」方法,方法訪問變量)
實例變量可以訪問實例方法 ✗(同理)

正確表述應為:靜態方法只能直接訪問靜態成員;實例方法可訪問所有成員。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved