天天看點

樂位元組Java程式設計語言發展,面向對象和類

大家好,上次我們講過了樂位元組Java程式設計之方法、調用、重載、遞歸,接下來我們将會進入到Java封裝的内容。Java程式設計語言發展,面向對象和類。

一、程式設計語言的發展

機器語言——直接由計算機的指令組成,指令、資料、位址都以“0”和“1”組成:可以被計算機直接識别并執行。

彙編語言——用容易了解和記憶的符号表示指令、資料以及寄存器等,抽象層次很低,程式員需要考慮大量的機器細節。

進階語言——屏蔽了機器細節,提高了語言的抽象層次接近于人的自然語言,60年代出現的結構化程式設計語言剔除了結構化資料和語句,資料和過程抽象等概念。

面向對象的語言——與以往的各種語言的根本不同是,它的設計出發點就是為了更能直接地描述問題域中客觀存在的事物。

語言的發展是朝着人類更容易了解的方向前進。

OOP(Object Oritented Programming)面向對象程式設計,屬于程式設計的一種通用的思想。OOP使我們的開發變得不再那麼複雜,并大大增加了程式的靈活性和擴充性。如果你尚未使用OOP思想來完善你的程式設計,那你真的OUT了。

樂位元組Java程式設計語言發展,面向對象和類

代碼世界中與現實生活中一樣,社會需要分工,我們不必描述所有一切事物的制作過程,因為有時,我們隻想要這個東西,并不關心它的過程。

二、面向對象概述

⑴面向過程的設計思想和面向對象的設計思想

我要吃魚香肉絲蓋飯

面向過程:我買菜、我洗菜、我切菜、我放水、我點火、我做飯、我炒菜。。。。

面向對象:找家飯館,大吼一聲“我要吃魚香肉絲蓋飯”

至于飯怎麼來的我不管

所有的細節資訊都封裝在這個飯館類的内部,我不需要關心裡面到底有幾道工序

面向過程就是知道一個很NB的人來完成一件事;面向對象就是指導一群人來完成一件很NB的事。

⑵面向對象的設計思想

面向對象的基本思想是,從現實世界中客觀存在的事物出發來構造軟體系統,并在系統的構造中盡可能運用人類的自然思維方式。

面向對象更加強調運用人類中日常的思維邏輯中經常采用的思想方法與原則,如抽象、分離、繼承、聚合、多态等。

三、對象和類的概念

對象用計算機語言對問題域中事物的描述,對象通過“屬性(attribute)”和“方法(method)”。

3.1 類

類是用于描述同一類型的對象的一個抽象的概念,類中定義了這一類對象所具有的靜态屬性和動态屬性。

類可以看成一類對象的模闆,對象可以看成該類的一個具體執行個體。

樂位元組Java程式設計語言發展,面向對象和類

類,說白了就是歸類,就是對同種事物進行抽象,抽出“像”的部分,包含有關事務(對象)動作方式的資訊,包括它的名稱、屬性、方法及所在的場景或聯系。

例子:

根據客戶的需要,我們來制作一個蛋糕。首先要有一個制作蛋糕的菜單(類),裡面當然要有制作這個蛋糕需要什麼原材料(成員屬性),還要告訴我們如何去做(成員方法)。

樂位元組Java程式設計語言發展,面向對象和類

3.2 符合Java的類

public class Cake{
public String shape; // 蛋糕的形狀 public int cream; //奶油的量 public int eggs; //雞蛋的量 public int water; //水的量 public int bakeTime; // 烤制時間 public String others; // 其他配料 // 制作 public void makeCake(){ System.out.println(“放入” + cream + “的奶油,加入” + eggs+ “雞蛋…”); } }
           

由此可見:類就是模闆,同時是複雜的資料類型

有了上述蛋糕類,還沒有擁有一個實實在在的蛋糕(對象),隻有當我們照着菜單上寫的,把原材料準備齊全,照着一步一步去做,方可得到這個蛋糕(對象的執行個體化)

現在我們的進階面點師來了,他知道如何去做:隻要有菜單和材料

class Baker{
	String name; // 名字  public Cake makeCake(){ Cake cake = new Cake(); cake.shape = “麻将型”; cake.cream = 50; cake.water = 500; cake.eggs = 5; cake.bakeTime = 5; cake.others = “黃油、糖、水果、顔料”; return cake; } }
           

3.3 類(對象)之間的關系

關聯關系

樂位元組Java程式設計語言發展,面向對象和類

繼承關系

樂位元組Java程式設計語言發展,面向對象和類

聚合關系(整體和部分)

樂位元組Java程式設計語言發展,面向對象和類

實作關系

樂位元組Java程式設計語言發展,面向對象和類

多态

樂位元組Java程式設計語言發展,面向對象和類

四、Java與面向對象

對象是Java程式的核心,在Java程式中“萬事萬物皆對象”。

類是用來建立同一類型的“模闆”,在一個類中定義了該類對象所具有的成員變量以及方法

JDK提供了很多類供程式設計人員使用,程式設計人員也可以定義自己的類。

成員變量=屬性 方法=功能

4.1 Java類的定義

//用class關鍵字定義一個類,例如
class Person{ // 成員變量  int id; int age = 20; // 方法定義  int getAge(){return age;} void setAge(int i){age = I;} }
           

類的定義主要有兩方面組成——成員變量和方法

聲明成員變量的格式為:

[<modifiers>] type <attr_name>[=defaultValue];

例如: int id; private int age = 20;

聲明方法的格式為;

[<modifiers>] <return_type> <name> ([<argu_list>]){

[<statements>]

}

例如:public int getAge(){ return age;}

4.2 成員變量

成員變量可以使用Java語言中任何一種資料類型(包括基本類型和引用類型)

定義成員變量時可以對其初始化,如果不對其初始化,Java使用預設的值對其初始化。

樂位元組Java程式設計語言發展,面向對象和類

成員變量的作用範圍為整個類體

4.3 Java面向對象基本概念

Java語言中除基本類型之外的變量類型都稱為引用類型

Java中的對象是通過引用對其操作的。

例如:

Dog dog;

dog = new Dog();

如何在記憶體中區分類和對象?

類是靜态的概念,代碼區

對象是new出來的,位于堆記憶體,類的每個成員變量在不同的對象中都有不同的值(除了靜态變量)而方法隻有一份,執行的時候才占用記憶體。

4.4 對象的建立和使用

必須使用 new 關鍵字建立對象,new做三件事:

①會在堆中為相應類型配置設定空間

②會調用相應的構造方法來初始化對象

③将在堆中開辟的空間的位址傳回回來

使用對象(引用).成員變量來引用對象的成員變量。

使用對象(引用).方法(參數清單)來調用對象的方法。

同一類的每個對象有不同的成員變量存儲空間。

同一類的每個對象共享該類的方法。

樂位元組原創,轉載請注冊出處。

接下來,小樂會繼續講述Java構造器,引用與記憶體分析,敬請關注 樂位元組

轉載于:https://www.cnblogs.com/lotbyte/p/11202019.html