Scala编程基础练习

 
1. 定义一个计算器类 (Calcuator) ,实现加减乘除四个 功能 ,实现形式在类中分四个方法完成
 
import scala.io.StdIn
object calculate {
  def main(args: Array[String]): Unit = {
    val t = new test
    t.add()
    t.div()
    t.mul()
    t.sub()

  }
  class test {
    println("请输入a的值:")
    var a: Double = StdIn.readDouble()
    println("请输入b的值:")
    var b: Double = StdIn.readDouble()
    var n: Double = 0.0
    def add(): Unit = {
      println("做加法:")
      n = a + b
      
      println("结果是:"+n)
    }

    def sub(): Unit = {
      println("做减法:")
      n = a - b
      println("结果是:"+n)
    }

    def mul(): Unit = {
      println("做乘法:")
      n = a * b
      println("结果是:"+n)
    }

    def div(): Unit = {
      println("做除法:")
      if (b == 0) {
        println("b 不能为 0")
      } else {
        n = a / b
        println("结果是:"+n)
      }

    }

  }
}

 

 
 
 
 
 
 
 
 
 
 
2.编写一个 Dog 类,包含 name(String) age(Int)、 weight(Double) 属性 2) 类中声明一个 say 方法,返回 String 类型,方法返回信息中包含所有属性值。 3) 另一个 TestDog 类中的 main 方法中,创建 Dog 对象,并 访问 say 方法和所有 属性,将调用结果打印输出。
object DogCaseTest {
  class Dog {
    var name = ""
    var age = 0
    var weigth = 0.0

    def say(): String = {
      "小狗信息如下: name=" + this.name + "\t age=" + this.age + "\t weight=" + this.weigth
    }
  }


  def main(args: Array[String]): Unit = {
    val dog = new Dog
    dog.name = "aaa"
    dog.age = 18
    dog.weigth = 9
    println(dog.say())
  }

}

3.

定义员工类 Employee ,包含姓名和月工资,以及计算年工资 getAnnual 的方法。普通员工和 经理继承了员工,经理类多了奖 bonus 属性和管理 manage 方法,普通员工类多了 work 方 法, 普通员工和经理类要求分别重写 getAnnual 方法 测试类中添加一 个方法 showEmpAnnal ,实现获取任何员工对象的年工资 , 并在 main 方法中 调用该方法 测试类中添加一个方法, testWork, 如果
是普通员工,则调用 work 方法,如果是经理,则调 用 manage 法。
object Employee {
  def main(args: Array[String]): Unit = {
    val worker = new Worker2
    val manager = new Manager

    showEmployeeAnnual(worker)
    showEmployeeAnnual(manager)
    testEmployee(worker)
    testEmployee(manager)

  }

  def showEmployeeAnnual(e: Employee): Unit = {
    println(e.getAnnual)
  }

  def testEmployee(e: Employee): Unit = {
    if (e.isInstanceOf[Worker2]) e.asInstanceOf[Worker2].work()
    else if (e.isInstanceOf[Manager]) e.asInstanceOf[Manager].manage()
  }
}

abstract class Employee {
  // 定义抽象属性
  var name: String
  var salary: Double

  // 定义抽象方法
  def getAnnual: Double
}

class Worker2 extends Employee {
  override var name: String = "工人"
  override var salary: Double = 2000

  override def getAnnual: Double = {
    this.salary * 12
  }

  def work(): Unit = {
    println("工人工作~")
  }
}

class Manager extends Employee {
  override var name: String = "经理"
  override var salary: Double = 20000.0
  var bonus = 60000

  override def getAnnual: Double = {
    this.salary * 12 + this.bonus
  }

  def manage(): Unit = {
    println("经理在管理~")
  }
}

 

 

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值