黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)教程:java反射機(jī)制教程

Java基礎(chǔ)教程:java反射機(jī)制教程

更新時(shí)間:2020-03-09 10:24:34 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2378次


  Java反射說的是在運(yùn)行狀態(tài)中,對(duì)于任何一個(gè)類,我們都能夠知道這個(gè)類有哪些方法和屬性。很多動(dòng)力節(jié)點(diǎn)的學(xué)員在面試中都會(huì)被問到Java反射機(jī)制這個(gè)問題,為了幫助大家更好的掌握這個(gè)知識(shí)點(diǎn),小編整理了一些資料分享給大家。


  一、反射概念


  在正式講解反射之前,為了很好的去理解它我們先從一個(gè)案例說起。請(qǐng)看下面的代碼:


Java基礎(chǔ)教程:java反射機(jī)制教程


  這是一個(gè)最簡單不過的類,當(dāng)我們使用的時(shí)候直接new出來一個(gè)User對(duì)象即可。因?yàn)檫@個(gè)類是我們自己定義的,所以在使用的時(shí)候我們知道User有兩個(gè)字段name和age,還有無參和有參構(gòu)造方法,另外的test方法我們也可以直接調(diào)用(因?yàn)槠涫莗ublic)。


  現(xiàn)在出現(xiàn)一個(gè)問題,如果這個(gè)user類不是我們自己定義的,我們從外部看不到里面有什么東西,而且我們又想去知道內(nèi)部長什么樣,比如說有幾個(gè)字段、方法、構(gòu)造方法、共有還是私有的等等,這時(shí)候該怎么辦呢?這時(shí)候java語言在設(shè)計(jì)的時(shí)候?yàn)槲覀兲峁┝艘粋€(gè)機(jī)制,就是反射機(jī)制,他能夠很方便的去解決我們的問題。


  二、深入分析java反射機(jī)制


  1、獲取Class類


  在java中萬事萬物皆對(duì)象,Useruser=newUser()一行代碼我們知道了user是User類的實(shí)例對(duì)象,通過Studentstu=newStudent()我們知道了stu是Student的實(shí)例對(duì)象,但是我們想過沒,User和Student又是誰的對(duì)象呢?沒錯(cuò)就是Class類的實(shí)例對(duì)象。那這個(gè)Class類是什么東西,內(nèi)部長什么樣子呢?這時(shí)候我們很自然的聯(lián)想到使用反射機(jī)制。使用反射機(jī)制就可以獲取到這個(gè)class。


  這里有三種方式可以獲取這個(gè)Class,我們來看一下代碼:

Java基礎(chǔ)教程:java反射機(jī)制教程


  上面的c1、c2、c3都是Class類的實(shí)例,表示的都是User類。


  當(dāng)然,不僅僅是User這些類,對(duì)于基本數(shù)據(jù)類型甚至是包括void我們也可以使用這個(gè)方法。


Java基礎(chǔ)教程:java反射機(jī)制教程


  現(xiàn)在就可以直接創(chuàng)建User類的實(shí)例了。


  Useruser=(User)c1.getInstance();


  現(xiàn)在我們對(duì)反射機(jī)制中獲取Class類的方法進(jìn)行一個(gè)總計(jì)


Java基礎(chǔ)教程:java反射機(jī)制教程


  2、獲取類的方法


  現(xiàn)在通過反射看一下User類內(nèi)部的樣子,打印一下(把這個(gè)操作封裝在了一個(gè)方法中):


Java基礎(chǔ)教程:java反射機(jī)制教程


  下面我們把我們的User類傳進(jìn)去,打印一下。


Java基礎(chǔ)教程:java反射機(jī)制教程


  我們總結(jié)一下反射方法。

Java基礎(chǔ)教程:java反射機(jī)制教程


  3、獲取類的屬性


  (1)獲取所有屬性


Java基礎(chǔ)教程:java反射機(jī)制教程


  上面有兩種獲取屬性的方法。重點(diǎn)是for循環(huán)。我們來測(cè)試一下

Java基礎(chǔ)教程:java反射機(jī)制教程


  直接就會(huì)輸出我們的字段類型和名稱。


  (2)獲取指定屬性


  在這里我們的User類中name、age字段增加getter和setter方法

Java基礎(chǔ)教程:java反射機(jī)制教程


  然后我們測(cè)試一下


Java基礎(chǔ)教程:java反射機(jī)制教程


  在這里,我們?cè)趐rintFieldMsgBySelf方法中通過反射重新設(shè)置了age年齡的值,輸出之后已成功更改。


Java基礎(chǔ)教程:java反射機(jī)制教程


  4、獲取類的構(gòu)造方法


Java基礎(chǔ)教程:java反射機(jī)制教程

  然后我們同樣的測(cè)試一下


  Java基礎(chǔ)教程:java反射機(jī)制教程

  跟我們之前的構(gòu)造方法一樣。


Java基礎(chǔ)教程:java反射機(jī)制教程


  5、獲取User類的父類和接口


  我們?cè)谶@里定義一個(gè)Human類(里面什么也沒有),然后定義一個(gè)UserInterface接口,讓User繼承它就好了。


Java基礎(chǔ)教程:java反射機(jī)制教程


  然后我們?cè)赥est中去測(cè)試一下就可以了,測(cè)試方法很簡單,我們只需要調(diào)用這個(gè)方法就可以。


    以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)教程:java反射機(jī)制教程”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 男女男精品视频网站在线观看 | 97久久精品人人澡人人爽 | 中国黄色片一级 | 69性成熟xxxxhd| 国产精品一卡二卡三卡 | 黄色一级片在线播放 | 免费人成激情视频在线观看冫 | 成 人 免费 网站 | 美女色黄 | 久久精品综合视频 | 在线视频永久在线视频 | 久久88香港三级 | 黄色网址在线免费观看 | 特黄特色一级aa毛片免费观看 | 欧美日韩国产高清一区二区三区 | 亚洲一区2区三区4区5区 | 国产va精品网站精品网站精品 | 国产高清美女一级a毛片久久w | 欧美一区二三区 | 久久久久亚洲视频 | 手机在线观看毛片 | 毛片大全免费 | 日本va视频| 污黄视频在线看 | 毛片线看免费观看 | 中文三 级 黄 色 片 | 亚洲阿v天堂在线 | 天天澡天天摸天天添视频 | 午夜免费视频观看在线播放 | 免费看色片 | 日韩在线理伦片免费观看 | 日日摸日日操 | 色黄视频在线观看 | 亚洲七七久久精品中文国产 | 久久精品视频5 | 天天舔天天操 | 网站免费黄色 | 成人黄色片网站 | 成人福利在线免费观看 | 午夜特级毛片 | 久久伊人色 |