面向過程(Procedure Oriented Programming):強調的是功能行爲,以函數爲最小單位,考慮怎麼作java
面向對象(Object Oriented Programming):將功能封裝進對象,強調具有了功能的對象,以類/對象爲最小單位,考慮誰來作編程
類(Class)和對象(Object)是面向對象的核心概念設計模式
「萬事萬物皆對象」數組
常見的類的成員有:數據結構
屬性:對應類中的成員變量
行爲:對應類中的成員方法mvc
修飾符 class 類名 { 屬性聲明; 方法聲明; } /*說明:修飾符public:類能夠被任意訪問 類的正文要用{ }括起來*/
Java自定義類:函數
建立對象語法: 類名 對象名 = new 類名();
oop
使用「對象名.對象成員」的方式訪問對象成員(包括屬性和方法)this
類的訪問機制:設計
內存解析:
匿名對象
能夠不定義對象的句柄,而直接調用這個對象的方法
new Person().shout();
語法格式: 修飾符 數據類型 屬性名 = 初始化值 ;
屬性的默認初始化
方法的聲明格式:
修飾符 返回值類型 方法名(參數類型 形參1, 參數類型 形參2, ….){ 方法體程序代碼 return 返回值; }
概念:在同一個類中,容許存在一個以上的同名方法,只要它們的參數個數或者參數類型不一樣便可
特色:與返回值類型無關,只看參數列表,且參數列表必須不一樣。(參數個數或參數類型)
聲明格式:方法名(參數的類型名 ...參數名)
做用:建立對象;給對象進行初始化
它具備與類相同的名稱
它不聲明返回值類型。(與聲明爲void不一樣)
不能被static、final、synchronized、abstract、native修飾,不能有 return語句返回值
語法格式:
修飾符 類名 (參數列表) { 初始化語句; }
父類的構造器不可被子類繼承
一旦顯式定義了構造器,則系統再也不提供默認構造器
package語句做爲Java源文件的第一條語句,指明該文件中定義的類所在的包。(若缺省該語句,則指定爲無名包)
格式爲:
package 頂層包名.子包名 ;
包對應於文件系統的目錄,package語句中,用 「.」 來指明包(目錄)的層次
包一般用小寫單詞標識。一般使用所在公司域名的倒置
JDK中主要的包介紹
爲使用定義在不一樣包中的Java類,需用import語句來引入指定包層次下所須要的類 或所有類(.*);
語法格式:
import 包名. 類名;
import static組合的使用:調用指定類或接口下的靜態的屬性或方法
程序設計追求「高內聚,低耦合」
隱藏對象內部的複雜性,只對外公開簡單的接口;通俗的說,把該隱藏的隱藏起來,該暴露的暴露出來。這就是封裝性的設計思想
Java中經過將數據聲明爲私有的(private),再提供公共的(public) 方法:getXxx()和setXxx()實現對該屬性的操做,以實現下述目的:
Java權限修飾符public、protected、(缺省)、private置於類的成員定義前, 用來限定對象對該類成員的訪問權限
對於class的權限修飾只能夠用public和default(缺省)
public類能夠在任意地方被訪問
default類只能夠被同一個包內部的類訪問
MVC是經常使用的設計模式之一,將整個程序分爲三個層次:視圖模型層,控制器層,與數據模型層。這種將程序輸入輸出、數據處理,以及數據的展現分離開來的設計模式 使程序結構變的靈活並且清晰,同時也描述了程序各個對象間的通訊方式,下降了程序的耦合性