HM101 三类权限
HM101 三类权限
来源: 第 101 集 类和对象-封装-访问权限
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
封装的第二层含义是:设计类时把成员放到不同权限下管理。三种访问权限是:
public(公共):类内可以访问,类外也可以访问。protected(保护):类内可以访问,类外不可以访问。以后出现父子继承时,子类可以访问父类的保护成员(例如父亲的汽车,儿子打声招呼就能开)。private(私有):类内可以访问,类外不可以访问。子类也不能访问父类的私有成员(例如父亲的银行卡密码)。
现阶段保护与私有在“类外能不能访问”上相同,差别主要体现在子类。成员函数本身也有权限:写成私有后,类外不能调用这个函数;写成公共则可以。无论函数本身是公共还是私有,函数体都在类内,因此函数体里可以读写全部三种属性。
请设计人员类 Person:公共成员 mName,保护成员 mCar,私有成员 mPassword。再提供公共成员函数,在类内给三个属性赋值并打印。处理 \(q\) 次访问:
1 name car pwd:在类内给三属性赋值并输出IN name car pwd2 name:在类外修改姓名,输出OUT name3:试图在类外改汽车,输出DENIED4:试图在类外改密码,输出DENIED5 name car pwd:先在类内赋值,再由子类读取汽车,输出SON_CAR car6:子类试图读取密码,输出DENIED7:类外调用私有成员函数,输出DENIED
输入格式
第一行一个整数 \(q\)(\(1 \le q \le 1000\))。
接下来 \(q\) 行,格式见上。name、car 不含空白,长度 \(1\sim 20\);pwd 为不超过 \(10^9\) 的整数。
输出格式
每行一次访问结果,行末换行。
样例
输入 #1
5
1 Zhang Tractor 123456
2 Li
3
4
5 Zhang Tractor 123456
输出 #1
IN Zhang Tractor 123456
OUT Li
DENIED
DENIED
SON_CAR Tractor
输入 #2
2
6
7
输出 #2
DENIED
DENIED
说明
- 类内(成员函数体)可以访问公共、保护、私有全部属性。
- 类外只能访问公共成员;保护、私有以及私有成员函数都会
DENIED。 - 子类可以访问父类保护成员,不能访问父类私有成员。
- 样例 #1 对应:类内写好张三、拖拉机、密码;类外只能改姓名;类外改车和改密码失败;儿子能开到那辆拖拉机。
信息
- ID
- 1100
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者