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("经理在管理~")
}
}