面向对象学习总结

'一、面向对象基础概念、类和实例介绍'

'1.定义:面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。'
'Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。'
'2.设计思想:面向对象的设计思想是抽象出Class,根据Class创建Instance。'
'3.特点:数据封装、继承和多态是面向对象的三大特点'
'面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。'

class Student(object): #class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
'定义一个学生类'
def __init__(self,name,age,score): #__init__(构造方法)方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
self.__name=name #通过在变量名前面加两个下划线可以将市里的便利变成私有变量,外部无法访问,无法直接修改私有变量的值
self.age=age
self.__score=score
def print_info(self): #和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。
'数据封装'
print(self.__name,self.age,self.__score) #Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和Student类本身是关联起来的,我们称之为类的方法
def get_score(self): #方法是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;
print('{}\'s score is {}'.format(self.__name,self.__score))

def main():
stu1=Student('Tom',19,90) #类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;
stu2=Student('Lisa',18,87)
stu2.id=123 #和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同:
print(stu2.id)
stu1.print_info()
stu1.age=190
print(stu1.age)
# print(stu1._Studeng__name) #私有变量可以通过这种方式来访问但是不推荐
# a=stu1.__name
# print(a)
stu1.get_score()

if __name__ == '__main__':
main()
posted @ 2020-06-03 15:12  文州小生  阅读(182)  评论(0编辑  收藏  举报