面向对象

⑴对象。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件,主要是用来描述某个事物的属性。

 


⑵对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 

 


⑶类。

具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

 

面向对象: 具有相同的属性值的实际存在的例子,也就是实例

 : 具有相同方法的属性的一类事物

 

 

函数定义方式: 使用def 函数() :

类的定义方式:使用class 类名:          #类名第一个字母应该要大写(约定俗成)

class Dog:
    变量  = 1000:
    变量2 = 'abc'
    变量3 = [(1,2),(3,4)]

#  上面这个式子中,变量,变量2,变量3,就是对象,描述了类的详细属性

 

如果想要调用类中的对象,也就是变量或者方法的话有两种方式

第一种:使用__dic__t方法 ,如果直接运行这个方法,可以查类中的所有的可调用的参数

# 使用.__dict__['变量']
class Dog:
    变量 = 1000
    变量2 = 'abc'
    变量3 =  [(1,2),(3,4)]
print(Dog.__dict__['变量'])
print(Dog.__dict__['变量2'])
print(Dog.__dict__['变量3'])

 

第二种 ,这种方式也是最常用的方式

#第二种是直接调用
#print(类名.类中的变量或者方法)

class Dog:
    变量 = 1000
    变量2 = 'abc'
    变量3  = [(1,2),(3,4)]
print(Dog.变量)
print(Dog.变量2)
print(Dog.变量3)

 

实例化的 过程

1 开辟一个新的空间

2 定义一个__init__(self)方法,这个方法默认有一个参数,如果有其他参数需要按照顺序一一对应

3 执行init 方法

4 类会将返回值自动返回给调用者

 

class Dog:   # 开一个空间用来存放Dog类
     def __init__(self,name,blood,ad,kind): #  定义一个init 方法
         self.name = name  
         self.hp = blood             # 执行init方法
         self.ad = ad
         self.kind = kind
 hei = Dog('小黑',300,20,'哈士奇')      # self返回值会自动返回给调用者print(hei.name)

 

 

我们不光可以在类外直接调用变量,还可以进行增删改

1  改

class Dog:   # 开一个空间用来存放Dog类
     def __init__(self,name,blood,ad,kind): #  定义一个init 方法
         self.name = name  
         self.hp = blood       #  这是在内部进行增加,赋值,
         self.ad = ad
         self.kind = kind
 hei = Dog('小黑',300,20,'哈士奇')

 print(hei.name)
hei.name = '不请自来'        # 这样可以在类的外部进行修改self参数

 

2  增

class Dog:   # 开一个空间用来存放Dog类
     def __init__(self,name,blood,ad,kind): #  定义一个init 方法
         self.name = name  
         self.hp = blood   
         self.ad = ad
         self.kind = kind
 hei = Dog('小黑',300,20,'哈士奇')
 print(hei.name)
hei['maxhp']    = 10          # 这几做到了在类的外部数值进行增加
print(hei.hp)     #

 

 3  删除

class Dog:   # 开一个空间用来存放Dog类
     def __init__(self,name,blood,ad,kind): #  定义一个init 方法
         self.name = name  
         self.hp = blood   
         self.ad = ad
         self.kind = kind
 hei = Dog('小黑',300,20,'哈士奇')
 print(hei.name)

del hei.hp     #这就做到了在外部进行删除,删除了hp的内容

 

类中的变量:

动态变量:  方法,函数(对象)

静态变量: 定义的普通变量比如  a  =1  ....

 

rom math import pi
print(pi)
class Circle:
    def __init__(self,r):
        self.r = r
    def area(self):
        return pi * self.r**2
    def perimeter(self):
        return 2*self.r*pi
c1 = Circle(5)
c2 = Circle(15)
print(c1.area())         
print(c1.perimeter()) 
print(c2.area())
print(c2.perimeter())
# 在类中把操作一般都写在方法内,
# 如果直接写在init方法内,
from math import pi
print(pi)
class Circle:
    def __init__(self,r):
        self.r = r
        return pi * self.r**2


c1 = Circle(5)
print(c1.area())    
c1 = Circle(10 )    #  这个只是修改了self中的r,而不会改变结果。在第一次调用的时候他已经被定义了,r就是一个一个键的值,如果改了这个值,对整个式子没有影响
print(c1.area())    #这两个的结果相同

 

posted @ 2019-03-25 15:31  msKk1  Views(187)  Comments(0Edit  收藏  举报