-1

我最近根据我看到的视频创建了一个程序。他的程序应该将 3 个数字转换为时间,并在此过程中检查它们。我的问题是当我使用 System.out.print(variable name); 它打印变量,然后在下一行打印空值。我已经删除了 System.out.println(variable name); 空值消失了,时间也消失了。我猜是因为我在方法和类之间交换了变量,我在某个地方搞砸了。

上课时间_display

package Projects;

import java.util.*;
public class Time_display {
static int h=11;
static int m=56;
static int s=32;
static String temp;
public static void main(String[] args){

    Time object=new Time();
    object.Check(h,m,s);
    //object.mil(String temp);
    //String temp=object.mil(temp);
    Display(temp);


}public static void Display(String temp){
    System.out.println(temp);

}
}

CLass Time



package Projects;

public class Time {
private int hour=0;
private int minute=0;
private int second=0;
public String temp;
public void Check(int h, int m,int s){

    int hour=(h<24 && h>0 ? h:0);
    int minute=(m<60 && m>0 ? m:0);
    int second=(s<60 && s>0 ? s:0);

    //System.out.printf("%02d:%02d:%02d",hour,minute,second);
    temp=String.format ("%02d:%02d:%02d", hour, minute, second);
    //System.out.println(temp);
    mil(temp);

}public String mil(String temp){

    Time_display object2=new Time_display();

    object2.Display(temp);

    return String.format ("%02d:%02d:%02d", hour, minute, second);
}
}
4

1 回答 1

2

在你main的方法中,你正在输出类变量temp,但你没有给它分配任何东西......这是你的null.

public static void main(String[] args){
    Time object=new Time();
    object.Check(h,m,s);
    //object.mil(String temp);
    //String temp=object.mil(temp);
    Display(temp);
}

你看到它的原因和结果是因为在mil你的类的方法中,你在你Time的方法中调用方法......再次......DisplayTime_display

public String mil(String temp){
    Time_display object2=new Time_display();
    // This value is not null...
    object2.Display(temp);
    return String.format ("%02d:%02d:%02d", hour, minute, second);
}

老实说,我完全不知道你想要达到什么目的,但如果我这样做,我可能会想做一些更像......

public class TimeDisplay {

    static int h = 11;
    static int m = 56;
    static int s = 32;
    static String temp;

    public static void main(String[] args) {

        display(Time.format(h, m, s));

    }

    public static void display(String temp) {
        System.out.println(temp);

    }

    public static class Time {

        public static String format(int h, int m, int s) {
            int hour = (h < 24 && h > 0 ? h : 0);
            int minute = (m < 60 && m > 0 ? m : 0);
            int second = (s < 60 && s > 0 ? s : 0);

            return String.format("%02d:%02d:%02d", hour, minute, second);
        }

    }

}

我还强烈建议您花时间阅读Java 编程语言的代码约定

于 2013-08-07T04:53:46.647 回答