国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java基礎(五)OOP面向對象之(一) 面向對象思想初識

2019-11-06 07:15:11
字體:
來源:轉載
供稿:網友

java基礎(五)OOP面向對象之(一) 面向對象思想初識

面向對象類及其基本構成類創建實例名詞解析:類、對象、實例主要解決的三大問題:封裝、繼承和多態

1. 理解面向對象的思想

面向對象的開發方法把軟件系統看成各種對象的集合,對象就是最小的子系統,一組相關的對象能夠組合成更復雜的子系統。面向對象的開發方法將軟件系統看成各種對象的集合,接近人的自然思維方式。

對象是對問題領域中事件的抽象。對象具有以下特性:

1) 萬物皆為對象。問題領域中的實體和概念都可以抽象為對象。例如學生,成績單、教師、課和教室。

2) 每個對象都是惟一的。正如世界上不存在一模一樣的葉子。(在Java內的體現為每個對象的類名不能相同。這里的類名指的是全路徑的名稱,比如java.lang.Numbercom.us.demo.Number兩者雖然名稱都是Number類,但是類的全路徑名稱不同,所以這樣的命名是合理的。)

3) 對象具有屬性和行為。

例如小張,性別女,年齡22,身高1.6m, 體重40kg, 能夠學習,唱歌。小張的屬性包括姓名、性別、年齡、身高和體重,行為包括學習、唱歌。

例如一部手機,牌子是諾基亞、價格是2000元,銀白色,能夠拍照、打電話和收發短信等。這部手機的屬性包括品牌類型type、價格PRice和顏色color,行為包括拍照takePhoto(),打電話call(),收發短信receiveMessage()和發短信sendMessage()。

4) 對象具有狀態。狀態是指某個瞬間對象的各個屬性的取值。對象的某些行為會改變對象自身的狀態,即屬性的取值。

“` 例如小張本來體重為40kg,經為減肥后,體重減到45kg.

肥胖狀態: 40kg | | 減肥行為 | 肥胖狀態: 35kg

public boolean reduceWeight(int oldWeight, int nowWeight){ // 減肥成功操作 ,將減肥的成果作為布爾類型返回出來。 } “`

5) 每個對象都是某個類的實例。小張和小王都屬于學生類、中國和美國都屬于國家類、中文和英文都屬于語言類。

類是具有相同屬性和行為的對象的集合。

同一個類的所有實例都有相同屬性,但屬性取值不一事實上相同,但是它們的狀態不一定相同。例如小張和小王都屬于學生類,都有姓名、性別、年齡、身高和體重這些屬性,但是他們的屬性取值不同。

同一個類的所有實例都有相同行為,意味著它們具有一些相同的功能。

2. 創建類

類是一組具有相同屬性和行為對象的模板。面向對象編程的主要任務就是定義對象模型中的各個類。

package sample; // 常有的Java內的Bean類 也叫Model類 或者 POJO類 public class Teacher { /**attributes of a teacher*/ private String name; private int age; private double salary; /** Creates a new instance of Teacher */ public Teacher(String name, int age, double salary) { this.salary = salary; this.age = age; this.name = name; } /**Operations on properties */ /** get the name of this teacher */ public String getName() { return name; } /**get the salary of this teacher */ public double getSalary() { return salary; } /**get the age of teacher teacher */ public int getAge() { return age; } …… }

代碼解析:

1) package sample; 包聲明語句,將Java類放到特定的包中,便于類的組織、權限訪問和區分名字相同的類。

2) public class Teacher {…} 類的聲明語句,類名為Teacher, public修飾符意味著這個類可以被公開訪問;

聲明類的格式:

class 類名 { 類內容 }

3) private String name; 類的屬性(也稱為成員變量)的聲明語句;Teacher類有一個name屬性,字符串類型,private修飾符意味著這個屬性不能被公開訪問。

4) public String getName() { return name; } 方法的聲明語句和方法體。方法名為getName,不帶參數,String表明返回類型為String。public表明這個方法可以被公開訪問。getName后緊跟的大括號為方法體,代表getName的具體實現。

聲明方法的格式:

返回值類型 方法名 (參數列表) { 方法體 }返回值類型是方法的返回數據的類型, 如果返回值類型為void, 表示沒有返回值。方法名是任意合法的標識符;一般的類名為單詞的首字母大寫,一般的方法名為首個單詞的首字母小寫,其余單詞的首字母大寫。參數列表可包含零個或多個參數,參數之間以逗號”,”分開。可以使用可變參數類型。方法體每個語句用”;”結束;方法體中使用return語句返回數據或結束本方法的執行;

注:不介紹構造方法。在面向對象章節會提到。

3. 創建實例

public static void main(String[] args) { Teacher gzhu = new Teacher("George Zhu", 30, 10000); System.out.println("Teacher: " + gzhu.getName()); System.out.println("/tAge: " + gzhu.getAge()); System.out.println("/tSalary: " + gzhu.getSalary()); }

main()方法是Java應用程序的入口點,每個Java應用程序都是從main()方法開始運行的。作為程序入口的main()方法必須同時符合以下幾個條件:

用public static修飾;返回類型為void;方法名為main;

參數類型為String[]; 包含main方法的類又叫主程序類。Java程序啟動后,就會運行方法的主程序類。

類創建好之后,通過new關鍵字創建具體對象。它有以下作用:

為對象分配內存空間,將對象的實例變量自動初始化為其變量類型的默認值;分配的指針通常存在堆內,分配的對象實例的空間通常存在于棧內;

如實例變量顯示初始化,將初始化值賦給實例變量;調用構造方法;(具體的對象實例的生車過過程我們會在下一小節詳細的闡述。)返回對象的引用;

4. 名詞解析:類、對象、實例

類是對象的模板。實例約等于對象。

類: 具有相同屬性和行為的對象的集合。對象: 問題領域中的實體和概念都可以抽象為對象。實例: 每個對象都是類的實例。實例相當于 適用于某些類的模板的對象。屬性: 也就是類的固有屬性和特征。行為: 類的特有操作,Java內也稱之為方法。

5. 封裝、繼承、多態

封裝: 將類中的某些屬性和方法的實現細節隱藏。為了保障類的安全性;以及方便類的使用。繼承: 為了重用某些類中的特性和方法。為了便于類的維護和擴展;為了方便類的使用。 (繼承的權限訪問權限方式,Java采用的是單繼承多個實現的方式。但是所有的類對象默認繼承Object類?多繼承?基本數據類型是否也是類?)多態: 指允許不同的類的對象對于同一方法做出響應。即同一消息根據發送對象的不同二采用多種不同的行為方式。 (對于多態,你既需要如何調用子類的方法,可需要知道如何調用父類的方法。)

6. 參考文獻

[1]. Java內多態的理解


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周至县| 永寿县| 梁平县| 九寨沟县| 东山县| 孝昌县| 龙南县| 张家港市| 乌拉特前旗| 石景山区| 衡阳市| 德惠市| 高淳县| 林口县| 仪征市| 偏关县| 芒康县| 香格里拉县| 松潘县| 德安县| 盘山县| 绥德县| 衡阳县| 黄大仙区| 南漳县| 多伦县| 毕节市| 伊春市| 惠水县| 行唐县| 清流县| 潼南县| 普安县| 天柱县| 嘉鱼县| 达拉特旗| 茶陵县| 台湾省| 静乐县| 阿尔山市| 汤阴县|