HM101 三类权限

HM101 三类权限

HM101 三类权限

来源: 第 101 集 类和对象-封装-访问权限

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

封装的第二层含义是:设计类时把成员放到不同权限下管理。三种访问权限是:

  • public(公共):类内可以访问,类外也可以访问。
  • protected(保护):类内可以访问,类外不可以访问。以后出现父子继承时,子类可以访问父类的保护成员(例如父亲的汽车,儿子打声招呼就能开)。
  • private(私有):类内可以访问,类外不可以访问。子类也不能访问父类的私有成员(例如父亲的银行卡密码)。

现阶段保护与私有在“类外能不能访问”上相同,差别主要体现在子类。成员函数本身也有权限:写成私有后,类外不能调用这个函数;写成公共则可以。无论函数本身是公共还是私有,函数体都在类内,因此函数体里可以读写全部三种属性。

请设计人员类 Person:公共成员 mName,保护成员 mCar,私有成员 mPassword。再提供公共成员函数,在类内给三个属性赋值并打印。处理 \(q\) 次访问:

  • 1 name car pwd:在类内给三属性赋值并输出 IN name car pwd
  • 2 name:在类外修改姓名,输出 OUT name
  • 3:试图在类外改汽车,输出 DENIED
  • 4:试图在类外改密码,输出 DENIED
  • 5 name car pwd:先在类内赋值,再由子类读取汽车,输出 SON_CAR car
  • 6:子类试图读取密码,输出 DENIED
  • 7:类外调用私有成员函数,输出 DENIED

输入格式

第一行一个整数 \(q\)(\(1 \le q \le 1000\))。

接下来 \(q\) 行,格式见上。namecar 不含空白,长度 \(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
通过率
?
上传者