1. 程式人生 > >Java基礎之java的四大特性

Java基礎之java的四大特性

上篇文章說了jdk的安裝和java環境的配置,這篇文章主要說下java的特性。

首相說下,程式語言分為面向過程和麵向物件,而java就是一種面向物件的程式語言。

什麼是面向過程程式設計呢?就是一流程為單位,注重最後的結果。比如小明要從鄭州去北京,他第一步就是要先買火車票,然後去火車站乘車,坐火車到北京。這就是面向過程程式設計,必須每一步都做到,才會有最後的結果。

這樣一來面向過程程式設計的缺點就很明顯了:1、不利於程式的維護   2、功能之間有很強的關聯性,就是說你每一次改動一步,可能就會涉及到好幾步的更改。

那麼什麼又是面向物件變成呢?就是把一個事物看做一個整體,從事物的屬性和功能兩方面進行描述

面向物件程式設計的特點就是:

1、面向物件的程式設計思想更貼近人的正常思維模式

2、面向物件的程式設計來源於生活服務於生活

3、面向物件的程式設計思想中肯定會用到面向過程的思想

4、面向物件的特徵:抽象、封裝、繼承、多型

這就要來了解下什麼是物件了。

任何一個具體的事物都是一個物件,在《java程式設計思想》中講到:萬事萬物皆物件

任何一個物件都是唯一的,即使兩個相近或者相似的事物都是兩個不同的物件,就像世界上找不到兩片相同的樹葉一樣,任何一個物件一旦建立就會唯一的存在。而且物件也不一定是一個切實存在的實物,任何一項法規、政策、虛擬物品等都是一個物件。

抽象      

就是對同一個事的共有的屬性(特徵)和方法(功能/行為)進行抽取、歸納、總結。如:汽車都有輪子、發動機等這些就是汽車的屬性,汽車能跑、能載人載物等這些就是汽車的功能。這樣就可以把汽車的這些功能與屬性抽取出來寫在一個類中,供汽車這一類事物使用。

封裝  

在抽象中將屬性與方法寫在一個類中就是封裝,而封裝就是為了保證抽象出來的特徵和方法的安全性,封裝就是包裝的過程,注意封裝不是絕對的封裝,如果其他程式要獲取已經封裝好的資料,就要通過程式指定的介面或方法才能獲取。

繼承

        特點:繼承要有一定的層次結構,還要具備一定的可傳遞性

     子類繼承父類的屬性和方法,但是私有屬性和構造方法除外

     子類除了擁有從父類繼承過來的屬性和方法外,子類還可以擁有屬於自己的屬性和方法

     在java中只支援單一繼承(也就說一個子類只能有一個父類,但一個父類可以有多個子類)

     判斷兩個類的繼承關係是否成立,可以通過“is-a”(是一個)開判斷

子類不能繼承父類的構造方法:父類的構造方法建立的是父類的物件,以為繼承要有一定的層次結構,而且要具備一定的額可傳遞性,如果子類繼成父類的構造方法就違反了這一條,所以子類不能繼承父類的構造方法。

如何實現繼承

 在java中通過extends關鍵字來實現繼承,語法

【訪問修飾符】  class   子類    extends  父類{   }

繼承的作用

提高程式碼的重用性

一個原始檔中可以包含多個類,但只能有一個類帶public,而且帶public訪問修飾符的類的類名要和原始檔的檔名相同,main方法也要寫在帶public的類中。

當建立子類物件時,那麼一定會先執行父類的構造方法建立父類物件,然後在呼叫子類的構造方法建立子類的物件。而且在建立子類的物件時無論是呼叫有引數還是無引數的構造方法,JVM都會預設的代用父類的無引數的構造方法建立父類的物件。

多型

多型就是指同一種事物在不同的情況下的多種表現形式

多型的表現形式有:方法重寫,方法過載,介面和介面的繼承,類和類的繼承

方法的過載:在同一個類中,有多個方法名相同,但引數列表不同的方法,這就是方法的過載,引數列表的不同包括:引數個數,型別,順序的不同。普通方法和構造方法都可過載,方法過載會根據傳遞的引數來決定呼叫哪個方法,返回值不同,其他都相同的情況是構不成方法的過載

方法的重寫:發生在子類繼承父類的關係中,父類中的方法被子類繼承,方法名,返回值型別,引數完全一樣,但是方法體不一樣那麼說明父類中的該方法被子類重寫了。

目的:當父類中方法,無法滿足子類的需求時,那麼子類可以對父類的方法進行擴充套件

注意:方法重寫子類的訪問修飾符的範圍不能縮小