《《面向?qū)ο缶幊獭稰PT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο缶幊獭稰PT課件.ppt(31頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第四章 面向?qū)ο缶幊?本章主要內(nèi)容,4.1 簡(jiǎn)介 4.2 面向?qū)ο蟮幕靖拍?4.3 面向?qū)ο蟮幕菊Z法 4.4 類和包 4.5 對(duì)象、封裝 4.6 類的方法 4.7 繼承和多態(tài) 4.8 接口和抽象類 4.9 面向?qū)ο箝_發(fā)概念,掌握類和對(duì)象的特征 理解封裝 會(huì)創(chuàng)建和使用對(duì)象,本章目標(biāo),4.1 簡(jiǎn)介,面向?qū)ο蟪绦蛟O(shè)計(jì)語言是主流,Java是其中之一 Java是類似于C程序設(shè)計(jì)語言,語法,表達(dá)式,邏輯控制基本上是一樣的 本章是Java語言學(xué)習(xí)中較難的部分,4.2 面向?qū)ο蟮幕靖拍?面向?qū)ο?對(duì)象+類+繼承+消息 對(duì)象 對(duì)象是基本的運(yùn)行時(shí)的實(shí)體,它包括數(shù)據(jù)屬性,也包括作用于數(shù)據(jù)的操作(行為) 所以一
2、個(gè)對(duì)象把屬性和行為密封成一個(gè)整體。屬性值規(guī)定了對(duì)象所有可能的狀態(tài)。對(duì)象的操作是指該對(duì)象可以展現(xiàn)的外部服務(wù) 類 類是某些對(duì)象的共同特征(如屬性和操作)的表示,即類是對(duì)一類事物描述,是抽象的,概念的定義 對(duì)象是類的實(shí)例,4.2 面向?qū)ο蟮幕靖拍?繼承 類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬 它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享,即子類可以沿用父類(被繼承類)的某些特征 當(dāng)然,子類也可以具有自己獨(dú)立的屬性和操作 消息 消息傳遞是對(duì)象與其外部世界相互關(guān)聯(lián)的唯一途徑。 對(duì)象可以向其他對(duì)象發(fā)出消息以請(qǐng)求服務(wù),也可以響應(yīng)其他對(duì)象傳來的消息,完成自身固有的某些操作,從而服務(wù)于其他對(duì)象 因?yàn)閷?duì)
3、象的操作主要用來響應(yīng)外來消息并為其他對(duì)象提供服務(wù),所以它們也被稱作“外來服務(wù)”,4.2.1 對(duì)象 萬物皆對(duì)象,世界是由什么組成的?,身邊的對(duì)象,Britney,Juliette,顧客 姓名:朱麗葉 年齡:28 體重:52千克 操作: 購(gòu)買商品,姓名:布蘭尼 職銜:收銀員 年齡:35 體重:60千克 操作: 收款 打印賬單,對(duì)象的特征屬性,屬性對(duì)象具有的各種特征 每個(gè)對(duì)象的每個(gè)屬性都擁有特定值 例如:布蘭尼和朱麗葉的體重不一樣,60kg,布蘭尼,,,,,,,屬性,35歲,對(duì)象的特征方法,方法對(duì)象執(zhí)行的操作,打單,收銀,,,,,,,方法,刷卡,說一說教室里的對(duì)象 描述他們的屬性和方法,,顏色:黑色
4、 品牌:BENQ 投影,姓名:張三 年齡:20 學(xué)習(xí),類型:白熾燈 開 關(guān) 變亮 變暗,材制: 木質(zhì) 支撐物品,4.2.2 封裝,對(duì)象同時(shí)具有屬性和方法兩項(xiàng)特性 對(duì)象的屬性和方法通常被封裝在一起,共同體現(xiàn)事物的特性, 二者相輔相承,不能分割,誰看見過只有“完好的零件和顏色”而不能開動(dòng)的汽車?,4.2.3 從對(duì)象抽象出“類”,抽取出下列對(duì)象的屬性和方法的共同特征,轎車,,,顧客,4.2.3 類,顧客類 轎車類 ,,類是模子,確定對(duì)象將會(huì)擁有的特征(屬性)和行為(方法),類是對(duì)象的類型 不同于int類型:具有方法,各種口味的球狀冰淇淋,球狀冰淇淋模子,,類和對(duì)象的區(qū)別,類是抽象的概念,僅僅是模板
5、,比如說:“人” 對(duì)象是一個(gè)你能夠看得到、摸得著的具體實(shí)體,比如:“小布什”,小布什,普京,克林頓,,Java 是面向?qū)ο蟮恼Z言,所有Java程序都以類class為組織單元 關(guān)鍵字class定義自定義的數(shù)據(jù)類型,public class HelloWorld public static void main(String args) System.out.println(“Hello World!!); ,,Java類模板,類將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中,public class 類名 //定義屬性部分 屬性1的類型 屬性1; 屬性2的類型
6、屬性2; 屬性n的類型 屬性n; //定義方法部分 方法1; 方法2; 方法m; ,定義類,定義一個(gè)類的步驟 1、定義類名 2、編寫類的屬性 3、編寫類的方法,如何創(chuàng)建和使用對(duì)象,使用對(duì)象的步驟: 使用new創(chuàng)建類的一個(gè)對(duì)象 使用對(duì)象:使用“.”進(jìn)行以下操作 給類的屬性賦值:對(duì)象名.屬性 調(diào)用類的方法:對(duì)象名.方法名(),HelloWorld hello = new HelloWorld();,hello.userName = “張三; //給屬性賦值 hello.sayHello(); //調(diào)用類的方法,該方法中的操作將被
7、執(zhí)行,public class HelloWorld public static void main(String args) HelloWorld hello = new HelloWorld(); System.out.println(hello); hello.userName = “張三; hello.sayHello(); System.out.println(hello); ,創(chuàng)建和使用對(duì)象示例,,,,,說一說看到什么效果?,調(diào)用類的方法,面向?qū)ο螅∣O)的優(yōu)點(diǎn),便于程序模擬現(xiàn)實(shí)世界中的實(shí)體 用“類”表示實(shí)體的特征和行為 隱藏細(xì)節(jié) 對(duì)象的行為和屬性被
8、封裝在類中,外界通過調(diào)用類的方法來獲得,不需關(guān)注內(nèi)部細(xì)節(jié)如何實(shí)現(xiàn) 可重用 可以通過類的模板,創(chuàng)建多個(gè)類的對(duì)象,4.3.1 JAVA文件的組成,JAVA源文件結(jié)構(gòu),package:目錄組織結(jié)構(gòu) Import:引入所需要的類 編譯器首先會(huì)在classpath指定的路徑下搜索, 默認(rèn)情況下,系統(tǒng)會(huì)自動(dòng)導(dǎo)入java.lang包下的所有類 .*表示引入該包下的所有類,不包括子包.,4.3.2 JAVA類的組成,,4.3.2 JAVA類的組成,修飾符: 訪問修飾符:public、protected、private和default 非訪問修飾符:final(寫在類前:不能被繼承,沒有子類;寫在屬性前面:該屬
9、性值不能再被修改)、 abstract,4.3.2 JAVA類的組成,1. 類的訪問控制修飾,主要是限制這個(gè)類能否被其他的類所看到,并且訪問。 Public 公共訪問修飾符: public class ClassName 缺省訪問控制符: class ClassName private 私有訪問控制符: private class ClassName 2. 對(duì)類中的成員的訪問控制修飾,由于類可以控制別人的訪問,但是類中某些數(shù)據(jù)有些可以讓人訪問,有些又不想讓別人訪問的時(shí)候,就要用到類中成員的訪問控制修飾符。 public 公共訪問控制符 public String name; 缺省
10、訪問控制符 int age = 20; private 私有訪問控制符 private String gender = male; protected 保護(hù)訪問控制符 protected Date birthday = new Date();,4.3.2 JAVA類的組成,4.3.2 JAVA類的組成,,成員變量 定義規(guī)則: 例如: 成員方法 定義規(guī)則: 例如: 構(gòu)造函數(shù): 構(gòu)造函數(shù)是創(chuàng)建對(duì)象并初始化對(duì)象內(nèi)部的成員變量的 定義規(guī)則: 例如:參看課本例4.5,4.3 面向?qū)ο蟮幕菊Z法,常用關(guān)鍵字列表,常用概念列表,,什么是類? 什么是對(duì)象? 類和對(duì)象的區(qū)別是什么? 如何定義一個(gè)類、類的屬性和方法? 如何創(chuàng)建類的對(duì)象? Java文件的組成,總結(jié),