国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從面向過程到面向?qū)ο?/h1>

這篇具有很好參考價值的文章主要介紹了從面向過程到面向?qū)ο?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

1、抽象

2、UML類圖

3、類定義

4、類成員函數(shù)

(1)構(gòu)造函數(shù)(constructor)

(2)析構(gòu)函數(shù)(destructor)

5、對象實現(xiàn)

6、封裝

7、getter、setter方法


為什么要從面向過程轉(zhuǎn)到面向?qū)ο螅?/p>

從面向過程到面向?qū)ο? referrerpolicy=

隨著計算機發(fā)展,問題場景越來越復雜,我們很難再描述每一個可能的過程

轉(zhuǎn)而描述每一個實體(屬性+行為),這就是面向?qū)ο蟮暮诵乃枷?/p>

1、抽象

識別出各個實體及其屬性和行為,類就是對某一事物的抽象

下面以游戲為例來說明

從面向過程到面向?qū)ο? referrerpolicy=

從面向過程到面向?qū)ο? referrerpolicy=

屬性:ID,段位,英雄,戰(zhàn)力,場次...

行為:移動,放技能,普攻,回城,吃血包...

從面向過程到面向?qū)ο? referrerpolicy=

屬性:名稱,傷害,效果,價格,數(shù)量...

行為:購買,出售,合成...

OK,至此我們清楚了什么是抽象,以及區(qū)分類的屬性和行為。

2、UML類圖

用來規(guī)范描述一個事物的屬性和行為

以上面的 “泣血之刃” 為例

從面向過程到面向?qū)ο? referrerpolicy=

?

數(shù)據(jù)成員屬性后需要加上數(shù)據(jù)類型

屬性、行為前的 + 和 -

+表示為public //公有成員

-表示為private //私有成員

3、類定義

定義一個類的成員變量和成員函數(shù)(語句同樣以 ; 結(jié)尾)

類通過實例化成為真實存在的對象(存在于內(nèi)存中)

我們使用關鍵字class來進行類定義

4、類成員函數(shù)

(1)構(gòu)造函數(shù)(constructor)

對象實例化時,在分配的空間上構(gòu)造對象,目的就是初始化對象

① 創(chuàng)建對象時自動調(diào)用

② 有默認的構(gòu)造函數(shù),并不是必須定義

③ 默認構(gòu)造函數(shù)是無參的,也可以定義有參的

④ 可以有多個重載

⑤ 不可以有返回值

(2)析構(gòu)函數(shù)(destructor)

對象生命期結(jié)束時,回收空間前,完成對象清理工作

① 一定無參數(shù)

② 不可以有返回值

③ 函數(shù)前有~(算是一個標志)

此外,構(gòu)造函數(shù)和析構(gòu)函數(shù)的函數(shù)名都必須和類名相同

5、對象實現(xiàn)

#include <iostream>
using namespace std;

class Circle {
public:
	float radius; //這里的radius是類的數(shù)據(jù)成員
	Circle(float radius)  //有參構(gòu)造,括號里的radius為形式參數(shù)
	{
		this->radius = radius;  //this指針在類定義內(nèi)部使用,指向當前對象
    }
float getS() {
	return 3.14 * radius* radius;
    }
};

int main()
{
	Circle Circle1(1.2); //實例化對象,一個圓的半徑為1.2
	cout << Circle1.getS(); //訪問對象成員,調(diào)用求面積的函數(shù)并輸出結(jié)果
}

從面向過程到面向?qū)ο? referrerpolicy=

?

?

6、封裝

將類的一些成員變量或方法藏起來,不允許外界直接操作(控制類成員在外部的可見性)

訪問控制屬性:

public:外部可通過 對象.名字 訪問

protected

private:外部不可直接通過 對象.名字 訪問

7、getter、setter方法

為某些私有成員提供外部讀寫方法,一般都是public

getter函數(shù)格式:

類型 get_XXX() const{

return XXX;

}

(通常設置為const函數(shù),無參且有返回值)

setter函數(shù)格式:

void set_XXX(){

this->XXX=XXX;

}

(通常接受const參數(shù),有參且無返回值)

來看例子,代碼有點長,各位好好理解

#include <iostream>
using namespace std;

class Book {
private:
	string name;
	int count;
public:
	Book(string name) {
		count = 0;
		this->name = name;
	}
	int get_count() const {
		return count;
	}
	string get_name() const {
		return name;
	}
	void set_count(int count) {
		if (count < 0) {
			count = 0;
		}
		this->count = count;
	}
	void set_name(const string& name) {
		this->name = name;
	}
	void add_count() {
		count++;
	}
};
int main() {
 Book book1("高等數(shù)學");
		cout << book1.get_name() << "庫存: " << book1.get_count() << endl;
		book1.add_count();
		cout << book1.get_name() << "庫存: " << book1.get_count() << endl;
	}

從面向過程到面向?qū)ο? referrerpolicy=

8、this指針

在類成員函數(shù)定義內(nèi)部使用,指向當前對象

利用this指針編寫Student的有參構(gòu)造函數(shù),避免變量名覆蓋問題:

Student(int id,string name,int age,float score){
this->id = id;  //由于形參名把數(shù)據(jù)成員名覆蓋掉了,所以用this指針表明當前對象的數(shù)據(jù)成員
this->name = name;  
this->age = age;
this->score = score;
}

也可使用其他方式避免同名覆蓋,如下?

Student(int _id, string _name, int_age, float _score){
id = _id;
name =_name;
age = _age;
score = score;
}

?這樣就可以不用this指針

OK,今天內(nèi)容到此為止,你學廢了嗎?文章來源地址http://www.zghlxwxcb.cn/news/detail-435742.html

到了這里,關于從面向過程到面向?qū)ο蟮奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包