




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 java基礎(chǔ)主要內(nèi)容對象和類方法和屬性構(gòu)造器引用數(shù)據(jù)類型信息隱藏繼承 面向?qū)ο蟮乃枷敫攀雒嫦驅(qū)ο蟮木幊趟枷肓D使對計算機語言中對事物的的描述與現(xiàn)實世界中該事物的本來面目盡可能一致。 類(class)和對象(object)是面向?qū)ο蠓椒ǖ暮诵母拍铑愂菍σ活愂挛锩枋?,是抽象的、概念上的定義;對象是實際存在的該類事物的每個個體,因而也稱實例(instance)。 類定義一個類public class Person 給類加上屬性public class Person int name; 給類加上行為public class Person int name; public void sing() /i
2、n the sing method; 類的組成由屬性(實例變量)和方法屬性-實例變量 權(quán)限 修飾 類型 變量名 =初值;private int age =0;private boolean flag=false;public class PersonPrivate String userName;Private int age;方法權(quán)限 修飾 返回值類型 方法名 (形參列表) 方法體;public class Personpublic void say()public String setXXXX(String str)方法參數(shù)的傳遞public void say(String songNam
3、e)public void action()say(“give it to me”);理解參數(shù)傳遞的含義實參形參方法注意:在方法內(nèi)定義變量時須:1.除了final不加任何修飾符.2.使用之前必須初始化.創(chuàng)建類的對象聲明并創(chuàng)建一個Person類的對象,將該對象命名為p Person p = new Person();在調(diào)用方法前必須產(chǎn)生一個對象調(diào)用對象的方法調(diào)用對象p中的方法p.sing();信息隱藏使用者對類內(nèi)部定義的數(shù)據(jù)(對象的成員變量)的直接操作會導(dǎo)致數(shù)據(jù)的錯誤、混亂或安全性問題。public class Person public int age;public class Test pu
4、blic static void main(String args)Person b = new Person();b.age = -3; 封裝Java中通過將數(shù)據(jù)封裝、聲明為私有的(private),再提供一個或多個公開的(public)方法實現(xiàn)對該屬性的操作封裝的好處封裝的好處隱藏一個類的實現(xiàn)細節(jié);使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對屬性的不合理操作;便于修改,增強代碼的可維護性;封裝class Person private int age;public void setAge(int i)if(i130) return;age = i; public
5、int getAge() return age;public class Testpublic static void main(String args)Person b = new Person();b.setAge(3);b.setAge(300);System.out.println(b.getAge();實例變量與局部變量實例變量聲明在類中而不是方法中局部變量聲明在方法中局部變量使用前必須初始化實例變量有默認值局部變量沒有默認值Public class Foopublic void go() int x; int z = x+3;/無法編譯變量的比較=與equals=用于比較兩個pri
6、mitive 主數(shù)據(jù)類型或者判斷兩個引用是否引用同一個對象繼承假定有兩個類,它們或多或少地具有一組相同的屬性和方法??梢詣?chuàng)建一個具有兩個類的共同屬性的父類,而不聲明兩個不同的類,因此,子類可以繼承父類的全部或部分屬性。在OOP術(shù)語中 父類還可以成為超類或基類,子類又稱為派生類。繼承繼承繼承關(guān)系的驗證Is aHas a為什么使用繼承繼承的實現(xiàn)手段是派生和擴展實現(xiàn)了代碼重用定義共同的協(xié)議如何使用繼承extends要繼承一個類,可以使用extends關(guān)鍵字,意味著擴展父類的功能,java中只支持單一繼承。Public class VipUser extends User/.類的繼承為描述和處理個人信
7、息,定義類Personpublic class Person public String name; public int age; public Date birthDate; public String getInfo() .Person+name : String +age : int+birthDate : Date+getInfo() : String類的繼承 為描述和處理學(xué)生信息,定義類Student:public class Student public String name; public int age; public Date birthDate; public Stri
8、ng school; public String getInfo() .Student+name : String +age : int+birthDate : Date+school : String+getInfo() : String類的繼承 (3) 通過繼承,簡化Student類的定義:public class Person public String name; public int age; public Date birthDate; public String getInfo() .public class Student extends Person public Strin
9、g school;Person+name : String +age : int+birthDate : Date+getInfo() : StringStudent+school : String類的繼承類繼承語法規(guī)則: class extends *Java只支持單繼承,不允許多重繼承一個子類只能有一個父類一個父類可以繼承出多個子類單繼承舉例Person+name : String +age : int+birthDate : Date+getInfo() : StringStudent+school : StringSoldierOfficerGraduate+major : histo
10、ry+register() : void構(gòu)造方法不能繼承子類繼承父類所有的成員變量和成員方法,但不繼承父類的構(gòu)造方法在一個Java類中可以通過兩種方式獲得構(gòu)造方法使用系統(tǒng)默認的無參構(gòu)造方法顯式定義一個或多個構(gòu)造方法一旦顯式定義了構(gòu)造方法,則系統(tǒng)不再提供默認構(gòu)造方法定義共同的協(xié)議定義共同的協(xié)議通過繼承定義相關(guān)類的共同協(xié)議方法覆蓋的規(guī)則重寫方法的重寫方法的重寫在子類中可以根據(jù)需要對從父類中繼承來的方法進行改造重寫方法必須和被重寫方法具有相同的方法名稱、參數(shù)列表和返回值類型重寫方法不能使用比被重寫方法更嚴格的訪問權(quán)限不能拋出更大的異常方法重寫舉例public class Person protect
11、ed String name;protected int age;public String getInfo() return Name: + name + n +age: + age; public class Student extends Person protected String school;public String getInfo() return Name: + name + nage: + age + nschool: + school; 方法重載在同一個類中可以定義多個同名方法public class PrintStreampublic void println(int
12、 i) public void println(float f) public void println(String s) 重載方法的參數(shù)列表必須不同 重載方法的返回值類型可以相同,也可以不同繼承繼承的實現(xiàn)手段是派生和擴展實現(xiàn)了代碼重用定義共同的協(xié)議(重寫)Animal dog= new Dog();Animal cat = new Cat();通過聲明為父類型的對象引用來引用他的子類型對象多態(tài)多態(tài)在Java中,子類的對象可以替代父類的對象使用一個對象只能有一種確定的數(shù)據(jù)類型一個引用類型變量可能指向(引用)多種不同類型的對象Person p = new Student();Object o
13、= new Person();o = new Student(); 多態(tài)一個引用類型變量如果聲明為父類的類型,但實際引用的是子類對象,那么該變量就不能再訪問子類中添加的屬性和方法Student m = new Student();m.school = pku; /合法Person e = new Student(); e.school = pku;/非法多態(tài)傳遞參數(shù)和返回值都可以是多態(tài)pubic Animal getAnimal()Public void age(Animal animal)多態(tài)性應(yīng)用同類收集( homogenous collections)MyDate m = new MyD
14、ate2;m0 = new MyDate(22, 12, 1964);m1 = new MyDate(22, 7, 1964);異類收集(heterogeneous collections)Person p= new Person3;p0 = new Student();/學(xué)生p1 = new Person();/人p2 = new Graduate();/研究生多態(tài)性應(yīng)用方法聲明的參數(shù)類型為父類類型,可以使用子類的對象作為實參調(diào)用該方法public class Test public void method(Person e) / e.getInfo();public static void
15、 main(Stirng args) Test t = new Test(); Student m = new Student(); t.method(m);對象造型 (Casting )對Java對象的強制類型轉(zhuǎn)換稱為造型從子類到父類的類型轉(zhuǎn)換可以自動進行從父類到子類的類型轉(zhuǎn)換必須通過造型(強制類型轉(zhuǎn)換)實現(xiàn)無繼承關(guān)系的引用類型間的轉(zhuǎn)換是非法的Animal a = new Dog();Dog d = (Dog)a;instanceof在casting前可以使用instanceof操作符測試一個對象的類型if(e instanceof Student)instanceof 操作符public
16、class Test public void method(Person e) System.out.pritnln(e.getschool(); /非法 if(e instanceof Student) Student me = (Student)e; System.out.println(me.getSchool(); public static void main(String args) Test t = new Test(); Student m = new Student(); t.method(m); instanceof 操作符public class Person exten
17、ds Object public class Student extends Person public class Graduate extends Person -public void method1(Person e) if (e instanceof Student) / 處理Student類型及其子類類型對象 else if (e instanceof Graduate) /處理Graduate類型及其子類類型對象 else /處理Person類型對象Object 類Object類是所有Java類的根父類如果在類的聲明中未使用extends關(guān)鍵字指明其父類,則默認父類為Object
18、類 public class Person .等價于:public class Person extends Object .this 關(guān)鍵字用于任何實例方法內(nèi),指向當(dāng)前對象this 的值指向?qū)ζ湔{(diào)用當(dāng)前方法的對象 this 關(guān)鍵字可在需要當(dāng)前類類型的對象引用時使用 48this 關(guān)鍵字public class ThisDemo int x; ThisDemo(int x) this.x=x; public void passingValue() System.out.println(x 等于 +x); public static void main(String args) ThisDemo test = new ThisDemo(10); test.passingValue(); 49關(guān)鍵字super舉例public class Person private String name; private int age; private Date birthDate; public String getInfo() return Name: + name + nage: +
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理健康教育資格證怎么考
- 初三第二學(xué)期數(shù)學(xué)教學(xué)工作計劃
- 2025-2030年圖書出版行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國馬鈴薯纖維行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國除雪機行業(yè)供需趨勢及投資風(fēng)險研究報告
- 2025-2030年中國鐵路工程行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國鈣白云石行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國野外露營帳篷行業(yè)市場深度調(diào)研及發(fā)展?jié)摿εc投資研究報告
- 2025-2030年中國迷你銑床行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國螺桿空氣壓縮機行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 車站值班員(中級)鐵路職業(yè)技能鑒定考試題及答案
- 山東省威海市2023-2024學(xué)年高二下學(xué)期期末考試英語試題(解析版)
- 2024年陜西省西安市中考地理試題卷(含答案逐題解析)
- 草晶華工作計劃
- 2023-2024學(xué)年吉安市遂川縣七年級語文(下)期末試卷附答案詳析
- 人工智能訓(xùn)練師(中級數(shù)據(jù)標(biāo)注員)理論考試題庫(含答案)
- 腦干損傷護理常規(guī)
- 小學(xué)數(shù)學(xué)組教研活動記錄表-評課
- 2024年廣東清遠連平縣事業(yè)單位招聘工作人員51人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 2024年西部機場集團榆林機場公司招聘35人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 銀行智能化方案設(shè)計
評論
0/150
提交評論