---恢復內容開始---
一:建立類和物件class f:
def bar(self):
print('bar')
def hello(self, name)
print('hello %s'%name)
fobj = f()
fobj.bar() > 'bar'
fobj.hello('tom') >'hello tom'
ps:類中的第乙個引數必須是self,類中定義的函式叫方法
二:物件導向三大特性--封裝
#三大特性:封裝、繼承、多型1.封裝:
#將內容封裝到某處
#從某處呼叫被封裝的內容
例1:將內容封裝到某處
解析:self是乙個形式引數,當執行 fobj = f('tom',18)時,self等於fobj設定私有例2:從某處呼叫封裝的內容
呼叫封裝的內容時,有兩種情況:
#通過物件直接呼叫
#通過間接self呼叫
fobj = f('tom',18)
fobj.name >>> tom 呼叫fobj物件的name屬性
fobj.age >>> 18 呼叫fobj物件的age屬性
class f:
def __init__(self,name,age)
self.name = name
self.age = age
def hello(self):
print(self.name)
print(self.age)
fobj = f('tom',18)
fobj.hello()
>>> tom
>>> 18
#類中所有雙下劃線開頭的名稱如__x都會在類定義時,自動變形成:_類名__x的形式class a:
__b = 123 # _a__b
def __init__(self):
self.__t = 10 # 變成: self._a__t
def __foo(self): # 變成: _a__foo,這是乙個私有方法
print(self.__t)
def test(self):
self.__foo() #只有在類內部,才能訪問私有變數和方法,即 呼叫 _a__foo
a = a()
#a._a__n 可以在外部直接被訪問到的
# self.__t、__foo(self) 這樣的私有變數和方法是直接在外部訪問的,但是可以通過__dict__來檢視私有的變數
封裝的意義:
1.封裝資料:隱藏起來對外提供操作該資料的介面,這樣可以確保操作屬性的安全性
2.封裝方法:目的是隔離複雜度,將複雜的實現過程進行隱藏,對外提供介面。atm機就是乙個很好的例子
例子如下:1.列印汽車有4個輪子
2.列印汽車是紅色的
3.列印汽車牌子是賓士
1.列印汽車有8個輪子
2.列印汽車是白色的
3.列印汽車牌子是寶馬
#函式式程式設計:
def carr(num):
print('汽車有%s個輪子'%num)
def color(col):
print('汽車是%s色' %col)
def brand(bran):
print('汽車牌子是%'%bran)
呼叫:carr(4)
color('紅色')
brand('賓士')
carr(8)color('白色')
brand('寶馬')
#物件導向程式設計---恢復內容結束---class f:
def __init__(self, carr, color, bran):
self.carr = carr
self.color = color
self.bran = bran
def carr(self):
print('汽車有%s個輪子'%self.carr)
def color(col):1
print('汽車是%s色' %self.color)
def brand(bran):
print('汽車牌子是%'%self.bran)
fobj1 = f(4,'紅色','賓士')
fobj1.carr()
fobj1.color()
fobj1.brand()
fobj2 = f(8,'白色','寶馬')
fobj1.carr()
fobj1.color()
fobj1.brand()
物件導向 封裝
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了 物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。面向過程 優點 效能比物件導向高,因為類呼叫時需要例項化,開銷比...
物件導向(封裝)
物件導向 封裝 封裝可以被認為是乙個保護屏障,防止該類的 和資料被外部類定義的 隨機訪問。如下 public class test public int getage public string getname public string getidnum public void setage in...
物件導向 封裝
car類 public class car 方法 public void salecar set 改屬性值。用了private之後,main方法只能呼叫,在car這個類裡才能修改private修飾的變數 傳入乙個double型別的引數 pr,main方法呼叫setprice方法,傳入pr的值,pr在...