类的层级关系和作业布置|学习笔记

简介: 快速学习类的层级关系和作业布置。

开发者学堂课程【Scala 核心编程-基础:类的层级关系和作业布置】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8982


类的层级关系和作业布置

 

目录:

一、继承的层级关系图

二、继承层级图小结

三、课后习题

 

一、继承的层级关系图

image.png

Any 是所有类的父类,分成两大类,anyval 和 anyref。刚才讲的一系列关于继承,封装,多态,讲的就是other Scala classes。在整个集合里面,java 这个类是可以用的。图里的实线表示一个继承的关系,虚线代表一个隐式转换的关系。整个图代表的是一个层级关系。

 

二、继承层级图小结

1. 在 Scala 中,所有其他类都是 AnyRef 的子类,类似 java 的 object。

2. Anyval 和 AnyRef 都扩展自 Any 类。Any 类是根节点。

3.Any 中定义了 isInstanceOf、asInstanceOf 方法,以及哈希方法等。

4.Null 类型的唯一实例就是 null 对象可以将 null 赋值给任何引用,但不能赋值给值类型的变量。

5.Nothing 类型没有实例。它对于泛型结构是有用处的,举例:空列表 Nil 的类型是 List[Nothing],它是List[T]的子类型,T 可以是任何类。

 

三、课后习题

1.编写 Computer 类,包含 CPU、内存,硬盘等属性,getDetails 方法用于返回 Computer 的详细信息

编写 PC 子类,继承 Computer 类,添加特有属性【品牌 brand】

编写 NotePad 子类,继承 Computer 类,添加特有属性【颜色 color】编写 Test Object,在 main 方法中创建PC和NotePad 对象,分别对象中特有的属性赋值,以及从 Computer 类继承的属性赋值,并使用方法并打印输出信息。

按照 Scala 的方式来将其搞定。

2.定义员工类 Embloyee,包含姓名和月工资,以及计算年工资 getAnnual 的方法。普通员工和经理要求分别重写getAnnal 方法。

测试类中添加一个方法 showEmpAnnal,实现获取任何员工对象的年工资,并在 main 方法中调用该方法。

测试类中添加一个方法,testWork 如果是普通员工,则调用 work 方法,如果是经理,则调用 manage方法【10min】

3. 根据图实现类。在 TestCylinder 类中创建 Cylinder 类的对象,设置圆柱的底面半径和高, 并输出圆柱的体积。

(1)Circle (圆)

-radius :Double

Circle():构造方法,将 radius 私有属性初始化为1+setRadius(radius: Double)

+getRadius()

+findArea() 计算圆的面积

(2)Cylinder (圆柱)

-length:Double

Cylinder():构造方法,将 Iength 属性初始化为1

+setLength(length: Double)

+getLength()

+findVolume()计算圆柱体积

相关文章
|
8月前
|
XML JSON 算法
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
120 0
|
8月前
|
机器学习/深度学习 并行计算 算法
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
140 0
|
6月前
|
架构师 测试技术 领域建模
项目管理问题之实体、命令、事件之间有什么关系
项目管理问题之实体、命令、事件之间有什么关系
|
7月前
|
数据可视化 SDN Python
复动力系统 | 混沌 | Lozi 映射吸引子的可视化与交互式探索
该文介绍了一篇关于Lozi映射吸引子可视化和交互式探索的文章。Lozi映射是混沌理论中的一个模型,展示非线性动力系统的复杂性。通过Python和matplotlib,作者实现了Lozi映射的可视化,并添加交互功能,允许用户缩放以详细观察混沌吸引子。文中还给出了Lozi映射的数学定义,并提供了Python代码示例,演示如何绘制和动态调整吸引子的显示。
|
数据库
4.4关系配置
关系配置
160 0
|
Scala 开发者
视图界定的介绍应用实例1 | 学习笔记
快速学习视图界定的介绍应用实例1
视图界定的介绍应用实例1 | 学习笔记
|
Scala 开发者
视图界定的介绍应用实例3 | 学习笔记
快速学习视图界定的介绍应用实例3
视图界定的介绍应用实例3 | 学习笔记
|
Scala 开发者
视图界定的介绍应用实例2 | 学习笔记
快速学习视图界定的介绍应用实例2
视图界定的介绍应用实例2 | 学习笔记
|
大数据 开发者
电商项目之层级调用原则讲解|学习笔记
快速学习电商项目之层级调用原则讲解
电商项目之层级调用原则讲解|学习笔记
|
数据库 数据安全/隐私保护
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图
【号外】-温习如何画E-R图