版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 類和對象,理解面向?qū)ο缶幊?能夠熟練創(chuàng)建自己的類 使用屬性描述對象,定義對象的行為 構造方法 對象的創(chuàng)建與使用 會用關鍵字this、static、final 包的定義和使用 封裝及類成員訪問權限控制討論 帶可變參數(shù)個數(shù)的方法,4.1 理解面向?qū)ο缶幊?面向?qū)ο蠹夹g,正是利用對現(xiàn)實世界中對象的抽象和對象之間相互關聯(lián)和相互作用的描述來對現(xiàn)實世界進行模擬,并且使其映射到目標系統(tǒng)中。所以面向?qū)ο蟮奶攸c主要概括為封裝性、繼承性和多態(tài)性。 1.封裝性:是指對象的使用者通過預先定義的接口關聯(lián)到某一對象的服務和數(shù)據(jù) 時,無需知道這些服務是如何實現(xiàn)的。即用戶使用對象時無需知道對象內(nèi)部的運行細節(jié)。這樣,以
2、前所開發(fā)的系統(tǒng)中已使用的對象能夠在新系統(tǒng)中重新采用,減少了新系統(tǒng)中分析、設計和編程的工作量。 2.繼承性:新的對象類由繼承原有對象類的某些特性或全部特性而產(chǎn)生出來,原有對象類稱為基類(或超類、父類),新的對象類稱為派生類(或子類),派生類可以直接繼承基類的共性,又允許派生類發(fā)展自己的個性。繼承性簡化了對新的對象類的設計。 3.多態(tài)性:是指不同類型的對象可以對相同的激勵做出適當?shù)牟煌鄳哪芰?。多態(tài)性豐富了對象的內(nèi)容,擴大了對象的適應性。,4.1.1 類和對象的概念,類是創(chuàng)建對象的模版或藍圖,它可分為: 系統(tǒng)已經(jīng)存在的類(使用)、用戶自定義的類(創(chuàng)建); 類可以定義為數(shù)據(jù)和方法的集合。 每個對象
3、都有自己特定的屬性和行為; 類將有共同屬性和行為的對象抽象出數(shù)據(jù)模版,用類的成員變量模擬對象的屬性,用成員方法模擬對象的行為;,4.2 類的聲明,面向?qū)ο箝_發(fā)的兩大步驟: 1、分析組成問題的數(shù)據(jù),進而抽象出數(shù)據(jù)模版從具體到抽象的過程; 2、由抽象出來的類生產(chǎn)對象,運用對象間的消息傳遞解決問題從抽象到具體的過程。,例:定義一個名為Person的類,class Person public int age; / 成員變量 public String name; public Person() / 構造方法 public void say() / 成員方法 public void eat() publ
4、ic static void main(String args) / 主方法 ,類修飾符列表,修飾符 class 類名 extends 超類名 implements 接口列表 類體; 類名的規(guī)范:描述類的用途;首字母大寫;多個單詞連寫,且每個單詞首字母大寫。 類體主要包含四部分內(nèi)容:成員變量、構造方法、成員方法、主方法。,4.2.1 成員變量的聲明,修飾符 變量類型 變量名 = 值 所有成員變量,如果不附初值,都有默認初值。,4.2.2 構造方法的聲明,構造方法的定義: 1、一般為public; 2、沒有返回類型,不寫void; 3、與類名同名; 4、不能直接調(diào)用,由new調(diào)用,創(chuàng)建對象; 5
5、、主要任務:成員變量的初始化。 public 類名 () 方法體; ,public Person() age = 12; name = “zhangsan”; 如果一個類沒有構造方法,系統(tǒng)會自動創(chuàng)建一個無參的構造方法。,4.2.3 成員方法的聲明,修飾符 返回值類型 方法名(參數(shù)列表) throws 異常類型列表 方法體; 成員方法命名規(guī)范與成員變量同,public void say() System.out.println(“我是” + name + “, 今年” + age + “歲”); ,4.2.4 主方法的聲明,程序從主方法開始運行; 主方法的聲明只能是: public static
6、 void main(String args); 大部分類是沒有主方法的; 沒有主方法的類不能運行。,4.3 對象的使用,4.3.1 對象的創(chuàng)建 創(chuàng)建對象時,實際是調(diào)用、執(zhí)行了類的構造方法,初始化成員變量; 如:Person p = new Person(); Java對象的創(chuàng)建,必須使用關鍵字new; p是類類型的變量,此處為Person類型; 如果沒有為類定義構造方法,且創(chuàng)建對象時使用無參構造方法,不會出錯; 對象名(即類變量)存放在棧中; 對象的屬性存放在堆中。,4.3.2 通過對象訪問成員,訪問對象的成員,用”.”操作符: public static void main(String
7、args) Person p = new Person(); String n = ; p.say (); System.out.println(p.age); ,4.3.3 給對象引用變量賦值,Person p1 = new Person(12, “zhangsan”); Person p2 = new Person(20, “l(fā)isi”); p1 = p2; System.out.println(“p1賦值后:”+p1.age); p1.age = 30; System.out.println(“p1修改后:”+p1.age); System.out.println(“p1修改
8、后:”+p2.age);,4.3.4 對象的清除,在Java中,對無用內(nèi)存空間的釋放由系統(tǒng)自動完成,我們稱之為:垃圾回收機制(Garbage Collection); 當某對象的引用計數(shù)器為0時,則該對象占用的內(nèi)存空間將被回收。 一下幾種情況對象會變成垃圾: 1、Person p = new Person(); p=null; 2、new Person() (匿名對象); 3、for(int i=0; i1000; i+) Person p = new Person(); ,思考:,Public class x public Object m() Float o = new Float(3.1
9、4f); / 第3行 Float oa = new Float(); oa = o; / 第5行 o = null; / 第6行 oa = null; / 第7行 return o; 第3行的Float對象產(chǎn)生后,在哪一行可能被垃圾回收?,4.4 方法重載,同一類中,方法名相同,形式參數(shù)列表不同的多個方法之間構成方法重載; 返回值類型可以相同也可以不相同; 形式參數(shù)列表不同是指:參數(shù)個數(shù)、參數(shù)類型或參數(shù)順序不同; 如: int max(int a, int b); float max(float a, int b); int max(int a, int b, int c); float ma
10、x(int a, float b); float max(float a, float b);,例:構造方法的重載,public Person(int a, String n) age = a; name = n; public Person() age = 12; name = “zhangsan”; ,例,下面哪幾個方法是對ConstOver類的構造方法的重載: a)ConstOver() b)protected int ConstOver() c)public ConstOver(int z, int y, int x) d)void ConstOver(byte x, byte y,
11、byte z) e)Public Object ConstOver(int x, int y, int z) 在相同包中,想讓一個類能引用另一個類的成員,達到這個目的最小的控制權限修飾符是: a) public b) privatec)protected d)不需要修飾符,4.5 關鍵字 this,指向隱式參數(shù)(表示當前對象); class Person int age; String name; public Person(int age, String name) this.age = age; = name; ,調(diào)用類中別的構造器。 class Person publ
12、ic Person() this(12, “zhangsan”); 與成員方法的調(diào)用不同,構造方法的調(diào)用用: this(實參列表);,4.6 static關鍵字 4.6.1 static修飾成員變量,該變量存儲在靜態(tài)堆中,各對象共享它; 對于一些取值一定的屬性,可以節(jié)省空間; 可以用于計數(shù); 在類外可以用類名直接引用,不用創(chuàng)建對象,也叫類的屬性; 例: class StaticTest static int count = 0; StaticTest() count+; public static void main(String args) new StaticTest(); new Sta
13、ticTest(); new StaticTest(); System.out.println(StaticTest.count); ,4.6.2 static修飾方法,類的方法,在類外可以用類名直接引用; 引用類中一般方法、一般變量時需要創(chuàng)建該類的對象; 方便類外的使用,Math庫中的方法都是靜態(tài)方法; main方法必須是static的,可以自啟動。 一般,為靜態(tài)屬性創(chuàng)建靜態(tài)方法使用。,思考:,public class Test private static int j = 0; public boolean methodB(int k) j += k; return true; publi
14、c void methodA(int i) boolean b = false; b = (i10) 求該程序的輸出。,4.7 final關鍵字,修飾變量:該變量成為常量,在聲明的同時賦初值,一般用final聲明的變量都同時聲明為static; 修飾方法:最終方法,不可以被子類中的方法覆蓋; 修飾類:最終類,不可以被繼承。,4.8 包,包的概念:包是一組類的集合; 包的作用:簡單說,其作用就像Windows中的文件夾,管理唯一的名字,但用法不全是。 Java類庫中常用的包,4.8.1 包的聲明,package com.xiwang.class8.lesson9; 包的聲明必須放在java中除注
15、釋以外的第一句; 帶包編譯格式: javac d 存放路徑 文件名(. 表示當前路徑) 帶包編譯后的類,運行時必須帶上包名: java 包名.類名 打包自動創(chuàng)建的目錄不能理解為普通的系統(tǒng)目錄,它是類名的一部分。類名為: 包名.類名 在其他包中用打包的類時,必須導入該類所在的包,或使用其全名。,4.8.2 使用包,使用import導入包中所有的類: import com.xiwang.class8.lesson9.* 使用import導入包中的某一個類: import com.xiwang.class8.lesson9.Person 導入包的語句必須放在類或接口的聲明前,包的聲明后; 導入包時只
16、能導入該包中的類,不能導入其子包; 對于不在當前文件夾下的包,可以轉(zhuǎn)到其所在位置運行,或設置classpath來運行: set classpath=f:; %classpath% 命令行參數(shù)設置的classpath在命令提示符關閉后就不起作用了,要使它始終有用應該使用第一章講的方法設置。,4.9 封裝與類成員訪問權限,封裝,簡單的說就是信息隱蔽,把數(shù)據(jù)和行為結合在一個類中,并對對象的調(diào)用者隱蔽數(shù)據(jù)的實現(xiàn)過程; 封裝的實現(xiàn):成員變量私有化,為訪問者提供公有的方法。 能達到最好的封裝效果的修飾符是:private,例:封裝,class Person private int age; private String name; public void setAge(int age) this.age = age; public int getAge() re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年停車場車位租賃協(xié)議
- 2024年專業(yè)人才綜合聘用協(xié)議
- 2024年全新直播帶貨戰(zhàn)略聯(lián)盟協(xié)議
- 2024年公租房租金減免協(xié)議
- 商用湯包課程設計
- 美術機構課程設計動漫
- 機械課程設計紙折疊
- 2024年中國平繡繡品市場調(diào)查研究報告
- 美術區(qū)域課程設計幼兒園
- 2024至2030年中國非標高強度螺栓數(shù)據(jù)監(jiān)測研究報告
- 雪佛蘭愛唯歐說明書
- 經(jīng)營分析報告案例-麥肯錫風格
- 煙花爆竹經(jīng)營單位主要負責人安全培訓
- 2023春國開會計實務專題形考任務1-4題庫及答案匯總
- 可疑值的取舍-Q檢驗法
- 生物信息學(上海海洋大學)知到章節(jié)答案智慧樹2023年
- 核磁共振T臨床應用
- 文件與文件夾測試題(含參考答案)
- 電工安全培訓課件
- 維修工程技術標
- 《長津湖》電影賞析PPT
評論
0/150
提交評論