【Java刷题系列】03_构造类

一、交通工具类

要求:

  • 定义一个Vehicle类,其中有如下属性:

    • 速度
    • 体积
    • 方法移动
    • 设置速度
    • 加速
    • 减速
  • 在测试类中实例化一个交通工具对象,并通过方法给它初始化speed和size的值并打印,另外调用加速减速的方法对速度进行修改。

public class Vehicle {
    private double speed;
    private double size;
    public void move(){
        System.out.println("开始运行!");
    }
    public void speedUp(double a){
            this.speed=this.speed+a;
    }

    public Vehicle(double speed, double size) {
        this.speed = speed;
        this.size = size;
    }

    public void speedDown(double a){
        this.speed=speed-a;
    }

    public double getSpeed() {
        return speed;
    }

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

    public Vehicle() {
    }

    public double getSize() {
        return size;
    }

    public void setSize(double size) {
        this.size = size;
    }
}

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Lenovo
 * Date: 2022-06-30
 * Time: 10:21
 */
public class Test02 {
    public static void main(String[] args) {
        //通过无参数构造方法创建对象
        Vehicle v=new Vehicle(120,5);
        v.setSize(5);
        v.setSpeed(120);
        System.out.println(v.getSpeed());
        System.out.println(v.getSize());
        //通过有参数的构造方法创建对象
        Vehicle v1=new Vehicle(130,4);
        //调用加速方法
        v.speedUp(20);
        System.out.println("加速后的speed:"+v.getSpeed());
        //调用减速方法
        v.speedDown(10);
        System.out.println("减速后的speed:"+v.getSpeed());
    }
}

在这里插入图片描述

二、实现简单的计算器

编写一个程序,模拟简单的计算器

  • 定义名为Number的类,其中有两个整型数据成员n1和n2应该声明为私有。
  • 编写构造方法赋予n1和n2初值
  • 再为该类定义:加,减,乘,除运算
  • 在main方法当中创建Number类的对象调用各个方法并显示计算结果
public class Number {
    private double n1;
    private double n2;

    public Number(double n1, double n2) {
        this.n1 = n1;
        this.n2 = n2;
    }
    public Number() {
    }

    public double getN1() {
        return n1;
    }

    public void setN1(double n1) {
        this.n1 = n1;
    }

    public double getN2() {
        return n2;
    }

    public void setN2(double n2) {
        this.n2 = n2;
    }

    public void addition(){
        double result=n1+n2;
        System.out.println(n1+" + "+n2+" = "+result);
    }
    public void subtraction(){
        double result=n1-n2;
        System.out.println(n1+" - "+n2+" = "+result);
    }
    public void multiplication(){
        double result=n1*n2;
        System.out.println(n1+" * "+n2+" = "+result);
    }
    public void division(){
        double result=n1/n2;
        System.out.println(n1+" / "+n2+" = "+result);
    }
}
public class Test01 {
    public static void main(String[] args) {
        Number n=new Number();
        n.setN2(20);
        n.setN1(110);
        n.addition();
        n.division();
        n.multiplication();
        n.subtraction();
    }
}

在这里插入图片描述

三、时间类

  • 定义名字为MyTime的类,其中应该有三个整型成员:时,分,秒
  • 为了保证数据的安全性,这三个成员应该定义为私有的
  • 为MyTime类定义构造方法以方便创建对象时初始化成员变量
  • 再定义display方法用于将时间信息打印出来

这里只对秒的加法做了取模和取余,因为是数学的问题:

public class MyTime {
    private int hour;
    private int minute;
    private int second;

    public int getHour() {
        return hour;
    }

    public void setHour(int hour) {
        this.hour = hour;
    }

    public int getMinute() {
        return minute;
    }

    public void setMinute(int minute) {
        this.minute = minute;
    }

    public int getSecond() {
        return second;
    }

    public void setSecond(int second) {
        this.second = second;
    }

    public MyTime() {
    }

    public MyTime(int hour, int minute, int second) {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }

    public void addSecond(int sec){
        int oldSec=this.getSecond();
        int newSec=oldSec+sec;
        if(newSec<60){
            this.setSecond(newSec);
        }else if(newSec==60){
            this.setSecond(0);
            this.addMinute(1);
        }else{
            this.setMinute(minute+newSec/60);
            this.setSecond(newSec%60);
        }
    }
    public void addMinute(int min){
        minute=minute+min;
    }
    public void addHour(int hou){
        hour=hour+hou;
    }
    public void subSecond(int sec){
        second=second-sec;
    }
    public void subMinute(int min){
        minute=minute-min;
    }
    public void subHour(int hou){
        hour=hour-hou;
    }
    public void display(){
        System.out.println("现在的时间是"+this.getHour()+"时"+this.getMinute()+"分"+this.getSecond()+"分");
    }
}
public class Test02 {
    public static void main(String[] args) {
        MyTime m=new MyTime();
        m.setHour(10);
        m.setMinute(20);
        m.setSecond(30);
        m.display();
        m.addHour(1);
        m.addMinute(2);
        m.addSecond(113);
        m.display();
    }
}

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温欣2030

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值