2013-08-07 72 views
-1

我最近創建了一個基於我看到的視頻的程序。他的程序應該將3個數字轉換成一個時間,在這個過程中檢查他們。我的問題是當我使用System.out.print(變量名稱);它打印該變量,然後在下一行打印出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); 
} 
} 

回答

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); 
} 

的原因,你都看到了,結果是因爲在你Time類的mil方法,你在呼喚你Time_display方法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); 
     } 

    } 

} 

我會,也強烈建議你花時間通讀Code Conventions for the Java Programming Language