12.1面向对象编程的介绍(oop):封装,继承,多态,访问私有属性
2024-09-07 07:57:15
#封装:内部对数据封装。作用:1、保护数据,防止被随意修改;2、使外部的程序不需要关注内部的构造;只需要提供接口给外部进行访问即可。
#继承:一个类就相当于一个模板。通过父类,子类的方式实现不同角色的共同点和不同点的最小代码量。
#多态:多种状态。一个接口,多种实现。一个基类中派生出了不同的子类,且每个子类在继承了同样的方法的同时又对父类的方法做了不同的实现,这就是
同一个事物表现出的多种形态
例子:
class Dog(object):
def __init__(self,name,type): #构造函数,构造方法=初始化方法。
self.NAME = name #在类里是全局生效,叫属性或成员变量(严格来说不是公有属性)
self.TYPE = type
self.__heart = "Normal" #私有属性,外部不能传参数进来。
def sayhi(self): #类的方法;动态属性
print("hello, I am a dog, My name is",self.NAME)
print("My type is",self.TYPE)
def eat(self,food):
print("%s is eating %s" %(self.NAME,food))
def get_heart(self): #对外提供只读访问接口。
return self.__heart d = Dog("小汪1","京巴") #实例化后产生的对象,叫实例。
d2 = Dog("小汪2","哈巴")
print(d.NAME)
d.sayhi()
print(d.get_heart())
print(d._Dog__heart) #强制访问私有属性。 print(d2.NAME)
d2.sayhi() #可以从初始化方法后的参数里传入
d2.eat("rice") #可以直接传入参数
最新文章
- IOS 序列化与反序列化NSKeyedUnarchiver
- jQuery的.html(),.text()和.val()的概述及使用
- ajax 删除一条数据
- 借教室(codevs 1217)
- mysql cluster (mysql 集群)安装配置方案(转)
- POJ 3461 Oulipo KMP
- 滑动到底部或顶部响应的ScrollView实现
- request.getAttribute( ";result";);和request.setAttribute(";result";,username);
- 浅谈DevExpress<;二>;:设计一个完整界面(1)
- [Unity]C#中 将XML和实体类之间进行相互转换的工具类
- 20175221 《Java程序设计》迭代和JDB(课下作业,选做):
- servlet篇 之 跳转问题
- deemo
- Python h5py
- 062 SparkStream内部原理
- Linux下配置环境变量—— .bashrc 和 /etc/profile
- python调用win32com.client的GetObject查找进程信息及服务信息
- Docker registry 私有仓库镜像查询、删除、上传、下载 shell
- weblogica 目录结构 简单介绍 创建domain domain所在目录
- c#网络加密传输