面向對象(一)之封裝_第1頁
面向對象(一)之封裝_第2頁
面向對象(一)之封裝_第3頁
面向對象(一)之封裝_第4頁
面向對象(一)之封裝_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.面向對象(一)之封裝面向對象程序設計面向對象程序設計即(Object Oriented Programming,OOP;Object Oriented Design ,OOD)。什么是面向對象?在面向對象程序設計中有兩個重要的概念:類(class)與對象(object)。什么是類呢?類是一種抽象的概念,類中包含了數據與數據的操縱。數據通常使用名詞來表示,而數據的操縱通常使用動詞來表示。比如說人就是一種抽象的概念,人具有姓名,年齡,身高等數據,還有吃飯,跑步等操縱數據的動作具體的來說其中類所包含兩部分內容分別是:數據,數據在類中稱作屬性(Propert或者Attribute)或者叫做成員變量(

2、Member variable)對數據的操縱,這種操縱在類中稱作方法(method)什么是對象,對象是一種具體的概念,又叫做實例,是類的一種具體表現方式,比如說人是一個類,而張三,李四,王五等具體的人就是對象。面向對象的基本特征面向對象設計的總共有散打基本特征,分別是:繼承(Inheritence),封裝(Encapsulation),多態(tài)(Polymorphism)封裝類封裝包含了數據與方法,將數據與方法放在一個類中就構成了封裝。那么我們如何定義類呢?如以下形式:修飾符 class 類的名字 /類的內容(包含了屬性與方法)方法再來看看如何定義一個方法?修飾符 返回類型 方法名稱(參數1,參數

3、2,參數3.) /方法體return 值;方法的執(zhí)行從哪開始呢?那就是java中的main方法,main方法是整個java程序的入口點,如果類的定義中沒有main方法,則程序無法執(zhí)行。注意方法定義不能嵌套,也就是說不能在一個方法中定義另外一個方法。方法只能定義在類中。關于方法的執(zhí)行:首先需要定義方法,接下來就可以使用方法(即調用方法),當方法調用完畢后,方法可以返回值。方法到底是否返回值是由方法的定義決定的。 如何生成對象?通過類來生成對象(通常使用new關鍵字來生成對象)。注:生成一個對象的過程又叫做實例化,形式如下:public class Person類名 變量名 =new 類名();即

4、Person person =new Person();Person person2=new Person();Person person 3=new Person();而方法的調用需要通過對象來完成,方法調用的形式是:對象變量.方法名(參數值1,參數值2,參數值3);關于方法有如下注意事項:在方法的定義中,方法的返回類型與return后面的變量或常量類型保持一致。在方法的調用時,給方法傳遞的參數需要與方法定義時的參數保持一致(參數個數一致,參數類型一致)。方法定義時的返回類型與接受方法返回值的變量類型保持一致。參數那么我們對參數也有一些總結,如:public int add(int a,in

5、t b) return a+b; 以上我們說方法定義時的參數叫做形式參數那么:int a=test.add(8,3);方法調用時所賦予的具體值叫做實際參數。方法定義有個關鍵字void表示方法不返回值。如果方法不返回值,那么聲明方法的時候使用void關鍵字,在方法定義中還可以有兩種情況實現不返回值,這里就涉及之前提到的return用法了:不使用return語句。使用return,但return后面沒有任何值或者變量,return后面只有一個分號,表示退出方法,返回到方法。java命名java中的命名也是很重要的,它有一些命名約定:類:首字母大寫,如果一個類名由多個單詞構成,那么每個單詞的首字母都

6、大寫,中間不使用任何連接符。比如Person,MemberTest類。方法:首字母小寫,如果一個方法由多個單詞構成,那么第一個單詞的所有字母全都小寫,從第二個單詞開始,每個單詞的首字母大寫,不如add,addThreeInt.屬性:命名約定與方法相同。如age.ageOfPerson.屬性如何定義屬性?屬性需要定義在類中,又叫做成員變量,而定義在方法中的變量叫做局部變量。,定義屬性的形式: public class Person 修飾符 類型 屬性名稱;如何使用屬性?與方法一樣,使用“.“運算符。首先需要生成類的實例,然后使用實例+“.”的方式來使用屬性。比如:Person person =n

7、ew Person();person.age;注意:當我們在調用屬性的時候,只能調用成員變量,局部變量將發(fā)生錯誤。調用時要賦上值。如:public class Test int age;public static void main(String args) /int id=0;調用時發(fā)生錯誤Test t=new Test();t.age=1;注意了,局部變量使用前必須要聲明并賦初值;成員變量使用前必須要聲明,但可以不賦初值。成員變量與局部變量的聯系與區(qū)別:無論是成員變量還是局部變量,使用前都需要聲明(定義對于局部變量來說,使用前必須要初始化;對于成員變量來說,使用前可以不初始化,如果沒有初始

8、化成員變量就開始使用,那么每個類型的成員變量都有一個默認的初始值byte,short,int,long,類型的初始值為0;float,double類型的初始值為0.0char類型的初始值u0000boolean類型的初始值為false引用類型(reference type)引用類型是用在對象上的,一個對象可以被多個引用所指向,但同一時刻,每個引用只能指向唯一的一個對象。如果一個對象被多個引用所指向,那么無論哪個引用對對象的屬性進行了修改,都會反映到其他的引用當中。如public class Test int a; public static void main(String args) Tes

9、t t=new Test(); Test t2=t; t1.a=1; Syetem.out.println(t2.a);/此處將打印1類,方法,屬性的關系如果一個類包含了屬性與方法,那么該類的每一個對象都具有自己的屬性,但無論一個類有多少個對象,這些對象共享同一個方法。這里說下java中很重要的理念就是方法參數的傳遞,對與java中的方法參數傳遞,無論傳遞是基本數據類型還是引用類型。統(tǒng)一的是傳值(pass by value),java中沒有傳引用這個概念。這很重要。注意一點,什么類型的引用就能指向什么類型的對象,比如People類型的引用就能指向People類型的對象,但不能指向Student

10、類型的對象,比如:People people =new People();/正確People people=new Student();/錯誤【這里我們暫不考慮后面知識多態(tài)】構造方法(Constructor)構造方法用于完成對象屬性的初始化工作,構造方法的特點:構造方法的名字必須與類名完全一致(包含大小寫)構造方法沒有返回值,連void也不能出現。如果在定義一個類的時候,沒有為類聲明構造方法,那么Java編譯器會自動為類添加一個沒有參數切方法體為空的構造方法(默認的構造方法)不能顯式調用類的構造方法,構造方法通常是通過new關鍵字隱式調用。(重要)提醒:默認的構造方法沒有參數且方法體為空new關鍵字的重要特性當我們生成對象,使用new關鍵字完成了三

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論