我的构造函数不接受变量。用户运行类Clock,理论上,输入的小时和分钟将传递给类Time。不幸的是,变量小时和分钟不会传递给时间,代码也不会执行。
这是第一个用户输入当前时间的类。
/**
* Write a description of class Clock here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.Scanner;
public class Clock
{
public static void main (String [ ] args)
{
Scanner scan = new Scanner (System.in);
int hour = 12;
int minute = 00;
System.out.println("Please enter the hour.");
System.out.println();
System.out.print("--> ");
hour = scan.nextInt();
System.out.println();
System.out.println();
System.out.println("Please enter the minute.");
System.out.println();
System.out.print("--> ");
minute = scan.nextInt();
System.out.println();
System.out.println();
System.out.println();
if (hour > 24 || hour < 00)
{
hour = 24;
}
if (minute > 59 || minute < 00)
{
minute = 00;
}
Time CLOCK = new Time ();
System.out.println(CLOCK);
}
}
这是第二类,它在输入的时间增加一分钟,在标准时间打印,并在军事时间打印。
/**
* Write a description of class Time here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Time
{
private int h;
private int m;
String string4;
String string7;
String mitime;
public void increment (String string1, int minute)
{
int intime = minute + 1;
String string3 = intime + "";
string4 = string1+string3;
}
public void convert (int h, int m)
{
int hour = h;
int minute = m;
String zone = "";
if (hour > 12)
{
zone = "PM";
}
else
{
zone = "AM";
}
if (hour > 12)
{
hour = hour - 12;
}
String string5 = hour + "";
String string6 = minute + "";
string7 = hour + ":" + minute + " " + zone;
}
public void clock (int hour, int minute)
{
h = hour;
m = minute;
convert(h, m);
int integer = hour;
String string1 = integer + "";
int integer2 = minute;
String string2 = integer2 + "";
mitime = integer + string2;
increment(string1, minute);
}
public String toString ( )
{
return "Military Time:\n" +
mitime +
"\n\nStandard Time:\n" +
string7 +
"\n\nIn one minute, it will be " +
string4;
}
}
你能指出我哪里出错了,以及我如何解决这个错误?
非常感谢。
答案 0 :(得分:1)
如果要将值传递给它,您的Time对象需要一个构造函数:
public class Time{
public Time(int value1, int value2) {
h = value1;
m = value2;
}
}
或类似的东西:)如果你想创建一个新的时间实例,你可以调用你的构造函数
new Time(3, 4)
另外,请记住int值是正常整数。你不能存储00或01,它们将被存储为0和1.如果你想将你的分钟视为00左右,你需要想办法以一种很好的方式显示这些值!