第十九节课:面向对象的基础

  1 # 本节课大纲:
  2 '''
  3 1- 类与实例
  4 2- 实例属性与静态属性
  5 3- 实例方法与静态方法
  6 面向对象的语言 VS 面向对象的设计
  7 @面向对象的设计:是一种设计思路
  8 @面向对象的语言:提供对面向对象设计的语言支持
  9 @非面向对象的语言也能实现面向对象的设计思路
 10 '''
 11 
 12 # 1- 类与实例
 13 '''
 14 类:是一类具有相同特征的事物的统称
 15 显示不存在--是一种抽象的概念--人类,鸟类
 16 '''
 17 #python中类的定义:
 18 # class ClassName:
 19 #     'class documentation string'
 20 #     class_suite
 21 # #关键字 class,类名(通常首字母大写)
 22 # class Tiger:
 23 #     classname='tiger'
 24 # #属性(attribute):classname是一个属性.定义类的例子:
 25 # class Person:   #注意,类名首字母一定要大写
 26 #     pass        #到此就定义好了一个类
 27 '''
 28 实例:在这个类里面具体存在的个体
 29      实例是类的具体实例化体现
 30 注意:对象的概念就更大了,类和实例都包含在对象里面,一切皆可为对象
 31 '''
 32 #python中实例的创建:
 33 # python类:
 34 # class Tiger:
 35 #     classname='tiger'
 36 # # 实例化:
 37 # t1=Tiger()
 38 # # 实例化之后可以访问其属性:
 39 # t1.classname
 40 # 怎么创建实例?很简单:类名()  如:
 41 class Person:  #创建了一个类
 42     pass
 43 p1=Person()    #将类实例化,为了方便后期操作,通常用一个变量去接收实例化的类
 44 
 45 # 2- 属性:
 46 ''' 
 47 类:类的属性包含特征和行为
 48     1- 特征--俗称
 49         术语--属性
 50         本质--变量
 51     2- 行为--俗称
 52         术语--方法
 53         本质--函数
 54 属性:
 55     1-概念:本质是类里面的一个变量.俗称特征
 56     2-静态属性--这个属性是每个实例都有的,如nickname:人类
 57     3-实例属性--不同了类有不同的属性,这个叫实例属性,如张三李四王五,身高体重哪些
 58 '''
 59 # *1 创建实例:
 60 # class Person:  #创建了一个类
 61 #     name='人类'#类属性,这个类所有的实例都是一样的--共有的
 62 #     #对于实例来说,有些实例的不同实例是不一样的,实例属性属于实例,如p1是20岁,p2是30岁
 63 # p1=Person()    #将类实例化,为了方便后期操作,通常用一个变量去接收实例化的类
 64 # print(p1.name)  #调用方法:实例.属性
 65 # print(Person.name)#调用方法:类.属性
 66 # *2 静态(类)属性  调用方法: 实例.属性 ; 类.属性(上一行属于实例.属性)
 67 # class Person:  #创建了一个类
 68 #     name='人类'
 69 #     def __init__(self):  #初始化方法,创建实例会自动调用
 70 #         print('我执行啦!',self)  #打印得:我执行啦! <__main__.Person object at 0x0000014B166F9588>
 71 # p1=Person()#这里创建了p1,打印出来和定义里面的self一致,说明实例化哪个东西,哪个东西就是self本身
 72 # p2=Person()#这里创建了p2,打印出来的地址不一样,这个地址在:0x000001E335339518
 73 # # print(p1,p2) #打印得:<__main__.Person object at 0x0000014B166F9588>
 74 # class Person:  #创建了一个类
 75 #     nickname='人类'
 76 #     def __init__(self,name1,age1):  #初始化方法,创建实例会自动调用.
 77 #         self.name=name1  #注意,self作用特别大,当是用p1接收实例化,self代表p1,如果是用p2实例化,self代表p2
 78 #         self.age=age1    #这两个步骤完成了传实参
 79 # p1=Person('tom',23)
 80 # p2=Person('升职加薪',66)
 81 # # 2- 实例属性
 82 # print(p1.name)         #打印得:tom
 83 # print(p2.name,p2.age)  #打印得:升职加薪 66
 84 # # print(p1.nickname)
 85 
 86 # 3- 对象的方法:
 87 ''' 
 88 *1概念--通过定义在类里面的函数
 89 *2实例方法--每个具体实例相关的方法---本质是一个函数
 90 *3静态方法--共有的方法,与每个具体实例无关---本质是一个函数
 91 '''
 92 class Person:
 93     Nickname='人类'
 94     def __init__(self,iname,iage,iweight):
 95         self.name=iname
 96         self.age=iage
 97         self.weight=iweight
 98     def eat(self):      #创建一个实例方法
 99         self.weight +=10
100         print(str(self.name)+'今年有'+str(self.age)+'岁了,他现在在吃饭,现在有'+str(self.weight)+'斤了')  #这里是为了调用
101 p1=Person('张三',23,120)
102 p2=Person('李四',24,130)
103 print(p1.Nickname)
104 p1.eat()#如果是p1调用,打印得:张三今年有23岁了,他现在在吃饭,现在有130斤了
105 p2.eat()#如果是p2调用,打印得:李四今年有24岁了,他现在在吃饭,现在有140斤了
106 # ***谁调用就执行谁,这就是实例化方法
原文地址:https://www.cnblogs.com/66-liu/p/14059281.html