物件導向程式設計
這種思想指導我們程式設計師如何使用j**a寫**。
面象過程:強調的是解決問題的步驟,直接寫函式即可,直接呼叫函式:函式名(..)。
物件導向:強調使用物件解決問題,物件是屬性和方法的綜合體,使用物件名.屬性名和物件名.方法名(..)。
倒推:使用物件解決問題;
需要物件;
建立乙個物件;
物件是什麼樣的呢?
我們需要告訴計算機,物件是什麼樣的,有哪些功能。
提供模板:類。
類:建立物件的模板。
物件:是類的具體化。
物件是乙個獨立的個體。
根據問題,進行分析;
通過分析,定義模板(抽象成類);
通過類,建立物件(例項化,例項=物件);
使用物件的屬性和方法,解決問題。
問題:老於是乙個胖子,體重200公斤。為了女朋友決定**,通過不懈的努力,體重將為100公斤。
分析,抽象成類:
人類通過類,建立物件:
類名 物件名=new 類名();
通過物件,解決問題:
物件名.屬性名 儲存資料
物件名.方法名(..) 解決問題的過程
[修飾符] class 類名
}
public class person }建立物件,其實就是在堆裡開闢乙個大空間。
裡面包含屬性和方法。
這些屬性和方法,是參考類賦予的。
類名 物件名=new 類名();
int 陣列名=new int[4];
//主方法:程式執行的入口每new一次,都會產生乙個新物件,在堆記憶體中儲存。public static void main(string args)
jvm先載入類的資訊到記憶體的方法區中。
在堆記憶體中開發空間,儲存物件的資訊。
然後以類為模板建立物件,類中有哪些屬性和方法,就會給物件新增那些屬性和方法。
物件名.屬性名
物件名.方法名(..)
p.name="老於";p.jianfei();p.weight=200;
p.jianfei();
p2.name="老王";
p2.weight=300;
p2.jianfei();
通過p中儲存的首位址,找到對應的堆記憶體中的物件。
然後,找到該物件中的屬性和方法;
最後執行屬性和方法體。
基本型別的變數儲存是單一值。
引用型別的變數中儲存的是物件的首位址。
陣列:陣列物件內部分為若干元素,每個元素可以儲存一條資料。
陣列名.length,length並不是屬性,length是計數器中記錄陣列的長度。
類:類型別的物件內部分為屬性和方法。
介面:在類型別的基礎上,會向上轉型。
j**a中用於儲存資料的容器。
變數的特點:儲存的資料是可以變化(修改)。
j**a語言中,變數分為區域性變數和成員變數(物件的屬性)。
區域性變數:宣告在方法體內的變數。不屬於任何物件。
成員變數:宣告在類中,方法體外的變數。是物件的屬性。
(1)宣告的位置
區域性變數:宣告在方法體內的變數。
成員變數:宣告在類中,方法體外的變數。
(2)作用範圍
區域性變數:只能用於宣告它的方法體內,其他方法體無法訪問。
成員變數:可以作用於當前類的所有方法體內。
(3)預設值
成員變數:有預設值。
byte short int long 0
float double 0.0
char 空白字元
boolean false
引用型別 null
區域性變數:沒有預設值。
(4)修飾符
成員變數:可以使用任何修飾符修飾。(public protected private 不寫) static final ==
區域性變數:只能使用final。
(5)重名問題
區域性變數(或引數)之間如果作用範圍有交集,不能重名;
成員變數之間如果作用範圍有交集,不能重名;
成員變數和區域性變數(或引數)是可以重名的!!
public class person2}
物件導向程式設計思想
舉個最簡單點的例子來區分 有一天要請客吃飯,怎麼辦?有兩個方法 1 買菜,買調料,買肉,買酒水,然後下廚房動手炒菜 2 去飯店,點個 看出來區別了嗎?方法1是面向過程,方法2是物件導向。物件導向有什麼優勢?首先不需要知道各種菜式是怎麼做的,降低了耦合性。如果突然想換 了,對於方法1可能不太容易,因為...
物件導向程式設計思想
所謂的物件導向,是一種程式設計思想,程式設計思路,的書寫格式,複雜程式的封裝,封裝成其他形式,使用物件導向的方式來封裝程式。物件導向 有封裝好的物件導向的的程式 直接呼叫執行就可以了 功能和作用類似於 封裝好的函式 但是 封裝的語法和思想與函式不同 物件導向的基本思想 基本思路就是,建立乙個物件,給...
物件導向程式設計思想
介面是為了處理各個物件之間的協作關係,是系統設計的關鍵部分,主要作用是為了將 定義 與 實現 分離,從而實現系統解耦的目的。在系統設計之初,我們要為抽象類建立行為模型 為什麼要面向介面程式設計?因為物件導向設計原則為我們提供了方法和原則 七大原則 開 面向擴充套件開放,面向修改關閉 口 介面隔離原則...