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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

原標題:關于Java子父類關系的小坑

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

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

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

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

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

在利用EasyUI和springdatajpa進行分頁查詢的時候,前臺頁面傳來兩個參數page,rows

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

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

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

這個案例給我的啟發就是:

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

2.子類訪問父類成員的時候,注意直接訪問成員和調用方法訪問的區別。

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

責任編輯:

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。