国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【JAVA】final修飾Field

2019-11-15 01:02:54
字體:
來源:轉載
供稿:網友
java】final修飾Field

一、簡介

  final修飾符可以用來修飾變量、方法、類。final修飾變量時一旦被賦值就不可以改變。

二、final成員變量

  成員變量是隨類初始化或對象初始化而初始化的。當類初始化的時候,會給類變量分配內存;當對象初始化的時候,會給實例變量分配內存。

  所以說,final修飾的變量可以在申明的時候指定初始值,也可以再靜態初始化塊中指定初始值;final修飾的實例變量除了在申明的時候指定初始值,還可以在構造器或者在普通初始化塊中指定初始值。

  需要注意的是: 指定初始值只能在一處進行,不可既在申明的時候指定,又在初始化塊中指定。

  

package fianlFieldCase;public class Test {    //實例field,在申明時賦值了    PRivate final String str = "java";        //實例field,在申明時未賦值    private final String str2;        //實例field,在申明時未賦值    private final int i;        //類field,在申明時賦值了    private static final int i2 = 2;        private static final int i3;        {        //在普通初始化塊中給實例field賦值        str2 = "normalFinalField";    }        static    {        //在靜態初始化塊中給類field指定初始值        i3 = 3;    }    public Test()    {        //在構造器中給實例field賦值        i = 1;                        //在構造器中給已經在初始化中賦了值的str2重新賦值,將會報編譯錯。        //str2 = "re";    }}

  注意: final修飾的成員變量必須顯式進行初始化,若與普通成員變量一樣,由系統給出默認值,而此變量又是不可變的,那這個變量也就失去意義了。所以JAVA語法規定final修飾的成員變量必須顯式初始化。

三、final局部變量

  final修飾的局部變量可以在申明的時候賦值,也可以在后面賦值,但只能賦值一次,否則會編譯不通過。同樣final修飾的形參也是的,不可以重新進行賦值,因為形參是在該方法被調用的時候被賦值的?! ?/p>

package fianlFieldCase;public class FinalField {        public static void print(final String str)    {        //str不能被重新賦值        //str = "android";        System.out.println(str);    }    public static void main(String[] args) {        //final修飾的局部變量在申明的時候就被初始化了        final String s = "java";                //若重新賦值,便會編譯不通過        //s = "python";                //final修飾的局部變量,沒有被初始化        final int i;                //可以在后面進行初始化        i = 1;                //重新賦值,便會報錯        //i = 2;                print("Ruby");    }}

四、final修飾基本類型變量和引用類型變量的區別  

  當使用final修飾基本類型變量時,不能對基本類型變量進行重新賦值,因此基本類型變量不能被改變。

  當final修飾引用類型變量時,它僅僅是一個引用,存放的是對象的地址,那這個地址是不能變的,即不能指向新的地址,但指向的這個對象里面的值其實是可以改變的。

  final修飾方法和類將在后續博客進行總結!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平远县| 怀集县| 高台县| 浦城县| 岢岚县| 鲁甸县| 阳信县| 体育| 涡阳县| 柳州市| 九龙城区| 遂平县| 上思县| 驻马店市| 左权县| 清水河县| 曲阳县| 宾川县| 定南县| 洛浦县| 临颍县| 牙克石市| 禹州市| 恩施市| 青神县| 泰安市| 苏尼特左旗| 古田县| 亚东县| 高淳县| 从江县| 台安县| 永春县| 托克逊县| 皮山县| 分宜县| 射洪县| 霍邱县| 乡宁县| 松滋市| 彭泽县|