日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《快学Scala》第6章 对象 练习

發布時間:2023/12/9 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《快学Scala》第6章 对象 练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 編寫一個Conversions對象,加入inchesToCentimeters、gallonsToLiters和milesToKilometers方法。 /*** Created by Ibuki Suika on 2014/5/26.*/object Conversions {def inchesToCentimeters(v: Double) = {v * 2.54}def gallonsToLiters(v: Double) = {3.78541178 * v}def milesToKilometers(v: Double) = {1.609344 * v} }object ScalaApp {def main(args: Array[String]) {println(Conversions.gallonsToLiters(10))println(Conversions.inchesToCentimeters(2))println(Conversions.milesToKilometers(1))} }

2. 前一個練習不是很面向對象,提供一個通用的超類UnitConversion并定義擴展該超類的InchesToCentimeters、GallonsToLiters和MilesToKilometers對象。

/*** Created by Ibuki Suika on 2014/5/26.*/abstract class UnitConversion {def convert(v: Double): Double }object InchesToCentimeters extends UnitConversion {override def convert(v: Double) = {v * 2.54} }object GallonsToLiters extends UnitConversion {override def convert(v: Double) = {v * 3.78541178} }object MilesToKilometers extends UnitConversion {override def convert(v: Double) = {v * 1.609344} }object ScalaApp {def main(args: Array[String]) {println(GallonsToLiters.convert(10))println(InchesToCentimeters.convert(2))println(MilesToKilometers.convert(1))} } 3. 定義一個擴展自java.awt.Point的Origin對象。為什么說這實際上不是個好主意?(仔細看Point類的方法)

/*** Created by Ibuki Suika on 2014/5/26.*/object Origin extends java.awt.Point {def apply() = new java.awt.Point() }object ScalaApp {def main(args: Array[String]) {println(Origin())} } 4. 定義一個Point類和一個伴生對象,使得我們可以不用new而直接用Point(3,4)來構造Point實例。

/*** Created by Ibuki Suika on 2014/5/26.*/class Point(val x: Int, val y: Int) {}object Point {def apply(x: Int, y: Int) = {new Point(x, y)} }object ScalaApp {def main(args: Array[String]) {val p = Point(3, 4)println(p.x)println(p.y)} } 5. 編寫一個Scala應用程序,使用App特質,以反序打印命令行參數,用空格隔開。

/*** Created by Ibuki Suika on 2014/5/26.*/object ScalaApp extends App{println(args.reverse.mkString(" ")) } 6. 編寫一個撲克牌4種花色的枚舉,讓其toString方法分別返回?、?、?和?。

/*** Created by Ibuki Suika on 2014/5/26.*/object PlayingCard extends Enumeration {val Club = Value(0, "?")val Diomand = Value(1, "?")val Heart = Value(2, "?")val Spade = Value(3, "?") }object ScalaApp {def main(args: Array[String]) {for (c <- PlayingCard.values) {println(c.toString)}} } 7. 編寫一個函數,檢查某張牌的花色是否為紅色。

/*** Created by Ibuki Suika on 2014/5/26.*/object PlayingCard extends Enumeration {val Club = Value(0, "?")val Diomand = Value(1, "?")val Heart = Value(2, "?")val Spade = Value(3, "?")def isHeart(v: PlayingCard.Value) = {v == Heart} }object ScalaApp {def main(args: Array[String]) {for (c <- PlayingCard.values) {println(PlayingCard.isHeart(c))}} } 8. 編寫一個枚舉,描述RGB立方體的8個角。ID使用顏色值(例如,紅色是0xff0000)。

/*** Created by Ibuki Suika on 2014/5/26.*/object RGBCube extends Enumeration {val R = Value(0xff0000)val G = Value(0x00ff00)val B = Value(0x0000ff)val RG = Value(0xffff00)val RB = Value(0xff00ff)val GB = Value(0x00ffff)val RGB = Value(0xffffff)val BLACK = Value(0x000000) }object ScalaApp {def main(args: Array[String]) {for (c <- RGBCube.values) {printf("#%06x\n", c.id)}} }

總結

以上是生活随笔為你收集整理的《快学Scala》第6章 对象 练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。