-1

最近、私が見たビデオに基づいてプログラムを作成しました。このプログラムは、3 つの数値を時間に変換し、その過程でそれらをチェックすることになっています。私の問題は、 System.out.print(variable name); を使用するときです。変数を出力し、次の行に null を出力します。System.out.println(変数名); を削除しました。ヌルは消え去り、時間も消えました。メソッドとクラスの間で変数を交換し、どこかを台無しにしたためだと思います。

クラス Time_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 に答える