寫給給女朋友的算法入門 - 面向對象(一)

算法與數(shù)據(jù)結構共同構成了一個程序最基本的框架。

所以實現(xiàn)各種算法的時候,不可避免的要面對各種數(shù)據(jù)結構凳宙,而各種數(shù)據(jù)結構的具體實現(xiàn)当叭,又少不了面向對象(Object Oriented Programmin)茬故,即OOP。

不過面向對象到底是什么東西蚁鳖,又為什么要用到面向對象來編程磺芭,就涉及到面向對象的基本思想,這片文章暫且不對面向對象進行具體的展開醉箕,我們就來談一談钾腺,到底什么是對象

對象

我們來舉個例子讥裤,一個班級進行了一次考試放棒,我們要統(tǒng)計學生的成績表。

每一個學生坞琴,都有自己的名字成績哨查。那么每一個學生就是一個對象,這個對象包含了兩個屬性剧辐,分別是名字成績

// 比如我們有一個學生A
studentA;
// 學生A有自己的名字和成績兩個屬性
// 學生A名字叫"John"
studentA.name = "John";
// 學生A的成績是80分
studentA.score = 80;

所謂對象邮府,指的就是一個個具體的實例(Instance)荧关,比如這個例子中一個具體的學生就是一個對象。所以說褂傀,對象是實際忍啤、真實存在的東西。

每一個對象都是獨立的仙辟,區(qū)別于其他對象同波。即使有兩個學生的名字和成績都一模一樣,你也不能說這兩個學生就是同一個人叠国。

類是一種抽象的概念未檩,對于上面的例子,不管是學生A粟焊,B冤狡,C還是D,他們都屬于學生這個群體项棠,那么學生就是一個類悲雳。

class Student {
    // 學生的名字
    String name;
    // 學生的成績
    int score;
    
    // 每一個新的學生對象被創(chuàng)建的時候,這個函數(shù)就會執(zhí)行
    Student(String n, int s) {
        // this關鍵字代表這個學生本身
        this.name = n;
        this.score = s;
    }
}

以上就是學生這個類的結構香追,或者說學生類到底長的是什么樣子合瓢。

總而言之,類是一個抽象的描述透典,表現(xiàn)了擁有共同性質的某一類東西的結構晴楔。

而要創(chuàng)建一個類的實例(在Java里顿苇,用new 類名()來創(chuàng)建一個新的對象)

Student A = new Student("John", 88);

像這樣,我們就創(chuàng)建了一個新的學生對象A滥崩,學生A名叫“John”岖圈,成績是88分。

總結

只是描述了某類東西到底什么樣钙皮,而對象是這類東西一個個真實存在的實體蜂科。

題外

之前看到一個用python描述類與對象關系的評論,也是很有趣

class 類 (人)

instance 實例 (你,我,他)

你會有些屬性 (身高,年齡,體重)

你會有些技能 (吃飯,泡妞)

__init__ 方法的主要作用,就是初始化你的屬性短条,這些屬性在上帝初始化你的時候就要賦予給你导匣,比如zhangsan = Person(170, 50, 29),這時上帝就把你創(chuàng)造出來了茸时,也就是實例化了你贡定。

然后,你到底有哪些技能呢可都,這就看有沒有在類里面定義了缓待,如果有定義泡妞的技能,那么你就可以調用泡妞的技能來泡妞渠牲,大致就是這樣吧旋炒,看看下面的例子就更清楚了

class Person(object):
  # 這里就是初始化你將要創(chuàng)建的實例的屬性
    def __init__(self, hight, weight, age):
        self.hight = hight
        self.weight = weight
        self.age = age

  # 定義你將要創(chuàng)建的實例所有用的技能
    def paoniu(self):
        print('你擁有泡妞的技能')

    def eat(self):
        print('你可以吃')

# 開始創(chuàng)建實例
zhangsan = Person(170, 50, 29)
lisi = Person(175, 100, 30)

# 你的實例開始使用它的技能
zhangsan.paoniu()
lisi.eat()

# 輸出結果
>>> 你擁有泡妞的技能
>>> 你可以吃

這個表述是不是很妙(笑

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市签杈,隨后出現(xiàn)的幾起案子瘫镇,更是在濱河造成了極大的恐慌,老刑警劉巖答姥,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铣除,死亡現(xiàn)場離奇詭異,居然都是意外死亡鹦付,警方通過查閱死者的電腦和手機尚粘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睁壁,“玉大人背苦,你說我怎么就攤上這事∨嗣鳎” “怎么了行剂?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钳降。 經(jīng)常有香客問我厚宰,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任铲觉,我火速辦了婚禮澈蝙,結果婚禮上,老公的妹妹穿的比我還像新娘撵幽。我一直安慰自己灯荧,他們只是感情好,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布盐杂。 她就那樣靜靜地躺著逗载,像睡著了一般。 火紅的嫁衣襯著肌膚如雪链烈。 梳的紋絲不亂的頭發(fā)上厉斟,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音强衡,去河邊找鬼擦秽。 笑死,一個胖子當著我的面吹牛漩勤,可吹牛的內(nèi)容都是我干的感挥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼越败,長吁一口氣:“原來是場噩夢啊……” “哼链快!你這毒婦竟也來了?” 一聲冷哼從身側響起眉尸,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巨双,沒想到半個月后噪猾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡筑累,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年袱蜡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慢宗。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡坪蚁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镜沽,到底是詐尸還是另有隱情敏晤,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布缅茉,位于F島的核電站嘴脾,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜译打,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一耗拓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奏司,春花似錦乔询、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至麻献,卻和暖如春们妥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勉吻。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工监婶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人齿桃。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓惑惶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親短纵。 傳聞我的和親對象是個殘疾皇子带污,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容