日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA入门级教学之(final关键字)

發(fā)布時(shí)間:2024/7/23 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA入门级教学之(final关键字) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

不希望任何人可以隨意修改自己的東西的時(shí)候可以用final關(guān)鍵字進(jìn)行修飾

?

?* 1.final是一個(gè)關(guān)鍵字,表示最終的,不可變的
?*?
?* 2.final修飾的無(wú)法被繼承
?*?
?* 3.final修飾的方法無(wú)法被覆蓋
?*?
?* 4.final修飾的變量一旦被賦值后,不可重新賦值【不可二次賦值】
?*?
?* 5.final修飾的實(shí)例變量必須手動(dòng)賦值,不能采用系統(tǒng)默認(rèn)值
?*?
?* 6.final修飾的引用,一旦指向某個(gè)對(duì)象之后,不能再指向其它對(duì)象,那么被指向的對(duì)象無(wú)法被垃圾回收器回收

? ?只要new一次就會(huì)產(chǎn)生一個(gè)對(duì)象,如果將這個(gè)對(duì)象的引用用final修飾,則不能再次new這個(gè)對(duì)象的引用

? ?final Person person=new Person(10);

? ?person=new Person(10);//報(bào)錯(cuò)
?*?
?* 7.final修飾的引用雖然指向某個(gè)對(duì)象之后不能指向其它對(duì)象,但是所指向的對(duì)象內(nèi)部的內(nèi)存是可以被修改的
?*?
?* 8.final修飾的實(shí)例變量,一般和static聯(lián)合使用(存儲(chǔ)在方法區(qū)),被稱為常量

常量:實(shí)際上常量和靜態(tài)變量一樣,區(qū)別在于:

常量的值不能變

常量和靜態(tài)變量,都是存儲(chǔ)在方法區(qū),并且都是在類加載時(shí)候初始化

常量一般都是公共的public

?

?

?

萬(wàn)變不離其宗:final修飾的只能賦值一次

?

?

---------------------------------------------------------------------------------------------------------------------------------------------------------------?

?新建一個(gè)User類

package com.lbj.javase12;public class User {public int id;public User() {super(); }public User(int id) {super();this.id = id; }}

?新建一個(gè)測(cè)試類

package com.lbj.javase12; /*** 1.final是一個(gè)關(guān)鍵字,表示最終的,不可變的* * 2.final修飾的類無(wú)法被繼承* * 3.final修飾的方法無(wú)法被覆蓋* * 4.final修飾的變量一旦被賦值后,不可重新賦值【不可二次賦值】* * 5.final修飾的實(shí)例變量,必須手動(dòng)賦值,不能采用系統(tǒng)默認(rèn)值* * 6.final修飾的引用,一旦指向某個(gè)對(duì)象之后,不能再指向其它對(duì)象,那么被指向的對(duì)象無(wú)法被垃圾回收器回收* * 7.final修飾的引用雖然指向某個(gè)對(duì)象之后不能指向其它對(duì)象,但是所指向的對(duì)象內(nèi)部的內(nèi)存是可以被修改的* * 8.final修飾的實(shí)例變量,一般和static聯(lián)合使用,被稱為常量*/ public class Test01 { /** 成員變量之實(shí)例變量* * 實(shí)例變量有默認(rèn)值+final修飾的變量一旦賦值不能重新賦值* * 綜合考慮:java語(yǔ)言最終規(guī)定實(shí)例變量使用final修飾后,必須手動(dòng)賦值,不能采用系統(tǒng)默認(rèn)值* * *///final int age;編譯報(bào)錯(cuò)//第一種解決方案final int age=10;//第二種解決方案final int num;public Test01(){//這里面差一點(diǎn)犯了錯(cuò)誤,因?yàn)檫@里我用了自定義的方法,其實(shí)是要用類名才行this.num=10;//以上兩種解決方案:其實(shí)本質(zhì)上就是一種方式,都是在構(gòu)造方法執(zhí)行過(guò)程中給實(shí)例變量賦值}public static void main(String[] args) {int i=10;System.out.println(i);//10i=20;System.out.println(i);//20// 4.final修飾的變量一旦被賦值后,不可重新賦值【不可二次賦值】final int k=10;//k=20;final int m;m=10;//m=20;//------------------------//創(chuàng)建用戶對(duì)象User u=new User(100);//User u=ox1234//又創(chuàng)建了一個(gè)新的User對(duì)象//程序執(zhí)行到此處表示以上對(duì)象已經(jīng)變成垃圾堆數(shù)據(jù),等待垃圾回收器的回收u=new User(200);//u=nv12231//創(chuàng)建用戶對(duì)象final User user=new User(30);//user=new User(50);//final修飾的引用,一旦指向某個(gè)對(duì)象后,不能再指向其它對(duì)象,那么被指向的對(duì)象無(wú)法被垃圾回收器回收//相當(dāng)于綁定了user這個(gè)引用只能和一個(gè)對(duì)象連接//final修飾的引用雖然指向某個(gè)對(duì)象之后不能指向其它對(duì)象,但是所指向的對(duì)象內(nèi)部是可以被修改的user.id=50;//-----------------//訪問(wèn)國(guó)籍System.out.println(Chinese.GUO_JI);//已經(jīng)固定,不能修改}} //中國(guó)人 class Chinese{/** 國(guó)籍* * 需求:每一個(gè)中國(guó)人的國(guó)籍都是中國(guó),而且國(guó)籍是不會(huì)發(fā)生改變的,為了防止國(guó)籍被修改,建議加final修飾* * final修飾的實(shí)例變量是不可變的,這種變量一般和static聯(lián)合使用,被稱為常量* * 常量的定義語(yǔ)法格式:* public static final 類型.常量名=值;* * java規(guī)范中要求所有常量的名字全部大寫(xiě),每個(gè)單詞之間使用下劃線連接*/public static final String GUO_JI="中國(guó)"; }

?

package com.lbj.javase16; /*** 深入final* * final修飾的引用類型,該引用不可再重新指向其它的java對(duì)象* * 但是final修飾的引用,該引用指向的對(duì)象的屬性是可以修改的**/ public class Test02 {public static void main(String[] args) {// TODO Auto-generated method stubfinal Customer c=new Customer("123",12);//c是final的,無(wú)法重新賦值//c=new Customer("LKKK",20);c.name="321";c.age=25;System.out.println(c.name);System.out.println(c.age);}} class Customer{String name;int age;Customer(String name,int age){this.name=name;this.age=age; } }

?

?

?

總結(jié)

以上是生活随笔為你收集整理的JAVA入门级教学之(final关键字)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。