1. 程式人生 > >個人對java靜態和非靜態的理解

個人對java靜態和非靜態的理解

靜態類和非靜態類的主要區別:
  主要區別在於靜態類不能例項化,靜態類編譯器能夠執行檢查確保不是偶然的新增例項成員,靜態類中不能建立非靜態的方法,即靜態方法中只能建立靜態方法,但在非靜態類中可以呼叫靜態方法。
  靜態類的主要特性:
  1:僅包含靜態成員。
  2:無法例項化。
  3:是密封的。
  4:不能包含例項建構函式。
  5:非靜態類可以包含靜態的方法、欄位、屬性或事件;
  6:靜態方法和屬性不能訪問其包含型別中的非靜態欄位和事件
  7:靜態方法只能被過載,而不能被重寫,因為靜態方法不屬於類的例項成員;

  非靜態類在使用時必須要例項化,每次使用時都要進行例項化,一般情況下使用比較頻繁的類,可以使用靜態類,比如LogClass,ConfigClass等等。

題目一

public class ssss {

private static String a="asd";

public static void main(String[] args) {
change(a);
System.out.println(a);
}

public static void change(String temp){
temp="123";
}
}

答案是列印asd





static class A{
public String a;
public A(){
a="123";
}
}

public static void main(String[] args) {
A temp=new A();
change(temp);
System.out.println(temp.a);
}

public static void change(A temp){
temp.a="abc";
}

答案是列印abc