物件導向和面向過程
面向過程是指一步一步地描述做事情的過程,強調的是事情的過程.
物件導向具體的是找到乙個物件,然後讓物件去做事情,強調的是這個物件.
物件導向是將複雜的問題簡單化,將事情的執行者變成指揮者,並且物件導向的思想是比較符合人類思考問題的思想,這種思想又被稱為懶人思想.
物件導向有三大特點:封裝,繼承,多型.
例如:我吃飯
面向過程的思想就是首先我先去買一些做飯的材料,然後做好飯,然後開始吃飯.
面對物件的思想就是我先去找乙個會做飯的人,然後讓這個人幫我去做飯.
類和物件
類是指一類抽象事物的集合,是來描述一類事物的.
物件是由類建立出來的具體的事物
類的建立形式: 系統關鍵字class 類名,要注意的是乙個檔案中只能有乙個由關鍵字public class修飾的類,並且乙個檔案中可以有多個類,乙個類一般會有成員變數和成員方法.
物件的建立形式: 類名 物件名稱 = new 類名();
並且可以通過該物件呼叫類中的成員變數,方式是 物件名稱.成員變數
建立乙個student類 ,然後在main函式中建立乙個該類的物件
public
class studentdemo
class student
}
例:建立乙個person類,並宣告兩個person類物件,並分析一下,倆物件在記憶體中的表現
類中的區域性變數和成員變數區域性變數和成員變數的區別
1.書寫的位置不同:區域性變數要解除安裝類的方法中或者方法的宣告中,成員變數要寫在類以內函式以外;
2.初始化不同的:區域性變數是必須初始化的,成員變數是可以不初始化的,當然成員變數在類中宣告的時候是可以先賦初值的;
3.記憶體存在的位置不同:區域性變數是存在棧記憶體中的,成員變數時存在堆記憶體中的
4.生命週期不同:區域性變數是隨著函式的壓棧而開始,隨著函式的彈棧而結束,成員變數是隨著物件的生成而開始,隨著物件的**而結束
public
class test01
}class person
}
注意:這裡結果輸出的是: 張三->18,為什麼會這樣?這是因為就近原則,name在取值的時候,先找方法中名字為name的值,再去類中找,所以為了避免這種情況,我們要在name前面加上關鍵字this,保證name的值是成員變數中的值
system.out
.println(this.name + "->" +age);
匿名物件匿名物件就是指在初始化的時候並未命名的物件
new person();//匿名物件
new person().sayhi;//匿名物件呼叫person類中的方法
new person().sayhi;//匿名物件呼叫person類中的方法
要注意的是,上面兩個方法中的匿名物件並不是同乙個物件,因為new關鍵字每走一次就會建立一篇記憶體區域.
物件導向中的封裝
封裝是指把屬性和方法的具體實現給隱蔽起來,提供公開訪問的方法
屬性的私有化就是其中一種封裝的表現形式
屬性的私有化就是將成員變數通過系統關鍵字private的修飾,使外界無法訪問到
class person
}
這樣在類以外就無法訪問到name了,但是如果我們想在類的外面訪問並修改私有化的屬性,就需要通過在類中寫一些藉口來進行修改了.
我們可以在類中寫乙個get 和set方法,來方便外界進行訪問和修改
class person
public string getname() //get方法來訪問name
public
void
setname(string name)//set方法來修改name
}
物件導向以及類和物件
四 類和類之間的關係 五 物件導向的分析過程 面向過程 強調過程步驟 物件導向 強調的是物件 分析過程 先有物件後有類 編碼過程 先有類後有物件 類 是具有相同屬性和行為的物件的集合 模板 定義了物件的屬性和方法 物件 根據類的屬性和行為建立的例項化 lei 通過類可以例項化多個該類的物件,每個物件...
Java物件導向 類,物件
oop,object oriented programming,物件導向程式設計 面向過程 以功能行為為主體的思想體現。物件導向 以執行功能的物件為主體的思想體現。物件導向特徵 封裝 隱藏內部實現,穩定外部介面。繼承 子類繼承父類成員,實現 復用。多型 不同子類對同一訊息作出不同的反映。具有相同屬性...
物件導向 類與物件
物件導向是相對於面向過程而言的,具體的來說,比如 我們想要吃一頓午飯,我們親自買菜,洗菜.切菜,炒菜,煮飯,這樣做成一桌菜就叫面向過程,也就是說整個過程 你都親自完成,而 物件導向呢?點外賣 點一桌子菜和公尺飯 不管他咋做出來的 面向過程程式設計 就是 我們想要實現乙個功能 直接去呼叫別人寫好的功能...