python之面向對象學習0

面向過程和麪向對象的區別

面向對象是相對於面向過程而言的,在早期編程中,比如實現1+2+3=6.
通過設計一個簡單的算法就能實現。
隨着計算機技術的不斷提高,計算機被用於解決越來越複雜的問題。一切事物皆對象,通過面向對象的方式,將現實世界的事物抽象成對象,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。通過面向對象的方法,更利於用人理解的方式對複雜系統進行分析、設計與編程。

對象的含義是指具體的某一個事物,即在現實生活中能夠看得見摸得着的事物。在面向對象程序設計中,對象所指的是計算機系統中的某一個成分。在面向對象程序設計中,對象包含兩個含義,其中一個是數據,另外一個是動作。對象則是數據和動作的結合體。對象不僅能夠進行操作,同時還能夠及時記錄下操作結果。

比如人類的描述:
屬性:姓名,身高,體重,膚色,性別,等等
行爲:十月懷胎,喫飯,上廁所等等
符合上述描述的,可以稱之爲類,類:就是類別,類別,一類事物的統稱,抽象概念,類並不存在。
而對象則是:類的實例(實實在在的案例)

上述描述說明在面向對象編程時候需要先創建類,再對類進行實例化生成對象。

python中如何創建類和對象

"""
    python中定義一個類,使用class關鍵字
    class 類名稱       類的命名規範:大駝峯法
    潛規則
"""
# 直接這樣定義一個類
# class User:

class User(object):

    # 定義類的屬性(靜態的特徵)
    # 覆蓋(重新)__init__方法
    def __init__(self):
        #類的成員變量
        self.name = "波波哥"
        self.age = "20"
        self.gender = "男"
        self.email = "[email protected]"

	#定義了類的屬性,還可以定義類的行爲
	 def study(self):
        print("study python")
        print("閉門之中,請勿打擾!")
    
    
    def eat(self,food):
        print("我的名字是{},今年{},愛喫{}".format(self.name,self.age,food))

由上,一個簡單的類就創建好了。下面就對類進行實例化。

if __name__ == '__main__':
    #創建對象
    u1 = People()
    
    '''   
        ##調用對象的屬性
        print(u1.name)
        print(u1.age)
        print(u1.gender)
        print(u1.email)
        
        
        #調用對象的方法
        u1.study()
        u1.eat("油潑辣子面")
    '''
    u1.name = "柳下惠"    
    u1.age = 25
    u1.gender = "男"
    
    u1.study()
    u1.eat("饅頭")

上面通過類生成對象u1,調用類中的屬性和方法,也可以修改類中的屬性。
上述代碼執行的結果是,注意觀察未註釋部分:
在這裏插入圖片描述
上面可以看到,是先對類的屬性進行了固定,下面再對類的屬性進行修改,下面採用生成對象時候傳入參數而創建對象。

# -*- coding: utf-8 -*-
class Cat:
        
    def __init__(self,name,age,color,gender):
        self.name = name
        self.age = age
        self.color = color
        self.gender = gender
        
    
    def sperk(self):
        print("喵喵喵,嗷嗷嗷!!我是{}".format(self.name))
    
    
if __name__ == '__main__':
    c1 = Cat("建宏",20,"黑色","公")
    print(c1.name)
    c1.sperk()

代碼執行結果,將創建對象時候傳入的參數來生成對象。
在這裏插入圖片描述

在創建類的時候要注意什麼纔是這個類唯一的屬性?
比如,圓類的屬性應該是什麼呢?我覺得屬性是半徑R比較合適,方法可以寫輸出圓的周長,面積等。
可以寫爲如下:

# -*- coding: utf-8 -*-
import math


class Circle:
    
    
    def __init__(self,r):
        self.r = r
    
    
    def get_area(self):
        return self.r*self.r*math.pi
    
    
    
    def get_cal(self):
        return 2*self.r*math.pi
    

if __name__ == '__main__':
    radius = float(input("請輸入圓的半徑"))#還可以加上對輸入的值進行判斷是否大於0.
    r1 = Circle(radius)
    print("該圓的周長是{:.3f}".format(r1.get_cal()))
    print("該圓的面積是{:.3f}".format(r1.get_area()))#{:.3f}進行格式化輸出,保留三位小數

執行結果。
在這裏插入圖片描述
今天的面向對象分享就到這裏,你可以嘗試着練習下面這些題目:

	1、定義一個圓類(Circle),求圓的面積和周長
	2、定義一個三角形類(Strange),屬性是三邊的長度,求三角形的面積和周長
	3.創建一個學員類(Student),並設計三個字段用於表示學生的成績
		(語文、數學、英語);然後定義一個列表list表示一個班
		的學生(10人),依次輸入每個學生的信息和成績,輸入
		的同時將學員的每科成績劃分等級(100-90:A 89-80:
		B 79-70:C 69-60:D 60以下:E)最後輸出所有學員的
		信息
	4.編一個關於求多個某門功課總分和平均分的程序。
		1.每個學生信息包括姓名和某門功課成績。
		2.假設5個學生。
		3.類和對象的處理要合理
	5.設計一個遊戲角色類
		字段:角色名、血量、魔法、狀態
		方法:釋放技能 被傷害
		要求:設計要合理

答案可參考點這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章