day6物件導向(上)

2021-10-24 01:57:30 字數 2518 閱讀 5045

理解:

1,比如要吃飯,找了乙個保姆做飯(物件)

2,保姆就是乙個物件,用做飯的技能(方法)做飯,你說你想吃啥(引數)

3,返回給你你說的飯

4,吃

面向過程:強調每乙個功能的步驟。

物件導向:強調的是物件,然後由物件去呼叫功能

物件:就是該類事物的具體體現

位置:類中,方法外

初始化值:成員變數有初始化值

和方法一樣,去掉了static關鍵字
public

class

student

public

void

eat(

)}

測試類

public

class

studenttest

}

乙個物件的記憶體圖**

兩個物件的記憶體圖

兩個引用指向同乙個堆記憶體

a,在類中的位置不同

成員變數:類中,方法外

區域性:在方法或者方法的宣告上(形參)

b,在記憶體的位置不同

成員變數:堆記憶體

區域性變數:棧記憶體

c,生命週期不同

成員變數:隨著物件建立存在,物件消失也消失

區域性變數:隨著方法的呼叫存在,方法的呼叫完畢消失

d,初始化的值不同

成員:有預設值

區域性:沒有預設值,必須先定義

定義:

是乙個許可權修飾符

被private修飾的成員只能在本類的方法中訪問

把不想被外部直接訪問的成員變數隱藏
代表所在類的物件引用

方法被哪個物件呼叫,this就代表誰

作用:解決成員變數被隱藏的問題

public

class

student

public

void

eat(

)public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

}

作用:

用於給物件的資料進行初始化

格式: 方法名和類名相同

沒有返回值,不需要使用void

沒有具體的返回值

注意事項:

a,如果沒有給出構造方法,系統會給出乙個預設無引數數構造方法

b,給定了構造方法,系統不再提供預設的構造方法

public

class

student

public

student

(string name)

public

student

(int age)

public

student

(string name,

int age)

public

void

show()

}

public

class

studenttest

}

package day6;

public

class

student

//有參

public

student

(string name,

int age)

//成員方法

public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

}

public

class

studenttest

}

Day6 物件導向 介面

1 抽象類 抽象的特點 1,抽象方法沒有方法體,必須由抽象關鍵字所修飾。2,抽象方法一定存在於抽象類中,必須由抽象關鍵字所修飾。3,抽象類不可以例項化。因為呼叫抽象方法沒意義。4,子類必須覆蓋抽象類的所有抽象方法後,子類就可以例項化。否則該子類還是抽象類。抽象類的常見問題 1,抽象類一定是父類嗎?是...

day 6 物件導向的思想

物件導向的思想 特點是是一種更符合我們思想習慣的思想 懶人思想 可以將複雜的事情簡單化 將我們從執行者變成了指揮者 角色發生了轉換 物件導向的特徵 封裝 encapsulation 繼承 inheritance 多型 polymorphism 建立物件使用。裡面有成員變數和區域性變數的區分。a 在類...

Day6上 括號匹配專項

滑稽的題 t1 include include include include include include include using namespace std intn inta,b,x intmain if x 10 else if x 20 if a 3 b printf no n re...