0
点赞
收藏
分享

微信扫一扫

Java 2实用教程(第5版)实验指导与习题解答 第4章-类与对象

罗蓁蓁 2022-04-14 阅读 68

实验 1 机动车

实验目的

本实验的目的是让学生使用类来封装对象的属性和功能。

实验要求

编写一个 Java 应用程序,该程序中有两个类: Vehicle(用于刻画机动车)和 User(主类)。具体要求如下:

实验代码

public class 机动车01 {
    public static void main(String[] args) {
        Vehicle a = new Vehicle(60.0,100);
        a.speedDown(70);
        a.speedDown(20);
        a.speedUp(20);
    }


}

class Vehicle{
    private double speed;
    private int power;

    public void speedUp(int n){
        speed += n;
        System.out.println("加速后机动车速度为" + speed);
    }

    public void speedDown(int n){
        if(n > speed){
            System.out.println("参数错误!");
        }else {
            speed -= n;
            System.out.println("减速后机动车速度为" + speed);
        }
    }

    public Vehicle() {
    }

    public Vehicle(double speed, int power) {
        this.speed = speed;
        this.power = power;
        System.out.println("机动车速度为:" + speed + "机动车功率为:" + power);
    }

    public double getSpeed() {
        return speed;
    }

    public void setSpeed(double speed) {
        this.speed = speed;
    }

    public int getPower() {
        return power;
    }

    public void setPower(int power) {
        this.power = power;
    }
}

运行截图

在这里插入图片描述

实验 2 家中的电视

实验目的

本实验的目的是让学生掌握对象的组合以及参数传递。

实验要求

编写一个 Java 应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即
通过调用一个方法将某个电视的引用传递给自己的电视成员。具体要求如下。

程序效果示例

程序运行效果如图 4.5 所示。
在这里插入图片描述

实验代码

在这里插入图片描述
Familiy.java

package 家中的电视02;

public class Familiy {
    private TV homeTV;

    public void buyTV(TV a){
        homeTV = a;
    }
    public void remoteControl(int a){
        System.out.println("将电视更换到" + a + "频道");
        homeTV.setChannel(a);
    }
    public void seeTV(){
        System.out.println("在看电视节目");
       homeTV.showProgram();
    }
}

TV.java

package 家中的电视02;

public class TV {
    private int channel;

    public void showProgram(){
        switch (channel){
            case 1:
                System.out.println("动画频道");
                break;
            case 2:
                System.out.println("经济频道");
                break;
            case 3:
                System.out.println("少儿频道");
                break;
            case 4:
                System.out.println("电影频道");
                break;
            case 5:
                System.out.println("体育频道");
                break;
        }
    }

    public TV() {
    }

    public TV(int channel) {
        this.channel = channel;
    }

    public int getChannel() {
        return channel;
    }

    public void setChannel(int channel) {
        this.channel = channel;
    }
}

MainClass.java

package 家中的电视02;

public class MainClass {
    public static void main(String[] args) {
        TV haierTV =new TV(5);
        Familiy zhangSanFamily = new Familiy();
        zhangSanFamily.buyTV(haierTV);
        System.out.println("haierTV的频道是" + haierTV.getChannel());
        System.out.println("zhangSanFamily开始看电视节目");
        haierTV.showProgram();
        System.out.print("zhangSanFamily");
        zhangSanFamily.remoteControl(2);
        System.out.println("haierTV的频道是" + haierTV.getChannel());
        System.out.print("zhangSanFamily");
        zhangSanFamily.seeTV();
    }

}

运行截图

在这里插入图片描述

实验 3 共饮同井水

实验目的

本实验的目的是让学生掌握类变量与实例变量,以及类
方法与实例方法的区别。

实验要求

编写程序模拟两个村庄共用同一口井水。编写一个 Village 类,该类有一个静态的 int 型
成员变量 waterAmount,用于模拟井水的水量。在主类 Land 的 main()方法中创建两个村庄,
一个村庄改变了 waterAmount 的值,另一个村庄查看 waterAmount 的值。

实验代码

public class 共饮同井水03 {
    public static void main(String[] args) {
        Village v1 = new Village(100);
        Village v2 = new Village();
        System.out.println("最初的水量" + v1.getWaterAmount());
        //v1用掉20的水,还剩下80
        v1.setWaterAmount(80);
        //v2查看剩余水量
        System.out.println("剩下的水量" + v2.getWaterAmount());

    }
}

class Village{
    private static int waterAmount;

    public Village() {
    }

    public Village(int waterAmount) {
        this.waterAmount = waterAmount;
    }

    public int getWaterAmount() {
        return waterAmount;
    }

    public void setWaterAmount(int waterAmount) {
        this.waterAmount = waterAmount;
    }
}

运行截图

在这里插入图片描述

实验 4 求方程的根

实验目的

本实验的目的是让学生掌握使用 package 和 import 语句。

实验要求

实验代码

在这里插入图片描述
SquareEquation

package 求方程的根04.tom.jiafei;

import java.util.Scanner;

public class SquareEquation {

    public static void function (double a,double b,double c){
            double x1=(-b+Math.sqrt(b*b-4*a*c))*1/(2*a);
            double x2=(-b-Math.sqrt(b*b-4*a*c))*1/(2*a);
            System.out.println("方程根为"+x1);
            System.out.println("方程根为"+x2);
    }
}

SunRise

package 求方程的根04;

import 求方程的根04.tom.jiafei.SquareEquation;

import java.util.Scanner;

public class SunRise {
    public static void main(String[] args) {
        double a,b,c;
        System.out.println("请分别输入一元二次方程的a,b,c值");
        Scanner input=new Scanner(System.in);
        boolean T = true;
        while(T){
            System.out.println("输入a:");
            a=input.nextDouble();
            System.out.println("输入b:");
            b=input.nextDouble();
            System.out.println("输入c:");
            c=input.nextDouble();
            if(b*b-4*a*c<0) {
                System.out.println("该方程无解,请重新输入");
            }else{
                SquareEquation.function(a,b,c);
                T = false;
            }

        }
    }
}

运行截图

在这里插入图片描述

举报

相关推荐

0 条评论