1.题目如下
封装,定义setter和getter方法用于存值和取值
定义人类Person,
(1)字段:身份证号idCard,姓名name,性别gender,年龄age,职业profession,联系方式phone.
并定义相应的属性;
(2)定义方法message()输出个人的基本信息
(3)定义无参构造函数,并打印一句话,输出“我是人类”定义一个教师类Teacher,继承于人类;
(a)具有字段:职工号empID,所教授的课程名curriculum,所属院系academy,并定义相应的属性
(b)定义有参和无参构造函数。
(c)定义一个普通方法teach(),输出我是教学的.定义一个数学教师类MathTeacher,继承于教师类;
(a)重写父类的teach();输出我是从事数学教学的;
(b)定义无参构造函数。再写一个带参数的构成函数MathTeacher(String name)
(c)有两个重载方法,ready(),ready(String scource);定义一个英语教师类EnglishTeacher,继承于教师类;
(a)重写父类的teach();输出我是从事英语教学的。
(b)定义无参构造函数。再写一个带参数的构成函数EnglishTeacher(String name),并显式调用父类的带参构造方法
(c)有两个重载方法,write(),write(String scource);
代码:
1.定义人类Person
package mx2.Demo.word
import scala.beans.BeanProperty
/**一、
* 定义人类Person,
* (1)字段:身份证号idCard,姓名name,性别gender,年龄age,职业profession,联系方式phone. 并定义相应的属性;
* (2)定义方法message()输出个人的基本信息
* (3)定义无参构造函数,并打印一句话,输出“我是人类”
*/
class Person2 {
println("我是人类")
@BeanProperty
var idCard:String = _//身份证号
@BeanProperty
var name:String = _//姓名
@BeanProperty
var gender:Char = _//性别
@BeanProperty
var age:Int = _//年龄
@BeanProperty
var profession:String=_//职业
@BeanProperty
var phone:Int = _//联系方式
def message(): Unit ={
println("身份证号"+idCard+"姓名"+name+"性别"+gender+"年龄"+age+"职业"+profession+phone)
}
}
2.教师类Teacher
package mx2.Demo.word
import scala.beans.BeanProperty
class Teacher1 extends Person2(){
def this(empID:String,curriculum:String,academy:String){
this()
this.empID = empID
this.curriculum = curriculum
this.academy = academy
}
@BeanProperty
var empID:String = _ //职工号
@BeanProperty
var curriculum:String = _//课程名
@BeanProperty
var academy:String = _//院系
def teach(): Unit ={
print("我是教学的")
}
}
3.数学教师类MathTeacher
package mx2.Demo.word
/***
*定义一个数学教师类MathTeacher,继承于教师类;
(a)重写父类的teach();输出我是从事数学教学的;
(b)定义无参构造函数。再写一个带参数的构成函数MathTeacher(String name)
(c)有两个重载方法,ready(),ready(String source);
*/
class MathTeacher extends Teacher1{
def this(name:String){
this()
this.name = name
}
override def teach(): Unit ={
println("我是从事数学教学的")
}
def ready(): Unit ={
print("我在教学生读")
}
def ready(source:String): Unit ={
print("我在"+source+"教学生读")
}
}
4.英语教师类EnglishTeacher
package mx2.Demo.word
class EnglishTeacher extends Teacher1 {
def this(name:String){
this()
}
override def teach(): Unit ={
println("我是从事英语教学的")
}
def write(): Unit ={
println("我在教学生们写")
}
def write(source:String): Unit ={
println("我在"+source+"教学生读")
}
}
5.测试类
object Test{
def main(args: Array[String]): Unit = {
var englishTeacher = new EnglishTeacher("李四")
englishTeacher.teach()
englishTeacher.write()
}
}
运行结果:
我是人类
我是从事英语教学的
我在教学生们写
2.模拟计算器
定义为Number类,其中有两个整型数据成员n1和n2,应声明为私有。编写有参和无参构造方法,初始化n1和n2的值,再为该类定义加、减、乘、除等公有成员方法,分别对两个变量执行加减乘除的运算,并将其值输出。要求在主方法中判断输入的n1和n2的值是否为正整数,如果是正整数则进行计算,否则提示“请输入两个正整数”并让用户重新输入
测试类:要求从控制台输入两个数据,使用模拟计算器分别计算出加减乘除的值
代码:
package mx2.Demo.work
import scala.io.StdIn
/**
* @program: IntelliJ IDEA
* @description: 二、模拟计算器
*/
/***
* 二、模拟计算器
* 定义为Number类,其中有两个整型数据成员n1和n2,应声明为私有。编写有参和无参构造方法,初始化n1和n2的值,再为该类定义加、减、乘、除等公有成员方法,分别对两个变量执行加减乘除的运算,并将其值输出。要求在主方法中判断输入的n1和n2的值是否为正整数,如果是正整数则进行计算,否则提示“请输入两个正整数”并让用户重新输入
测试类:要求从控制台输入两个数据,使用模拟计算器分别计算出加减乘除的值
*/
class Number {
private var n1:Int = _
private var n2:Int = _
def this(n1:Int,n2:Int){
this()
this.n1 = n1
this.n2 = n2
}
def plus(): Int={
n1+n2
}
def minus(): Int ={
n1 -n2
}
def ride(): Int ={
n1 * n2
}
def divide(): Int ={
n1 / n2
}
}
object NumberTest{
def main(args: Array[String]): Unit = {
var result = true
var n1 = ""
var n2 = ""
while(result){
var flag1 = true
var flag2 = true
print("请输入第一个数")
n1 = StdIn.readLine()
print("请输入第二个数")
n2 = StdIn.readLine()
var charN1 = n1.toCharArray
var charN2 = n2.toCharArray
for(x <- charN1){
if(Character.isDigit(x) == false){
flag1 = false
}
}
for(x <- charN2){
if(Character.isDigit(x) == false){
flag2 = false
}
}
if(flag1 == false || flag2 == false){
print("输入的不是数字")
}else{
result = false
}
}
print("请输入要操作的运算")
var mul = StdIn.readChar()
var num = new Number(n1.toInt,n2.toInt)
if(mul == '+'){
print("和为"+num.plus())
}else if(mul == '-'){
print("差为"+num.minus())
}else if(mul == '*'){
print("积为"+num.ride())
}else if(mul == '/'){
print("除为"+num.divide())
}
}
}
运行结果:
请输入第一个数1
请输入第二个数2
请输入要操作的运算+
和为3