scala作业3



1、编写Person类,主构造器接受一个字符串,字符串形式为名字,空格,姓,如new Person(“Fred Smith”)。提供只读属性firstName和lastName。
class Person(name:String,unit: Unit,name1:String)
{
val firstName:String="李三"
  val lastName:String="李华"
}
2、定义一个Point类,使得我们不用new就可以直接使用Point(3,4)来构建类的实例。
法1:用样本类实现
case class Point(One:Int,Two:Int)
object Test {
  def main(args: Array[String]): Unit = {

    val p=Point(3,4)
    println(p.One+","+p.Two)
  }
}
结果:3,4
3、定义一个抽象类Shape,一个抽象方法centerPoint, 以及该抽象类的子类Rectangle和Circle,为子类提供合适的构造器,并重写centerPoint方法。
package classDemo

abstract class Shape {
  def  centerPoint:String
}
class Rectangle(var name1:String) extends  Shape
{
  var type1=""
  def this(name1:String,type1:String)
  {
    this(name1)
    this.type1=type1
  }
  override def centerPoint: String = "大家好,我是"+name1+",属于"+type1+"一族"
}
class Circle(var name2:String) extends  Shape
{
  var type2=""
  def this(name2:String,type2:String)
  {
    this(name2)
    this.type2=type2
  }
  override def centerPoint: String = "大家好,我是"+name2+",属于"+type2+"一族"
}
object Test1
{
  def main(args: Array[String]): Unit = {
   val r=new Rectangle("方大块","矩形")
    println(r.centerPoint)
    val c=new Circle("圆嘟嘟","圆形")
    println(c.centerPoint)
  }
}
结果:
大家好,我是方大块,属于矩形一族
大家好,我是圆嘟嘟,属于圆形一族

4、利?用模式匹配,对List做出如下匹配条件
(1)不管元素个数,List是否以1开头    


(2)List含有三个元素,并且第二个元素是2


(3)List含有两个元素,并且最后一个元素是3


(4)都不符合以上条件

答案
package practice
object Test {
  def main(args: Array[String]): Unit = {
    val list1 = List(2,1,3)
    list1 match {
      case List(1,_* ) =>println(1)
      case List(_,2,_)=>println(2)
      case List(_,3)=>println(3)
      case _ => println("error")
    }
  }
}



  

猜你喜欢

转载自blog.csdn.net/weixin_43562705/article/details/91437826