1. 程式人生 > >靜態方法中訪問類的例項成員

靜態方法中訪問類的例項成員

例項程式碼

public class Example
{
 int x = 3;//類的例項變數,初始化值為3
 static int  y = 4;//類的靜態變數,初始化值為4
 public static void method()//靜態方法
  {   
   System.out.println("例項變數x = " + new Example().x);//在靜態方法中訪問類的例項變數需首先進行類的例項化
   System.out.println("靜態變數y = " + y);//在靜態方法中可直接訪問類的靜態變數
  }

 public static void main(String[] args) 
    {
         Example.method();
         Example ex 
= new Example(); System.out.println("x = " + ex.x); } }

執行結果

類中靜態的方法或者屬性,本質上來講並不是該類的成員,在java虛擬機器裝在類的時候,這些靜態的東西已經有了物件,它只是在這個類中"寄居",不需要通過類的構造器(建構函式)類實現例項化;而非靜態

的屬性或者方法,在類的裝載是並沒有存在,需在執行了該類的建構函式後才可依賴該類的例項物件存在。

在外部呼叫靜態方法時,可以使用"類名.方法名"的方式,也可以使用"物件名.方法名"的方式。而例項方法只有後面這種方式。也就是說,呼叫靜態方法可以無需建立物件。

靜態方法在訪問本類的成員時,只允許訪問靜態成員(即靜態成員變數和靜態方法),而不允許訪問例項成員變數和例項方法;例項方法則無此限制。

本文參考https://www.cnblogs.com/weipinggong/p/4887025.html