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

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

开发者学堂课程【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()计算圆柱体积

相关文章
|
6天前
|
XML JSON 算法
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
【软件设计师备考 专题 】编写内部设计文档:构件划分图和接口
56 0
|
6天前
|
机器学习/深度学习 并行计算 算法
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
龚大视频学习笔记:上帝视角看GPU(2)-逻辑上的模块划分
59 0
|
9月前
|
数据库
主题域、概念、逻辑、物理四种模型有什么区别与联系?
主题域、概念、逻辑、物理四种模型有什么区别与联系?
|
6天前
|
传感器 运维
【软件设计师备考 专题 】编写外部设计文档:系统配置图和关系图
【软件设计师备考 专题 】编写外部设计文档:系统配置图和关系图
52 1
|
6天前
|
程序员 C++
【C++14保姆级教程】带默认成员初始化器的聚合类
【C++14保姆级教程】带默认成员初始化器的聚合类
|
测试技术 uml
UML图的依赖、关联、聚合、组合关系(突击软考)
UML图的依赖、关联、聚合、组合关系(突击软考)
186 0
|
大数据 开发者
电商项目之层级调用原则讲解|学习笔记
快速学习电商项目之层级调用原则讲解
102 0
电商项目之层级调用原则讲解|学习笔记
|
算法
自然框架,拆分后的项目关系
  拆分了一下自然框架,似乎又绕回去了。以前是多个项目分开放的,有人说太分散了,还得一个个下载,麻烦。于是就做了一个解决方案,把项目都放在了一起。     现在呢,QuickPager分页控件比较完善了,有人只想看分页控件的代码,其他的不想看,东西太多了乱。
830 0
|
SQL
【自然框架】 之 资源角色——列表过滤方案(思路篇)
名词解释 1、资源角色,我的理解就是资源过滤方案 + 角色。就是把资源过滤方案和角色结合在一起的东东。2、资源:这里的资源指的是关系数据库里的记录。3、资源过滤:就是按照一定的条件提取数据库里的记录。
870 0
|
SQL 数据库
【自然框架】用CMS的栏目举例,聊一聊从“一层”到“三层”的变化
  做CMS最基本的一个功能就是做一个栏目导航,如果这个导航想做成动态的(即需要从数据库里提取数据)那么要如何实现呢?   简单的方法——DataTable     一个表两个字段,把数据提取出来,放在DataTable里面,然后在页面里做一个循环,OK了。
1143 0