面对对象:
说是当下的程序员都听过”面向对象编程“,那么到底什么是面向对象编程呢?
官方的不说,通俗那就是,程序中的数据和操作数据的函数是一个逻辑上的整体,我们称之为“对象”。
类与对象:
类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象.,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。
定义类:(关键字class)
代码如下:
class CCN(object):
def __init__(self): #初始化必须有,初始化自己
self.a=10000
if __name__='__main__':
CCN=CCN() #这里的括号代表上面的__init__,初始化的意思
print(CCN.a)
class CCN(object):
def __init__='__main__':
self.a=100
if __name__='__main__':
CCN=CCN()
CCN.a=500 #动态修改
print(CCN.a)
##此时,a的值就被修改为500
CCN.sun=666666 #动态的绑定
print(CCN.sun)
创建对象:
当类被创建好,就可以创建对象并给对象发消息
def main():
# 创建学生对象并指定姓名和年龄
stu1 = Student('骆昊', 38)
# 给对象发study消息
stu1.study('Python程序设计')
# 给对象发watch_av消息
stu1.watch_movie()
stu2 = Student('王大锤', 15)
stu2.study('思想品德')
stu2.watch_movie()
if __name__ == '__main__':
main()
访问可见性问题:
在很多面向对象编程语言中,我们通常会将对象的属性设置为私有的(private)或受保护的(protected),简单的说就是不允许外界访问,而对象的方法通常都是公开的(public),因为公开的方法就是对象能够接受的消息。在Python中,属性和方法的访问权限只有两种,也就是公开的和私有的。如果希望属性是私有的,可以在名字前面加来个下划线,表示属性被私有化。
例如;
class student():
def __init__(self):
self.__a=100
if __name__='__main__':
student=student()
print(student.a) ##此时不会不出结果,说明私有的属性不能被调用
但在python中我们不推广用私有变量,如果我们想要突出变量的重要性,我们可以这样,就能避免私有变量的弊端。代码如下:
class student(object):
def __init__(self):
self._a=100
def A(self):
print(self.a)
print(self.B())
def B(self):
print('Holle CCN')
if __name__='__main__':
name=student()
print(name.B())
print(name.a)
加油??