




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JAVA 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第6面向?qū)ο?高級(jí)) Object類6402332 6402332 王聯(lián)根王聯(lián)根目標(biāo) 掌握Object類的作用 掌握Object類中toString()、equals()方法的作用 掌握Object接收引用數(shù)據(jù)類型的操作Object類 在Java中所有的類都有一個(gè)公共的父類就是Object類,一個(gè)類只要沒(méi)有明顯的繼承一個(gè)類,則肯定是Object類的子類。如下兩種代碼表示的含義都是一樣的: class Person extends Object class PersonObject類中的主要方法 No.方法名稱方法名稱類型類型描述描述1public Object
2、()構(gòu)造構(gòu)造方法2public boolean equals(Object obj)普通對(duì)象比較3public int hashCode()普通取得Hash碼4public String toString()普通對(duì)象打印時(shí)調(diào)用toString()方法 在直接輸出對(duì)象的時(shí)候會(huì)默認(rèn)調(diào)用類中的toString()方法應(yīng)用toString()方法取得對(duì)象內(nèi)容 class Person / 定義Person類private String name ;/ 定義name屬性private int age ;/ 定義age屬性public Person(String name,int age)/ 通過(guò)構(gòu)造設(shè)置
3、屬性內(nèi)容 = name ;this.age = age ;public String toString()/ 此處覆寫toString()方法return 姓名: + + ;年齡: + this.age ;public class ObjectDemo02 public static void main(String args) Person per = new Person(李斯,30) ;/ 實(shí)例化Person對(duì)象System.out.println(對(duì)象信息: + per) ;/ 打印對(duì)象調(diào)用toString()方法equals()方法 equals
4、()方法的主要功能是進(jìn)行對(duì)象的比較操作。 String本身也是Object類的子類,所以已經(jīng)覆寫了此方法對(duì)象的比較操作 class Person / 定義Person類private String name ;/ 定義name屬性private int age ;/ 定義age屬性public Person(String name,int age)/ 通過(guò)構(gòu)造設(shè)置屬性內(nèi)容 = name ;/ 為name屬性賦值this.age = age ;/ 為age屬性賦值public boolean equals(Object obj)/ 覆寫Object類中的equals()方法if
5、(this=obj)/ 如果兩個(gè)對(duì)象的地址相等,則肯定是同一個(gè)對(duì)象return true ;if(!(obj instanceof Person)/ 判斷傳進(jìn)來(lái)的對(duì)象是否是Person的實(shí)例return false ;/ 如果不是,則直接返回falsePerson per = (Person)obj ;/ 將傳進(jìn)來(lái)的對(duì)象向下轉(zhuǎn)型if(.equals()&per.age=this.age)/ 逐個(gè)屬性比較,看是否相等return true ;/ 對(duì)象內(nèi)容相等elsereturn false ;/ 對(duì)象內(nèi)容不等public String toString(
6、)/ 此處覆寫toString()方法return 姓名: + + ;年齡: + this.age ;接收任意引用類型的對(duì)象 既然Object類是所有對(duì)象的父類,則肯定所有的對(duì)象都可以向Object進(jìn)行轉(zhuǎn)換,在這其中也包含了數(shù)組和接口類型,即:一切的引用數(shù)據(jù)類型都可以使用Object進(jìn)行接收。 使用Object接收接口實(shí)例 interface A/ 定義接口Apublic String getInfo() ;/ 定義抽象方法class B implements A/ 子類實(shí)現(xiàn)接口public String getInfo()/ 覆寫接口中的抽象方法return Hello
7、World! ;public class ObjectDemo04 public static void main(String args) A a = new B() ;/ 為接口實(shí)例化Object obj = a ;/ 對(duì)象向上轉(zhuǎn)型A x = (A)obj ;/ 對(duì)象向下轉(zhuǎn)型System.out.println(x.getInfo() ;使用Object接收數(shù)組 public class ObjectDemo05 public static void main(String args) int temp = 1,3,5,7,9 ;/ 定義數(shù)組Object obj = temp ;/ 使用O
8、bject接收數(shù)組print(obj) ;/ 傳遞數(shù)組引用public static void print(Object o)/ 接收一個(gè)對(duì)象if(o instanceof int)/ 判斷對(duì)象的類型int x = (int)o ;/ 向下轉(zhuǎn)型for(int i=0;ix.length;i+)/ 循環(huán)輸出System.out.print(xi + t) ;下一知識(shí)點(diǎn)包裝類包裝類JAVA 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第6章:面向?qū)ο?高級(jí)) 包裝類6402332 6402332 王聯(lián)根王聯(lián)根目標(biāo) 掌握包裝類的作用 掌握包裝類的自動(dòng)裝箱及自動(dòng)拆箱的操作 掌握包裝類的轉(zhuǎn)換操作包裝類介紹 在Java的設(shè)計(jì)
9、中提倡一種思想:“一切皆對(duì)象”,那么這樣一來(lái)就出現(xiàn)了一個(gè)矛盾,從數(shù)據(jù)類型的劃分中可以知道JAVA中的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,但是基本數(shù)據(jù)類型怎么能夠稱為對(duì)象呢?此時(shí),就需要將基本數(shù)據(jù)類型進(jìn)行包裝,將八種基本類型變?yōu)橐粋€(gè)類的形式,那么這也就是包裝類的作用。 包裝類 No.基本數(shù)據(jù)類型基本數(shù)據(jù)類型包裝類包裝類1intInteger2charCharacter3shortShort4longLong5floatFloat6doubleDouble7booleanBoolean8byteByte包裝類的說(shuō)明 在以上所列的類中,除了Integer和Character定義的名稱與基本類型定
10、義的名稱相差較大,其他的六種類型的名稱都是很好掌握的。而且讀者可以從JDK文檔中發(fā)現(xiàn)包裝類中的繼承關(guān)系: Integer、Byte、Float、Double、Short、Long都屬于Number類的子類,Number類本身提供了一系列的返回以上六種基本數(shù)據(jù)類型的操作。 Character屬于Object的直接子類。 Boolean屬于Object的直接子類。 Number類的定義 那么Number類是一個(gè)抽象類,主要是將數(shù)字包裝類中內(nèi)容變?yōu)榛緮?shù)據(jù)類型,主要操作方法如下。No.方法方法類型類型描述描述1public byte byteValue()普通以byte形式返回指定的數(shù)值。2publ
11、ic abstract double doubleValue()普通以 double形式返回指定的數(shù)值3public abstract float floatValue()普通以float形式返回指定的數(shù)值。4public abstract int intValue()普通以int形式返回指定的數(shù)值。5public abstract long longValue()普通以long形式返回指定的數(shù)值。6public short shortValue()普通以short形式返回指定的數(shù)值。裝箱與拆箱(Integer、Float為例) 裝箱: 將一個(gè)基本數(shù)據(jù)類型變?yōu)榘b類,這樣的過(guò)程稱為裝箱操作 拆
12、箱: 將一個(gè)包裝類變?yōu)榛緮?shù)據(jù)類型這樣的過(guò)程稱為拆箱操作 裝箱及拆箱操作 public class WrapperDemo01 public static void main(String args) int x = 30 ;/ 聲明一個(gè)基本數(shù)據(jù)類型Integer i = new Integer(x) ;/ 裝箱:將基本數(shù)據(jù)類型變?yōu)榘b類int temp = Value() ;/ 拆箱:將一個(gè)包裝類變?yōu)榛緮?shù)據(jù)類型public class WrapperDemo02 public static void main(String args) float f = 30.3f ;/ 聲明一
13、個(gè)基本數(shù)據(jù)類型Float x = new Float(f) ;/ 裝箱:將基本數(shù)據(jù)類型變?yōu)榘b類float y = x.floatValue() ;/ 拆箱:將一個(gè)包裝類變?yōu)榛緮?shù)據(jù)類型自動(dòng)裝箱及拆箱操作 在JDK 1.5之后提供了自動(dòng)的裝箱及拆箱操作 public class WrapperDemo03 public static void main(String args) Integer i = 30 ;/ 自動(dòng)裝箱成IntegerFloat f = 30.3f ;/ 自動(dòng)裝箱成Floatint x = i ;/ 自動(dòng)拆箱為intfloat y = f ;/ 自動(dòng)拆箱為float包裝類應(yīng)
14、用(Integer、Float為例) 包裝類在實(shí)際中用得最多的還在于字符串變?yōu)榛緮?shù)據(jù)類型的操作上,例如:將一個(gè)全由數(shù)字組成的字符串變?yōu)橐粋€(gè)int或float類型的數(shù)據(jù)。在Integer和Float類中分別提供了以下的兩種方法: A、Integer類(字符串轉(zhuǎn)int型) public static int parseInt(String s) throws NumberFormatException B、Float類(字符串轉(zhuǎn)float型) public static float parseFloat(String s) throws NumberFormatException字符串變?yōu)榛緮?shù)
15、據(jù)類型 public class WrapperDemo04 public static void main(String args) String str1 = 30 ;/ 由數(shù)字組成的字符串String str2 = 30.3 ;/ 由數(shù)字組成的字符串int x = Integer.parseInt(str1) ;/ 將字符串變?yōu)閕nt型float f = Float.parseFloat(str2) ;/ 將字符串變?yōu)閒loat型System.out.println(整數(shù)乘方: + x + * + x + = + (x * x);System.out.println(小數(shù)乘方: + f
16、+ * + f + = + (f * f);下一知識(shí)點(diǎn)匿名內(nèi)部類匿名內(nèi)部類JAVA 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第6章:面向?qū)ο?高級(jí)) 匿名內(nèi)部類6402332 6402332 王聯(lián)根王聯(lián)根目標(biāo) 掌握匿名內(nèi)部類的作用 掌握匿名內(nèi)部類的定義格式一個(gè)簡(jiǎn)單的操作 interface A / 定義接口Apublic void printInfo();/ 定義抽象方法class B implements A / 定義接口實(shí)現(xiàn)類public void printInfo() / 覆寫抽象方法System.out.println(Hello World!);class X / 定義X類public void
17、fun1() / 定義fun1()方法this.fun2(new B() ;/ 傳遞子類實(shí)例public void fun2(A a) / 接收接口實(shí)例a.printInfo() ;/ 調(diào)用接口方法public class NoInnerClassDemo01 public static void main(String args) new X().fun1() ;/ 實(shí)例化X類對(duì)象并調(diào)用fun1()方法匿名內(nèi)部類 匿名內(nèi)部類是在抽象類和接口的基礎(chǔ)之上發(fā)展起來(lái)的另外一種內(nèi)部類的展現(xiàn)形式,當(dāng)一個(gè)抽象類或接口的子類只需要使用一次的時(shí)候就可以使用匿名內(nèi)部類的定義格式。匿名內(nèi)部類 interface
18、A / 定義接口Apublic void printInfo();/ 定義抽象方法class X / 定義X類public void fun1() / 定義fun1()方法this.fun2(new A() / 匿名內(nèi)部類public void printInfo() / 實(shí)現(xiàn)接口中的抽象方法System.out.println(Hello World!););public void fun2(A a) / 接收接口實(shí)例a.printInfo();/ 調(diào)用接口方法public class NoInnerClassDemo02 public static void main(String arg
19、s) new X().fun1();/ 實(shí)例化X類對(duì)象并調(diào)用fun1()方法下一知識(shí)點(diǎn)包的定義及導(dǎo)入包的定義及導(dǎo)入JAVA 語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第6章:面向?qū)ο?高級(jí)) 包的定義及導(dǎo)入6402332 6402332 王聯(lián)根王聯(lián)根目標(biāo) 了解多人開(kāi)發(fā)的問(wèn)題 掌握包的作用及定義 掌握包的導(dǎo)入語(yǔ)法及導(dǎo)入限制 了解系統(tǒng)常用包 掌握J(rèn)ava新特性 靜態(tài)導(dǎo)入 掌握jar命令的使用多人開(kāi)發(fā) 在Java中,可以將一個(gè)大型項(xiàng)目中的類分別獨(dú)立出來(lái),分門別類地存到文件里,再將這些文件一起編譯執(zhí)行,如此的程序代碼將更易于維護(hù), 多人開(kāi)發(fā)的問(wèn)題 如果有多個(gè)開(kāi)發(fā)人員共同開(kāi)發(fā)同一個(gè)項(xiàng)目的時(shí)候,則肯定會(huì)出現(xiàn)類名稱相同的情況
20、。那么這樣一來(lái)就會(huì)比較麻煩 包的定義 package是在使用多個(gè)類或接口時(shí),為了避免名稱重復(fù)而采用的一種措施,直接在程序中加入package關(guān)鍵字即可。 包的定義格式: package 包名稱.子包名稱 ;為程序打包 package net.demo08;/ 定義一個(gè)包c(diǎn)lass Demo/ 定義Demo類public String getInfo()/ 返回信息return Hello World! ;public class PackageDemo01 public static void main(String args) System.out.println(new Demo().ge
21、tInfo() ;/ 實(shí)例化本包對(duì)象程序編譯:javac -d . PackageDemo01.java import語(yǔ)句 之前所講解的程序,兩個(gè)類是存放在同一個(gè)包中的,因此代碼與之前沒(méi)有什么根本的不同,但是如果幾個(gè)類存放在不同的包中,則在使用類的時(shí)候就必須通過(guò)import語(yǔ)句導(dǎo)入。 語(yǔ)法: import 包名稱.子包名稱.類名稱 ; 手工導(dǎo)入所需要的類 import 包名稱.子包名稱.* ; 由JVM自動(dòng)加載所需要的類關(guān)于“public class”與“class”聲明類的完整補(bǔ)充 如果一個(gè)類聲明為public class則文件名稱必須與類名稱一致,而且在一個(gè)類中只能有一個(gè)public cl
22、ass,而如果使用class聲明一個(gè)類,則文件名稱可以與類名稱不一致,但是執(zhí)行的時(shí)候必須執(zhí)行生成的class文件名稱。除了這些之外,public class和class還在包的訪問(wèn)上有所限制,如果一個(gè)類只在本包中訪問(wèn),不需要被外包訪問(wèn),則直接聲明成class即可,而如果一個(gè)類需要被外包訪問(wèn),則必須聲明為public class。系統(tǒng)常見(jiàn)包 No.包名稱包名稱作用作用1java.lang此包為基本的包,像String這樣的類就都保存在此包之中,在JDK 1.0的時(shí)候如果想編寫程序,則必須手工導(dǎo)入此包,但是隨后的JDK解決了此問(wèn)題,所以此包現(xiàn)在為自動(dòng)導(dǎo)入。2java.lang.reflect此包為反射機(jī)制的包,是java.lang的子包,在Java常用類庫(kù)中會(huì)為讀者介紹。3java.util此包為工具包,一些常用的類庫(kù)、日期操作等等都在此包之中,如果把此包掌握精通各種設(shè)計(jì)思路都好理解。4java.text提供了一些文本的處理類庫(kù)。5java.sql數(shù)據(jù)庫(kù)操作包,提供了各種數(shù)據(jù)庫(kù)操作的類和接口。完成網(wǎng)絡(luò)編程。7java.io輸入、輸出處理。8java.awt包含了構(gòu)成抽象窗口工具集(abstract window toolkits)的多個(gè)類,這些類被用來(lái)構(gòu)建和管理應(yīng)用程序的圖形用戶界面(GUI)。9javax.swing此包用于建立圖形用戶界面,此包中的組件
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市員工2025年度環(huán)境與職業(yè)健康合同
- 二零二五拼多多商家入駐合同范本:電商合作細(xì)節(jié)解析
- 二零二五年度城市廣場(chǎng)綠化維護(hù)個(gè)人服務(wù)合同
- 2025年度通信工程施工現(xiàn)場(chǎng)環(huán)境保護(hù)合同
- 2025年度茶葉文化研究及出版合作協(xié)議
- 二零二五年度民辦學(xué)校教職工校企合作與產(chǎn)學(xué)研用合同
- 冷庫(kù)租賃與冷鏈物流信息化管理服務(wù)協(xié)議2025
- 二零二五年度個(gè)人委托代付款安全無(wú)憂服務(wù)合同
- Unit 8 How are you?Period 3 詞匯與語(yǔ)法過(guò)關(guān) 同步練習(xí)(含答案)
- 2025年西安貨運(yùn)從業(yè)資格考試題目大全及答案
- 下載完整版的離婚協(xié)議書
- 2023年云南省中考物理試題(含答案)
- 小兒麻醉術(shù)前準(zhǔn)備課件
- 急診科運(yùn)用PDCA循環(huán)縮短嚴(yán)重創(chuàng)傷病人在搶救室的停留時(shí)間品管圈成果匯報(bào)
- 國(guó)家企業(yè)技術(shù)中心附件要求說(shuō)明
- 大數(shù)據(jù)思維與技術(shù)知到章節(jié)答案智慧樹2023年北京理工大學(xué)
- 中等專業(yè)學(xué)校畢業(yè)生登記表
- 淺析小學(xué)英語(yǔ)主題意義探究下的單元整體教學(xué) 論文
- 天車維修保養(yǎng)記錄表
- 2023年第27屆希望杯〞八年級(jí)全國(guó)數(shù)學(xué)邀請(qǐng)賽試卷與參考答
- ISO9001-2015質(zhì)量管理體系文件全套質(zhì)量手冊(cè)、程序文件
評(píng)論
0/150
提交評(píng)論