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