日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java 小坑_关于Java子父类关系的小坑

發(fā)布時間:2025/4/17 82 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 小坑_关于Java子父类关系的小坑 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原標(biāo)題:關(guān)于Java子父類關(guān)系的小坑

學(xué)過JavaSE的都知道java類在初始化的時候,如果存在直接父類,是先初始化父類,然后才初始化子類。

子類擁有父類所有的非私有化成員,非私有的成員不僅僅包括public修飾的成員,protected修飾的(protected修飾的可以訪問其他包中子父類),不寫訪問修飾符是默認default修飾(只能訪問同一個包中的類)。

由類的加載機制可以得知,類的加載包括加載,驗證,準(zhǔn)備,解析,初始化這幾個階段。

其中:類靜態(tài)變量初始化是在虛擬機的方法區(qū)中初始化的,類的實例變量會在類實例化時跟隨類的實例在堆內(nèi)存中初始化。準(zhǔn)備階段是正式為類變量分配內(nèi)存并設(shè)置類變量初始值的階段。準(zhǔn)備階段為類靜態(tài)變量初始化時,如果一個類靜態(tài)變量比如:pulicstaticinta=3;則在初始化階段該變量初始化值為0,而不是3,因為此時類還未被編譯。還未執(zhí)行任何java方法,而給靜態(tài)變量賦值是在類實例初始化之后,存放于類構(gòu)造器中的。

正由于子父類關(guān)系的存在,方便了框架公共代碼的抽取,比如在快遞項目中,所有Action類抽取父類CommonAction的時候,就是利用子父類的關(guān)系將公共代碼抽取出來,這樣再創(chuàng)建Action的時候就可以避免重復(fù)代碼的編寫。

在利用EasyUI和springdatajpa進行分頁查詢的時候,前臺頁面?zhèn)鱽韮蓚€參數(shù)page,rows

后臺接收到參數(shù)之后封裝為pageable進行分頁查詢。如果利用抽取的思想封裝重復(fù)代碼到CommonAction中,代碼如下。

值得注意的是,如果直接寫protectedPageablepageable=newPageRequest(page-1,rows);訪問項目的時候會報頁碼不能為0的異常,這是由于雖然把公共代碼抽取到父類中,但是這行代碼在初始化子類的時候就會執(zhí)行,而此時page和rows都是int類型成員的默認值0,而page-1是從0開始的,所以會報頁碼不能為0的異常。

而如果按照正確的封裝方法,由于只有在調(diào)用方法的時候才會給pageable賦予實際的值,所以會正常執(zhí)行。

這個案例給我的啟發(fā)就是:

1.利用繼承的方式抽取公共代碼的時候要注意訪問修飾符,做到對自有成員的封裝和子類訪問的權(quán)衡。

2.子類訪問父類成員的時候,注意直接訪問成員和調(diào)用方法訪問的區(qū)別。

更多測試工具,請前往51Testing軟件測試網(wǎng)。(http://www.51testing.com)返回搜狐,查看更多

責(zé)任編輯:

總結(jié)

以上是生活随笔為你收集整理的java 小坑_关于Java子父类关系的小坑的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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