java面向對象的基本概念

面向對象的基本概念

這裏先介紹面向對象程序設計的一些關鍵概念,並開始使用類,你須要學習一些術語,咱們儘可能用比較淺顯的語言來介紹,由於這些內容都比較重要,因此但願你們好好好理解。java

1、什麼是對象和麪向對象的編程。算法

 

對象就是存在的具體實體,具備明肯定義的狀態和行爲,是面向對象編程的核心,用來描述現實世界中的實體,爲計算機應用程序提供實體基礎,也是完成特定任務一個封裝。這樣描述對象倒是有點羅嗦。由於與傳統的C語言不通,C語言是過程語言,而java語言是面向對象的語言,因此對象是java語言的核心。編程

那到底什麼是對象,能舉個例子嗎?其實在咱們生活中,什麼均可以抽象成爲對象,好比你有一輛汽車,這輛車就是對象了,這個對象(汽車),它有顏色,牌子,有產地等等,這些咱們也能夠稱爲是它的屬性,它也能開動,要維修等等這些操做,咱們成爲是它的行爲。這就是對象了。學習

在面向對象編程中(簡稱:OOP),現實世界的全部事物全都被視爲對象。OOP的目標是在計算機程序中,模擬現實世界中的概念,咱們能夠藉助對象的描述就可以在計算機程序中用相似的實體模擬現實世界中的實體。同時OOP也是設計和實現軟件系統的方法。設計

2、對象和類指針

類是具備相同屬性和行爲的一組對象的集合。類是用於組合各個對象所共有操做和屬性的一種機制。對象

對象和類有什麼關係呢!咱們能夠舉個例子來回答一下。好比如今有一個收銀員叫張小芳的。那麼咱們能夠把他抽象成爲一個對象——收銀員對象。繼承

這個對象有如下的一些資料:開發

 

姓名:張小芳原型

職銜:收銀員

年齡:28

體重:60千克

操做:

收款

打印賬單

固然一個超市裏面確定不止一個收銀員,可能收銀員小明、小芳等等。這些都是收銀員對象,或者稱之爲實例,並且全部的收銀員都有姓名、職銜、年齡、體重等屬性;收款和打印賬單等行爲。咱們經過對收銀員對象進行抽象,就能夠獲得一個收銀員類(class),這個類擁有姓名、職銜、年齡、體重等屬性;收款和打印賬單等行爲。

因此咱們得出:類是對象的原型,全部屬於同一個類的對象都具備相同的屬性和行爲,咱們抽象了類以後,咱們又能夠用類定義實體。類是概念模型,對象是真實的模型。

3、屬性和方法

類是java的基本單位,類通常包括屬性和方法。

屬性:事物的特性在類中表示爲變量,每一個對象的每一個屬性都擁有其特有的值,屬性名稱由類的全部實例共享,在類中表示對象或實體擁有的特性時稱爲屬性,好比咱們上面所說的收銀員類就是有有姓名、職銜、年齡、體重等屬性,屬性通常使用名詞描述。

方法:操做的實際實現方法指定操做對象數據的方式如何執行所請求的操做的規範在獲得操做請求時指定如何作的算法對象執行的操做稱爲方法。好比咱們上面所說的收銀員類就是有收款和打印賬單等方法,屬性通常使用動詞描述。

4、面向對象思想

由於面向對象思想簡單歸納起來就是三個:封裝(Encapsulation)、繼承(Inheritance)和多態(Polymorphism)。

封裝:就是把某些內容封起來,不讓別人知道。有些對象本身的屬性內部實現細節是不想讓其餘的對象知曉的,那麼咱們就能夠把它封裝起來。這就是封裝的基本概念。

繼承:顧名思義,繼承就是兒子對父親的繼承,在類也能夠有子類和父類的。子類對父類的繼承,可是繼承也不是所有繼承的,若子類與父類在同一包中。子類繼承了父類中全部不是private的成員方法(除構造方法)及不是private的成員變量繼承,有關繼承的具體咱們在後面的會再介紹。繼承的目標主要實現重用代碼,節省開發時間。

多態:同一操做做用於不一樣的對象,能夠有不一樣的解釋,產生不一樣的執行結果。在運行時,能夠經過指向父類的指針,來調用實現子類中的方法。在java中多態通常又分爲方法的重寫和方法的重載。

編譯時的多態性:編譯時的多態性是經過重載來實現的。對於非虛的成員來講,系統在編譯時,根據傳遞的參數、返回的類型等信息決定實現何種操做。

運行時的多態性:運行時的多態性就是指直到系統運行時,才根據實際狀況決定實現何種操做。編譯時的多態性爲咱們提供了運行速度快的特色,而運行時的多態性則帶來了高度靈活和抽象的特色。

一下讓你們理解這些概念是不可能的,你們能夠先簡單理解和記憶一下,之後再慢慢消化。

相關文章
相關標籤/搜索