【Day2】3.面向对象编程
2024-09-05 10:10:07
课程目标
1. 面向对象编程
2. 类和实例
3. 访问限制
4. 实例属性和类属性
面向对象编程
• 面向对象编程是一种程序设计思想
• 面向对象把类和对象作为程序的基本单元
• 对象包含属性和方法
• 面向过程编程为:函数的调用集合
• 面向对象编程为:对象之间传递信息的集合
• 处处皆对象
类和实例
• 类可以理解为图纸或者模版
• 实例是根据类的图纸或者模版创建出来的一个一个对象
• 类定义class,关键字self
• 类的初始化函数__init__
• 面向对象三大特点:继承,封装,多态
• 属性和方法
访问限制
• 通过”__”两个下划线可以修饰私有变量
• 通过编写get和set方法来修改对象的属性
• Python中没有真正的私有属性和私有方法
实例属性和实例方法
• 实例属性
class Student(object):
def __init__(self, name):
self.name = name
s = Student('Bob')
s.score = 90
• 类属性
class Student(object):
name = 'Student'
print(Student.name)
class Student(object):
total = 20 #类属性 公有的
#方法 self指向创建的实例本身 __name 私有属性
def __init__(self,name,score):
self.__name = name
self.__score = score
def print_score(self):
print('%s: %s' % (self.__name,self.__score))
def get_grade(self):
if(self.__score >= 90):
return 'A'
elif(self.__score >=60):
return 'B'
else:
return 'C'
def set_score(self,score):
if 0<=score<=100:
self.__score=score
else:
raise ValueError('分数请大于0小于100')
self.__score = score
def get_score(self):
return self.__score
# 实例化对象
xiaohong = Student('xiaohong',98)
xiaobai = Student('xiaobai',81)
xiaolv = Student('xiaolv',55) # print(xiaohong.name,xiaohong.score)
# print(xiaobai.name,xiaobai.score)
print(xiaolv.set_score(80))
print(xiaolv.get_score())
print(Student.total)
• 括号中object表示继承自哪个类
• 类外面的是函数,类里面的是方法
• self表示类本身
• 两个相同的实例对象会有两个内存空间,占据的内存空间也可能不同
• python没有真正的私有变量,把私有变量改成名称__Student__name
小结
• 面向过程和面向对象编程
• 类由属性和方法组成
• 对象是类的实例化
• 属性可以封装,并声明私有属性
• 类属性和实例属性
最新文章
- PHP跨域form提交
- ConcurrentHashMap内存泄漏问题
- jquery ajax(实现单独提交某个form)
- 咱小谈CLR
- 初识Docker和Windows Server容器
- mac下开发IOS代码管理
- git svn clone时间估算
- 资料,来自HTML5前端开发学习⑤群
- poj 2594 传递闭包+最大路径覆盖
- 打造高性能Java应用需掌握的5大知识
- CP2102模块介绍(USB转uart)
- Http协议、线程、线程池
- 创建range分区
- Standard Numeric Format Strings
- 简单计算器(Android)
- [Android学习笔记]jackson库的使用
- CSharp笔记>;>;>;多语言,注册
- 如何只在IE上加载CSS样式表
- 【代码审计】XYHCMS V3.5任意文件删除漏洞分析
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例一)