資源描述:
《面向?qū)ο蟆㈩惻c對(duì)象的定義ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、——面向?qū)ο蟮母拍铑惻c對(duì)象的定義第3章:面向?qū)ο蟪绦蛟O(shè)計(jì)本節(jié)目標(biāo)了解面向?qū)ο蟮幕靖拍盍私饷嫦驅(qū)ο蟮娜齻€(gè)主要特征掌握類與對(duì)象的關(guān)系掌握類的定義掌握對(duì)象的聲明及使用面向過(guò)程與面向?qū)ο蟪绦虻陌l(fā)展經(jīng)歷了兩個(gè)主要階段:面向過(guò)程和面向?qū)ο髮?duì)于面向?qū)ο笈c面向過(guò)程可以用一個(gè)例子解釋,如一個(gè)木匠要做一個(gè)盒子,那么做這個(gè)盒子的出發(fā)點(diǎn)會(huì)有兩種方式:面向?qū)ο螅合认牒靡龅暮凶?,之后再去找相?yīng)的工具去做。面向過(guò)程:不去想要做什么樣的盒子,隨需取用工具。面向?qū)ο蟮娜筇卣鞣庋b(Encapsulation)對(duì)外部不可見(jiàn)繼承(Inheritance)
2、擴(kuò)展類的功能多態(tài)(Polymorphism)方法的重載對(duì)象的多態(tài)性類與對(duì)象類是對(duì)某一類事物的描述,是抽象的、概念上的定義;對(duì)象是實(shí)際存在的該類事物的每個(gè)個(gè)體,因而也稱實(shí)例(instance)具體的實(shí)例具體的實(shí)例具體的實(shí)例具體的實(shí)例具體的實(shí)例具體的實(shí)例抽象的概念換種方式解釋:類與對(duì)象的關(guān)系類就相當(dāng)于是一個(gè)模板,依照此模板產(chǎn)生產(chǎn)品類的定義聲明成員變量(屬性)定義方法的內(nèi)容定義Person類Person類圖所示的圖形分為三個(gè)層次第一層表示類的名稱,類的名稱與之前一樣要求開(kāi)頭首字母大寫(xiě);第二層表示屬性的定義,按照“訪問(wèn)權(quán)限屬性名
3、稱:屬性類型”的格式定義;第三層表示類中方法的定義,按照“訪問(wèn)權(quán)限方法名稱():方法返回值”的格式定義對(duì)象的創(chuàng)建及使用classPerson{Stringname;intage;publicvoidtell(){System.out.println("姓名:"+name+",年齡:"+age);}}publicclassClassDemo02{publicstaticvoidmain(Stringargs[]){Personper=newPerson();}}訪問(wèn)類中的屬性和方法classPerson{Stringnam
4、e;intage;publicvoidtell(){System.out.println("姓名:"+name+",年齡:"+age);}}publicclassClassDemo03{publicstaticvoidmain(Stringargs[]){Personper=newPerson();per.name="張三";//為屬性賦值per.age=30;per.tell();//調(diào)用類中的方法}}下一節(jié)內(nèi)容類與對(duì)象的進(jìn)一步研究本節(jié)目標(biāo)掌握J(rèn)AVA中的內(nèi)存劃分初窺Java引用傳遞垃圾的產(chǎn)生分析內(nèi)存劃分:對(duì)象創(chuàng)建之初
5、內(nèi)存操作:為屬性賦值聲明多個(gè)對(duì)象內(nèi)存劃分對(duì)象引用傳遞引用傳遞內(nèi)存圖垃圾產(chǎn)生垃圾產(chǎn)生的內(nèi)存關(guān)系下一節(jié)內(nèi)容構(gòu)造方法本節(jié)目標(biāo)掌握構(gòu)造方法的概念及調(diào)用時(shí)機(jī)掌握構(gòu)造方法的重載掌握匿名對(duì)象的使用構(gòu)造方法對(duì)象的產(chǎn)生格式:類名稱對(duì)象名稱=new類名稱()因?yàn)橛小?)”,所以表示的是一個(gè)方法這實(shí)際上就是一個(gè)構(gòu)造方法構(gòu)造方法的定義格式在構(gòu)造方法的聲明中一定要牢記以下幾點(diǎn):·構(gòu)造方法的名稱必須與類名稱一致·構(gòu)造方法的聲明處不能有任何返回值類型的聲明·不能在構(gòu)造方法中使用return返回一個(gè)值聲明一個(gè)構(gòu)造方法默認(rèn)的構(gòu)造方法每個(gè)類中肯定都會(huì)有一個(gè)
6、構(gòu)造方法如果一個(gè)類中沒(méi)有聲明一個(gè)明確的構(gòu)造方法則會(huì)自動(dòng)生成一個(gè)無(wú)參的什么都不做的構(gòu)造方法構(gòu)造方法的目的--為類中的屬性初始化構(gòu)造方法重載構(gòu)造方法的重載過(guò)程與普通方法一樣:參數(shù)的類型或個(gè)數(shù)不同publicPerson(){}publicPerson(Stringname){this.setName(name);}publicPerson(Stringname,intage){this.setName(name);this.setAge(age);}匿名對(duì)象只使用一次的對(duì)象,稱為匿名對(duì)象。匿名對(duì)象只在堆內(nèi)存中開(kāi)辟空間,而不存
7、在棧內(nèi)存的引用。publicclassNonameDemo01{publicstaticvoidmain(Stringargs[]){newPerson("張三",30).tell();//匿名對(duì)象}}下一節(jié)內(nèi)容類設(shè)計(jì)分析本節(jié)目標(biāo)掌握類的基本分析思路應(yīng)用思路分析具體的題目程序分析思路在具體題目講解之前先給出一些分析的思路:1、根據(jù)要求寫(xiě)出類所包含的屬性;2、所有的屬性都必須進(jìn)行封裝(private);3、封裝之后的屬性通過(guò)setter和getter設(shè)置和取得;4、如果需要可以加入若干構(gòu)造方法;5、再根據(jù)其他要求添加相應(yīng)的
8、方法;6、類中的所有方法都不要直接輸出,而是交給被調(diào)用處輸出。題目要求定義并測(cè)試一個(gè)名為Student的類,包括屬性有“學(xué)號(hào)”、“姓名”,以及3門課程“數(shù)學(xué)”、“英語(yǔ)”和“計(jì)算機(jī)”的成績(jī),包括的方法有計(jì)算3門課程的“總分”、“平均分”、“最高分”及“最低分”。屬性及類型定義出方法(普通方法、構(gòu)造方法)設(shè)計(jì)類圖clas