使用setTime方法遇到麻烦

时间:2016-02-16 22:40:36

标签: java

嘿伙计,所以我需要帮助我的setTime方法。基本上这是我的任务中的问题:

考虑一个代表一天中某个时间的课程。它有属性 小时和分钟。小时值的范围是0到23,其中范围是0到 11表示中午之前的时间。分钟值范围从0到59。 一个。编写一个默认构造函数,将时间初始化为0小时0分钟。 湾写一个私有方法isValid(小时,分钟),如果是,则返回true 给定的小时和分钟值在适当的范围内。 C。写一个方法setTime(小时,分钟),设置给定的时间 值有效。

我需要c的帮助,在我的代码中你可以看到我有设定的时间方法但是当我运行我的程序并输入时间时它返回此而不是输入的数字:

Please enter the hour
3
Please enter the minute
23
The time is time.Time@4d546e25 time.Time@620b66cc
BUILD SUCCESSFUL (total time: 3 seconds)

我的代码

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package time;

/**
 *
 * @author 
 */
public class Time {

/**
 * @param args the command line arguments
 */

//default constructor

public static int hour;
public static int minute;


public Time(){
    hour = 0;
    minute = 0;

}


 private static boolean isValid(int hour, int minute)
 //returns true if given hour & minute values are in range
 {
    if((hour >= 0 && hour <= 23) && (minute >= 0 && minute <=11))
    {
        return true;
    }
    else
    {
        return false;
    }
 }


public void setTime(int hour, int minute)
 //set time if given values are valid - 
{
    System.out.println("Please enter the hour");
    Scanner keyboard = new Scanner (System.in);
    int num1 = keyboard.nextInt();

    Time.hour = num1;
    System.out.println("Please enter the minute");
    int num2 = keyboard.nextInt();
    Time.minute = num2;

}


public static void main(String[] args) {
    // Karamullah Agha

    Time hour = new Time();
    Time minute = new Time();

    hour.setTime(0,0);


    System.out.println("The time is " + hour + " " + minute);     

  }
}

1 个答案:

答案 0 :(得分:2)

您的方法是重新声明变量(但没有类型),这会影响类字段。

private boolean isValid(hour, minute)

应该是

private boolean isValid()

使用this.hourthis.minute将它们传递给

这样的方法
private boolean isValid(int hour, int minute)