Java中的小常識點總結。本站提示廣大學習愛好者:(Java中的小常識點總結)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的小常識點總結正文
1、聲明部分變量是的一些特征和規矩
(1)聲明的部分變量是不會被默許初始化的,成員變量則是會被默許初始化的。例如:
class Demo {
public static void main(String[] args) {
String s;
System.out.println(s);
}
}
下面的這段示例代碼中,直接輸入s是毛病的,連編譯都分歧經由過程,由於在main辦法中聲明s,這時候s是部分變量,不會被默許初始化值,是以鄙人面直接輸入是有毛病的。代碼改寫以下便可:
class Demo {
String s;
public static void main(String[] args) {
System.out.println(s);
}
}
如許輸入的話就是null了,由於s被聲明為成員變量,是以默許會被初始化值null。
(2)聲明部分變量的後面不克不及有任何權限拜訪潤飾符(public、protected和private),只能是friendly的默許友愛的,然則可使用final來潤飾部分變量。
2、應用final來潤飾根本類型部分變量和援用類型部分變量的差別
(1)final潤飾根本類型部分變量的時刻,不克不及對其根本類型的數據值停止修正。由於final潤飾的變量是終究的,不克不及被轉變。以下代碼:
public class Something {
public int addOne(final int x) {
return ++x;
}
}
這裡addOne辦法中應用final int x作為參數,上面再對其停止自增是毛病的。
(2)final潤飾援用類型的部分變量的時刻,也就是對象。這時候可以修正對象中的屬性信息,然則不克不及修正對象的援用。好比上面的代碼:
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
這裡addOne辦法吸收的參數是一個對象,而在辦法體中自增了對象中的屬性 i 的值,而對象的援用地址沒有被修正,是以不會產生毛病。而假如在辦法體中寫上:o = new Other(); 這時候就會報錯了。
(3)在類中被final潤飾聲明的成員變量不會默許初始化值。是以必需在結構器之前就得給定一個詳細值。例以下面的代碼:
class Something {
final int i;// 這行就曾經報錯了,編譯不克不及經由過程,沒有初始化值
public void doSomething() {
System.out.println("i = " + i);
}
}
final int i是個final的instant variable (實例變量,或叫成員變量)。final的instant variable沒有default value,必需在constructor (結構器)停止之前被付與一個明白的值。可以修正為"final int i =0;"。