java实验(4)Java中类的继承及其应用(加强)-创新互联

一、实验内容

创新互联专注于大观网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供大观营销型网站建设,大观网站制作、大观网页设计、大观网站官网定制、小程序开发服务,打造大观网络公司原创品牌,更为您提供大观网站排名全网营销落地服务。

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!");

    }

}

二、实验结果与分析(包括:输入数据、输出数据、程序效率及正确性等)(此处写清题号与其答案,可截图)

  1. 程序运行结果截图如下:

  1. 程序运行结果截图如下:

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中类的继承及其应用(加强)-创新互联
当前链接:http://hbruida.cn/article/dsdoci.html