快学Scala 第6章 对象 - 练习
1. 编写一个Conversions对象,加入inchesToCentimeters、gallonsToLiters和milesToKilometers方法。
object Conversions { def main(args: Array[String]){ printf("1 inch = %g centimeters\n", inchesToCentimeters(1)) printf("2 gallons = %g liters\n", gallonsToLiters(2)) printf("3 miles = %g centimeters\n", milesToKilometers(3)) } def inchesToCentimeters(inches:Double)={ inches * 2.54 } def gallonsToLiters(gallons:Double)={ gallons * 3.7854118 } def milesToKilometers(miles:Double)={ miles * 1.609344 }}/*result1 inch = 2.54000 centimeters2 gallons = 7.57082 liters3 miles = 4.82803 centimeters*/abstract class UnitConversions{ def convert(amt:Double): Double}object inchesToCentimeters extends UnitConversions{ override def convert(amt:Double)= amt * 2.54 }object gallonsToLiters extends UnitConversions{ override def convert(amt:Double)= amt * 3.7854118 }object milesToKilometers extends UnitConversions{ override def convert(amt:Double)= amt * 1.609344 }printf("1 inch = %g centimeters\n", inchesToCentimeters.convert(1))printf("2 gallons = %g liters\n", gallonsToLiters.convert(2))printf("3 miles = %g centimeters\n", milesToKilometers.convert(3))/*result1 inch = 2.54000 centimeters2 gallons = 7.57082 liters3 miles = 4.82803 centimeters*/import java.awt._object Origin extends Point{ override def getLocation:Point = super.getLocation}Origin.move(2,3)println(Origin.toString)/*resultMain$$anon$1$Origin$[x=2,y=3]*/ class Point private(val x:Int, val y:Int){ override def toString = "Point at [x=%d,y=%d]".format(x,y)}object Point{ def apply(x:Int, y:Int) = new Point(x,y)}val a = Point(3,4)println(a.toString)/*resultPoint at [x=3,y=4]*/ object Reverse{ def main(args:Array[String]){ for(i <- (0 until args.length).reverse) print(args(i) + " ") }}/* The following code did not work for me. object Reverse extends App{ for(i <- (0 until args.length).reverse) print(args(i) + " ")}*//*resultWorld Hello*/object Poker extends Enumeration with App{ val Heart = Value(3, "♥") val Diamond = Value(4, "♦") val Club = Value(5, "♣") val Spade = Value(6, "♠") println(Poker.Heart) println(Poker.Diamond) println(Poker.Club) println(Poker.Spade)} object Card extends Enumeration with App{ val Heart = Value(3, "") val Diamond = Value(4, "") val Club = Value(5, "") val Spade = Value(6, "") def color(c: Card.Value){ if(c == Card.Club || c == Card.Spade) print("Black") else print("Red") } color(Card.Heart)}/*Red*/object RGB extends Enumeration with App{ val RED = Value(0xff0000,"Red") val BLACk = Value(0x000000,"Black") val GREEN = Value(0x00ff00,"Green") val CYAN = Value(0x00ffff,"Cyan") val YELLO = Value(0xffff00,"Yellow") val WHITE = Value(0xffffff,"White") val BLUE = Value(0x0000ff,"Blue") val MAGENTA = Value(0xff00ff,"Magenta")} 快学Scala 第6章 对象 - 练习的更多相关文章
- 《快学Scala》第二章 控制结构和函数
- 《快学Scala》第一章 基础
- 快学Scala习题解答—第一章 基础
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on th ...
- 《快学Scala》
Robert Peng's Blog - https://mr-dai.github.io/ <快学Scala>Intro与第1章 - https://mr-dai.github.io/S ...
- 快学Scala 第十九课 (trait的abstract override使用)
trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super ...
- 快学Scala 第十三课 (类型层级,对象相等性)
Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...
- 《快学Scala》第六章 对象 第七章 包和引入
- 快学Scala习题解答—第四章 映射和元组
4 映射和元组 4.1 设置一个映射,当中包括你想要的一些装备,以及它们的价格.然后构建还有一个映射.採用同一组键,可是价格上打9折 映射的简单操作 ,"gun"->18 ...
- 快学scala习题解答--第五章 类
5 类 5.1 改进5.1节的Counter类,让它不要在Int.MaxValue时变成负数 class Count{ private var value = Int.MaxValue else v ...
随机推荐
- 【iCore4 双核心板_uC/OS-II】例程一:认识 uC/OS-II
一.实验说明: 本例程移值入uC/OS-II,建立三个任务,红色和绿色LED分别以固定频率闪烁,并且打开串口工具, 输出浮点数据. 二.源代码下载链接: 链接:https://pan.baidu.co ...
- 用反卷积(Deconvnet)可视化理解卷积神经网络还有使用tensorboard
『cs231n』卷积神经网络的可视化与进一步理解 深度学习小白——卷积神经网络可视化(二) TensorBoard--TensorFlow可视化 原文地址:http://blog.csdn.net/h ...
- 以太坊客户端Geth命令用法-参数详解【转载】
原文链接:http://www.cnblogs.com/tinyxiong/p/7918706.html Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具.熟悉Get ...
- SunRain
系统学习了半年java 开始业务攻坚 学习占缓 拼凑一个前后端分离的小项目 慢慢优化 https://gitee.com/fleam/SunRain.git
- 关于Cocos2d-x-3.16的开发环境搭建
一.需要安装的软件 1.VS2013或者VS2015 2.Cocos:cocos2d-x-3.16:http://www.cocos.com/download 3.Python:python-2.7. ...
- 01Spark的TopN问题
和hadoop的目的一样,给你数据,然后取TopN.数据如下: 取出数据在排名前十的数据. 代码如下: package com.test.book; import java.util.ArrayLis ...
- Elasticsearch学习笔记——分词
1.测试Elasticsearch的分词 Elasticsearch有多种分词器(参考:https://www.jianshu.com/p/d57935ba514b) Set the shape to ...
- laravel5.8笔记四:路由
laravel框架,必须先设置路由,才可以访问内部的控制器部分. 路由文件:routes/web.php. 基本路由 Route::get('/user', 'UserController@index ...
- 基于EBNF语法的描述
基于JavaCC的语法描述 使用JavaCC从token序列中识别出"语句" “表达式” “函数调用” 等语法单位的方法. 只要为JavaCC描述“语句” “表达式” “函数调用” ...
- Nest.js 守卫
Docs: https://docs.nestjs.com/guards 当调用者具有足够的权限时,特定路由才可用 // app.guard.ts import { CanActivate, Exec ...