
程序中的数据和操作数据的函数是一个逻辑上的整体,称之为对象。
对象可以接收消息,解决问题的方法就是创建对象并向对象发出各种各样的消息。
通过发送消息,程序的多个对象可以协同工作,这样就能构造出复杂的系统并解决现实的问题。
对象: 一组数据和处理数据的方法组成了对象;
类:行为相同的对象归纳成为类;
特性: 通过封装隐藏对象的内部细节;通过继承实现类的特性和泛化,通过多态实现基于对象类型的动态分派;
隐藏一切可以隐藏的实现细节,只向外界暴露简单的调用接口。
面向对象3步骤:
class Student:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def say(self):
print(f"""我的名字叫{self.name},我的年龄是{self.age},我的性别是:{self.sex}""")
def study(self,courseName):
print(f"""我是{self.name},我爱学习{courseName}""")
student1 = Student("李四",30,"男")
student2 = Student("李美",18,"女")
print(f"""student1: {student1} , student2: {student1}""")
print(f"""student1 type is {type(student1)}\n student2 type is {type(student2)}""")
print(f"""student1 id is {id(student1)} \n student2 id is {id(student2)}""")
print(f"""student1 hex(id) is : {hex(id(student1))}""")
student1.say()
student1.study("语文")
print("=======")
student1.name="李四V2"
student1.say()
student1.study("数学")
print("=======")
student2.say()
student2.study("英语")运行结果:

import time
class Clock:
def __init__(self,h,m,s):
self.h = h
self.m = m
self.s = s
def run(self):
self.s+=1
if self.s ==60:
self.s = 0
self.m += 1
if self.m == 60:
self.m = 0
self.h +=1
if self.h ==24:
self.h=0
def show(self):
print(f"""{self.h:0>2d}:{self.m:0>2d}:{self.s:0>2d}""")
clock = Clock(23,59,59)
while True:
clock.show()
time.sleep(1)
clock.run()运行结果:

class Point:
def __init__(self,x,y):
self.x = x
self.y = y
def distance(self,other):
return ( (self.x - other.x)**2 + (self.y + other.y)**2 )**0.5
def show(self):
print(f"""x= {self.x} ,y={self.y}""")
p1 = Point(1,1)
p2 = Point(3,3)
p1.show()
p2.show()
print(f"""p1 to p2 instance is : {p1.distance(p2)}""")
通过简单讲述面向对象的编程方法论。
类抽象了 数据和数据行为, 对象是类的一个具体运行实例。
解决问题是通过给对象发送消息来解决,复杂问题通过多对象的协同发送消息来解决问题。
然后归纳出面向对象的5个关键词。 对象,类,封装,继承,多态。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。