如何为用java创建的时钟获得正确的输出?

如何为用java创建的时钟获得正确的输出?,java,class,constructor,stack-overflow,Java,Class,Constructor,Stack Overflow,我的老师给了我这个作业。她给了我们一个ClockTester.java主程序,我们必须创建一个公共类来声明要在ClockTester中使用的对象和方法。下面是测试仪,下面是我的clock.java代码。我很难把它格式化成她想要的00:00:00。我也把她的指示放在指南里 如果有人能帮忙的话,请帮帮我。 此外,当我试图运行程序时,我得到一个堆栈溢出错误 //------------------------------------------------------------------- /

我的老师给了我这个作业。她给了我们一个ClockTester.java主程序,我们必须创建一个公共类来声明要在ClockTester中使用的对象和方法。下面是测试仪,下面是我的clock.java代码。我很难把它格式化成她想要的00:00:00。我也把她的指示放在指南里

如果有人能帮忙的话,请帮帮我。 此外,当我试图运行程序时,我得到一个堆栈溢出错误

//-------------------------------------------------------------------
//程序:时钟测试器
//作者:D.斯宾塞
//日期:2014年4月4日
//目的:测试时钟类的功能
//-------------------------------------------------------------------
导入java.util.Scanner;
公共类时钟测试器
{
公共静态void main(字符串[]args)
{
//在Clock类中声明五个对象
时钟c1、c2、c3、c4、c5;
//使用构造函数初始化时钟对象
c1=新时钟();
c2=新时钟(15);
c3=新时钟(8,30);
c4=新时钟(12,5,45);
//显示所有四个对象
系统输出打印项次(“c1为”+c1);
系统输出打印项次(“c2为”+c2);
System.out.println(“c3为”+c3);
System.out.println(“c4为”+c4);
System.out.println();
//确定时钟时间是否超过中午
System.out.println(c1+“是”+(c1.isPM()?“午后”:“中午或中午之前”);
System.out.println(c2+“是”+(c2.isPM()?“午后”:“中午或中午之前”);
System.out.println(c3+“是”+(c3.isPM()?“午后”:“中午或中午之前”);
System.out.println(c4+“是”+(c4.isPM()?“午后”:“中午或中午之前”);
System.out.println();
//手动设置一个值
c1.设定时间(14,15,30);
系统输出打印项次(“将c1更改为”+c3);
//平等性检验
系统输出(c1+“is”);
系统输出((c1.等于(c3))?“等于”:“不等于”);
System.out.println(“至”+c3);
System.out.println();
c5=新时钟(15,0,0);
系统输出(c5+“is”);
系统输出((c5.等于(c2))?“等于”:“不等于”);
系统输出(“至”+c2);
System.out.println();
//演示数学运算
System.out.println(“\n某些时钟操作:”);
系统输出(c1+“+10小时为”);
c1.额外工作时间(10小时);
System.out.println(c1);
系统输出(c3+“+45分钟为”);
c3.补充分钟(45分钟);
System.out.println(c3);
系统输出(c4+“+90秒为”);
c4.增加秒数(90);
System.out.println(c4);
系统输出(c4+“+12:59:55为”);
c4.添加时间(12,59,55);
System.out.println(c4);
//TestBonus();
System.out.println();
System.out.println(“时钟类的测试到此结束”);
System.out.println();
}
/*
公共静态void TestBonus()
{
System.out.println(“\n****测试奖金功能****\n”);
时钟c6=新时钟(2,30,'p');
System.out.println(“非军用时钟时间:+c6”);
c6.2(真实);
System.out.println(“军用同一时钟:+c6”);
}
*/
}
//-------------------------------------------------------------------
//节目:时钟
//作者:泰勒P。
//日期:2016年11月30日
//目的:创建时钟类
//-------------------------------------------------------------------
公课钟
{
私人整数小时;
私人整数分钟;
私人整数秒;
私人最终整数小时数_Min=0;
私人最终整备时数_Max=23;
私人最终整数分钟数=0;
私人最终整数分钟数(最大值=59);
专用最终整数秒_Min=0;
私人最终整数秒_Max=59;
//构造函数将默认时间设置为午夜(00:00:00)
公共时钟()
{
这个小时=00;
这是1.5分钟=00;
这1.5秒=00;
}
//构造函数将小时设置为输入值
公共时钟(int h)
{
这个小时=小时;
这是1.5分钟=00;
这1.5秒=00;
}
//构造函数将小时和分钟设置为输入值
公共时钟(整数h,整数m)
{
这个小时=小时;
这个。分钟=m;
这1.5秒=00;
}
//构造函数将小时、分钟、秒设置为输入值
公共时钟(整数h、整数m、整数s)
{
这个小时=小时;
这个。分钟=m;
这个。秒=s;
}
//-------------------------------
//方法:getHours
//返回时间:整小时
//参数:无
//目的:返回时间
//-------------------------------
公共时间
{
把这张表还给我;
}
//------------------------------
//方法:getMinutes
//返回:int
//参数:无
//目的:返回分钟
//------------------------------
公共int getMinutes()
{
把这个还给我。分钟;
}
//------------------------------
//方法:getSeconds
//返回:int
//参数:无
//目的:返回秒数
//------------------------------
公共整数getSeconds()
{
返回这个。秒;
}
//------------------------------
//方法:isPM
//返回:布尔值
//参数:无
//目的:确定时间是否超过中午
//------------------------------
公共布尔值isPM()
{
如果(该时间小于12小时)
返回false;
其他的
返回true;
}
//------------------------------
//方法:设定时间
//返回:无效
//参数:3种整数类型-小时、分钟、秒
//目的:将时间设置为(00:00:00)格式
//-----------------------------
公共无效设置时间(int h、int m、int s)
{
这个小时=小时;
这个。分钟=m;
这个。秒=s;
}
//-----------------------------
//方法:addHours
//返回:无效
//参数:小时的整数类型
//目的:将时间加在一起
//-----------------------------
公共空间附加小时数(整数小时)
{
this.hours=this.hours+h;
}
//-----------------------------
//方法:addMinutes
//返回:无效
//参数:分钟的int类型
//目的:将分钟加在一起
//-----------------------------
公共无效添加分钟数(整数m)
{
this.minutes=this.minutes+m;
}
//----------------------------
//方法:addMinutes
//返回:无效
//参数:秒的int类型
//目的:将秒数相加
//----------------------------
普布利
 if (this.equals (this.hours ....
String.format ("%02d:%02d:%02d", hours, minutes, seconds);
public boolean equals (Clock c)
{
    boolean equiv = c.equals(c); // this keeps calling itself
    return equiv;
}
public boolean equals (Clock c)
{
    boolean equiv = c!=null && this.hours==c.hours && this.minutes==c.minutes && this.seconds==c.seconds;
    return equiv;
}
public String toString()
{
    String string = String.format("%02d:%02d:%02d", this.hours, this.minutes, this.seconds);
    return string;
}
@Override
public boolean equals(Object o) {
    if (o instanceof Clock) { // <-- Is it a Clock?
        Clock c = Clock.class.cast(o); // <-- Use o as a Clock
        return c.isPM() == this.isPM() //
                && c.getHours() == this.getHours() //
                && c.getMinutes() == this.getMinutes() //
                && c.getSeconds() == this.getSeconds();
    }
    return false;
}
private static String get2Digits(int i) {
    if (i < 10) {
        return "0" + i;
    }
    return String.valueOf(i);
}
@Override
public String toString() {
    return new StringBuilder(8) //
            .append(get2Digits(hours)) //
            .append(':').append(get2Digits(minutes)) //
            .append(':').append(get2Digits(seconds)) //
            .toString();
}