首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python3基础复习:面向对象程序设计方法论和封装

python3基础复习:面向对象程序设计方法论和封装

原创
作者头像
李福春
发布2025-07-29 09:15:36
发布2025-07-29 09:15:36
1231
举报

面向对象程序设计方法论

程序中的数据和操作数据的函数是一个逻辑上的整体,称之为对象。

对象可以接收消息,解决问题的方法就是创建对象并向对象发出各种各样的消息。

通过发送消息,程序的多个对象可以协同工作,这样就能构造出复杂的系统并解决现实的问题。

概括

对象: 一组数据和处理数据的方法组成了对象;

类:行为相同的对象归纳成为类;

特性: 通过封装隐藏对象的内部细节;通过继承实现类的特性和泛化,通过多态实现基于对象类型的动态分派

封装

隐藏一切可以隐藏的实现细节,只向外界暴露简单的调用接口。

面向对象3步骤:

  1. 定义类;
  2. 创建对象;
  3. 给对象发消息;

学生类定义和使用

代码语言:javascript
复制
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("英语")

运行结果:

打印一个时钟

代码语言:javascript
复制
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()

运行结果:

计算二维平面两点之间的举例

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面向对象程序设计方法论
  • 概括
  • 封装
  • 学生类定义和使用
  • 打印一个时钟
  • 计算二维平面两点之间的举例
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档