python-面向对象名词解析(类、实例、属性、方法、对象)

面向对象的概念总结

类:

一系列对象的特征与技能的抽象

  如何理解:我们把现实生活中的物体可以抽象成一个个对象,如学校中的学生:

              1、归类——我们可以把学生都归成一个学生类。

       2、抽象出特征——学生有什么特点?(学校、姓名、性别、年龄)

          3、抽象出技能——学生有什么技能?(学习、吃饭、打球、睡觉)

  A、当我们把学生抽象成一个类的时候,就可以通过构造类来生成一个个的学生:

  B、注意:在现实世界当中,我们通过对象来抽象出类。

        在程序中,我们要先定义类,才能通过类来生成对象。

# 1、先从现实世界抽象定义类
# 2、后再通过类产生一个个对象
class Student:
    # 相似特征
    school = 'luffycity'

    # 相似技能
    def lean(self):
        print('is leaning')

    def eat(self):
        print('is eatting')

    def sleep(self):
        print('is sleeping')


# 2、后通过类产生对象
stu1 = Student()  # 实例化一个学生对象stu1
stu2 = Student()
stu3 = Student()
print(stu1) 
print(stu2)
print(stu3)
View Code

类的使用:

  增删改查:

 

#
Student.local='北京' # 增加类
#
del Student.local # 删除类
#
Student.school='Luffycity' # 改类的属性
#
print(Student.__dict__) #查所有
print(Student.school) #查单个
View Code

 

 

上面的情况是生成三个相同属性的对象,

当我们要生成三个不同属性的情况就要用到__init__方法了

 

实例:

self :实例本身,在实例化时python解析器会自动把实例本身通过self参数传入。

  如果我们要实例化多个对象的时候,可以通过__init__()方法,把每个对象独有的属性通过self参数传入:

class LuffyStudent:
    #相识特征
    school = 'luffycity'
    #相识技能
    def __init__(self,name,sex,age):
        self.Name = name
        self.Sex=sex
        self.Age=age
    def lean(self):
        print('is leaning')
    def eat(self):
        print('is eatting')

stu1 = LuffyStudent('小何','',22)
stu2 = LuffyStudent('小李','',23)
stu3 = LuffyStudent('小红','',22)

print(stu1.Name)
View Code

属性:

对象所共有的特征称为属性。

   如上面代码:school 就是一个共有的特征了。

方法:

对象所有的技能称为方法。

   如上面代码:lean、eat等共有的技能称方法。

对象:

  如上面代码,通过生成类,实例化后就产生一个对象

  stu1=School()   # 这个称为对象

 

#对象的操作
#
stu1.local='北京' # 增加类
#
del stu1.local # 删除类
#
stu1.school='Luffycity' # 改类的属性
#
print(stu1.__dict__) #查所有
print(stu1.school) #查单个
View Code

 

补充说明:

  1、所站的角度不同,定义的类截然不同

  2、现实中的类,并不完全等于程序中的类,程序中可能会把类拆分。

  3、程序中可以有现实中不存在的类——策略类。

 

 

 

posted @ 2018-05-04 23:26  OYxing  阅读(748)  评论(0编辑  收藏  举报