一、实验内容

1、假如我们在开发一个系统时需要对员工进行建模,【员工Employee】包含3个属性:姓名name、工号id以及工资salary;【经理Manager】也是员工,除了含有员工的属性外,另为还有一个奖金属性bonus。
请使用继承的思想设计出1个员工类和1个经理类,要求类中提供必要的方法进行属性访问,并能够一次性输出对象的基本信息。
输入描述:按照先输入员工类数据(name,id,salary)再经理类数据(name,id,salary,bonus)。
输入案例:
Zhangsan 20202001 8800
Lisi 20203001 9800 12000
输出案例:
Name: Zhangsan, Job Number: 20202001, Salary: 8800.0
Name: Lisi, Job Number: 20203001, Salary: 9800.0, Bonus: 12000.0
package com.HelloWorld;
import java.util.Scanner;
public class Test401 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Employee em=new Employee();
        Manager ma=new Manager();
        String name1=sc.next();
        String id1=sc.next();
        double salary1=sc.nextDouble();
        String name2=sc.next();
        String id2=sc.next();
        double salary2=sc.nextDouble();
        double bonus=sc.nextDouble();
        em.setName(name1);
        em.setId(id1);
        em.setSalary(salary1);
        ma.setName(name2);
        ma.setId(id2);
        ma.setSalary(salary2);
        ma.setBonus(bonus);
        em.out();
        ma.out();
    }
}
class Employee {
    private String name;
    private String id;
    private double salary;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public void out () {
        System.out.println("Name: "+name+", Job Number: "+id+", Salary: "+salary);
    }
}
class Manager extends Employee{
    private double bonus;
    public double getBonus() {
        return bonus;
    }
    public void setBonus(double bonus) {
        this.bonus = bonus;
    }
    public void out () {
        System.out.println("Name: "+getName()+", Job Number: "+getId()+", Salary: "+ getSalary()+", Bonus: "+getBonus());
    }
}2、编写一个Java程序,该程序包括3个类:Monkey类、People类和测试类Test。最低要求如下:
(1) Monkey类中有个构造方法:Monkey (String name),并且有个public void speak()方法,在speak方法中输出“YiYiYaYa......”的信息。
(2)People类是Monkey类的子类,在People类中的speak方法中输出“Hey you~~, not bad! You can speak!”的信息。
(3)在People类中新增方法void think(),在think方法中输出“Stop talking! Think seriously!”的信息。
(4)在测试类Test的main方法中创建Monkey与People类的对象类测试这2个类的功能。
输入描述:先输入Monkey类再输入People类。
输入案例:
Toney
Tom
输出案例:
I am Monkey Toney
YiYiYaYa......
I am People Tom
Hey you~~, not bad! You can speak!
Stop talking! Think seriously!
package com.HelloWorld;
import java.util.Scanner;
public class Test402 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String m=sc.next();
        String p=sc.next();
        Monkey monkey=new Monkey(m);
        monkey.speak();
        System.out.println();
        People people=new People(p);
        people.speak();
        people.think();
        System.out.println();
    }
}
class Monkey {
    Monkey() {
    }
    Monkey(String name) {
        System.out.println("I am Monkey "+name);
    }
    public void speak() {
        System.out.println("YiYiYaYa......");
    }
}
class People extends Monkey{
    People(String name){
        System.out.println("I am People "+name);
    }
    public void speak() {
        System.out.println("Hey you~~, not bad! You can speak!");
    }
    void think(){
        System.out.println("Stop talking! Think seriously!");
    }
}3、编写一个Java程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader,及判断超载的方法isLoader(),默认最多载人数为5。卡车类Truck是Car类的子类,其中包含的属性有载重量payload,且默认最多载人数为2,载重量为1000。每个类都应有构造方法及输出相关数据的方法,最后写一个测试类来测试这些类的功能。测试类要求2个汽车类和2个Vehicle类对象。
输入描述:按照(wheels,weight,loader,payload)属性顺序输入对象。
输入案例:
4 600 4
4 600 6
6 800 2 800
12 1000 3 1200
输出案例;
There is a car,
the number of wheels is 4, the weight is 600.0
this car carries 4 passengers!
There is another car,
the number of wheels is 4, the weight is 600.0
this car is overloaded!
There is a truck,
the number of wheels is 6, the weight is 800.0
this truck has 2 passengers,
this truck carries 800.0
There is another truck,
the number of wheels is 12, the weight is 1000.0
this truck is overloaded!
this truck is overweight!
package com.HelloWorld;
import java.util.Scanner;
public class Test403 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Car c1=new Car();
        Car c2=new Car();
        Truck t1=new Truck();
        Truck t2=new Truck();
        int wh1=sc.nextInt();
        double w1=sc.nextDouble();
       int p1=sc.nextInt();
        int wh2=sc.nextInt();
        double w2=sc.nextDouble();
        int p2=sc.nextInt();
        int wh3=sc.nextInt();
        double w3=sc.nextDouble();
        int p3=sc.nextInt();
        double pay1=sc.nextDouble();
        int wh4=sc.nextInt();
        double w4=sc.nextDouble();
        int p4=sc.nextInt();
        double pay2=sc.nextDouble();
        System.out.println("There is a car,");
        c1.setWheels(wh1);
        c1.setWeight(w1);
        c1.out();
        c1.setLoader(5);
        c1.isLoader(p1);
        System.out.println();
        System.out.println("There is another car,");
        c2.setWheels(wh2);
        c2.setWeight(w2);
        c2.out();
        c2.setLoader(5);
        c2.isLoader(p2);
        System.out.println();
        System.out.println("There is a truck,");
        t1.setWheels(wh3);
        t1.setWeight(w3);
        t1.out();
        t1.setLoader(2);
        t1.isLoader(p3);
        t1.ispayload(pay1);
        System.out.println();
        System.out.println("There is another truck,");
        t2.setWheels(wh4);
        t2.setWeight(w4);
        t2.out();
        t2.setLoader(2);
        t2.isLoader(p4);
        t2.ispayload(pay2);
        System.out.println();
    }
}
class Vehicleone {
    private double weight;
    private int wheels;
    public double getWeight() {
        return weight;
    }
    public void setWeight(double weight) {
        this.weight = weight;
    }
    public int getWheels() {
        return wheels;
    }
    public void setWheels(int wheels) {
        this.wheels = wheels;
    }
    public void out() {
        System.out.println("the number of wheels is "+wheels+", the weight is "+weight);
    }
}
class Car extends Vehicleone {
    private int loader;
    public int getLoader() {
        return loader;
    }
    public void setLoader(int number) {
        this.loader=number;
    }
    public void isLoader(int loader) {
        if(this.loader>=loader)
            System.out.println("this car carries "+loader+" passengers!");
        else System.out.println("this car is overloaded!");
    }
}
lass Truck extends Car{
    private double payload=1000;
    public double getPayload() {
        return payload;
    }
    public void setPayload(double payload) {
        this.payload = payload;
    }
    public void isLoader(int loader) {
        if(getLoader()>=loader)
            System.out.println("this truck has "+loader+" passengers,");
        else System.out.println("this truck is overloaded!");
    }
    public void ispayload(double payload) {
        if(this.payload>=payload)
            System.out.println("this truck carries "+payload);
        else System.out.println("this truck is overweight!");
    }
}二、实验结果与分析(包括:输入数据、输出数据、程序效率及正确性等)(此处写清题号与其答案,可截图)
- 程序运行结果截图如下: 
 
  
- 程序运行结果截图如下: 
 
  
3、程序运行结果截图如下:
 
  
三、问题与讨论
Java中输入
1、 读取输入
1)构建一个Scanner,附属到System.in
Scanner in = new Scanner(System.in);
此时可以使用Scanner类的各种方法来读取输入。例如:nextLine方法来读取一行输入
System.out.print("What is your name?");
String name = in.nextLine();
nextLine(): 读取的一行中可能包含空格
next(): 读取单个单词。
nextInt(): 读取一个整数。
nextDouble():读取一个浮点数
例如:String firstName = in.next();
int age = in.nextInt();
Scanner类包含在java.util包中,因此在使用时,在程序开始处,输入import java.util.*;
注:Scanner不适合用于从终端读取密码,因为输入的文本对于任何人是可见的。在Java SE6中引入了Console类用于该目的。用如下代码来读取密码:
Console cons = System.console();
String username = cons.readLine("User Name:");
char[] passwd = cons.readPassword("Password: ");
为安全起见,password返回的是一个字符数组,而不是一个字符串。
Console对象用于输入处理不像Scanner一样方便。Console对象一次只能读取一行。没有其他方法用于读取单个单词或数字。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页名称:java实验(4)Java中类的继承及其应用(加强)-创新互联
当前URL:http://www.scyingshan.cn/article/dsdoci.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 