2013-08-07 2 views
-1

나는 최근에 본 비디오를 기반으로 프로그램을 만들었습니다. 그는 3 개의 숫자를 한 번에 변환하여 그 과정에서 확인합니다. 내 문제는 System.out.print (변수 이름)를 사용할 때입니다. 변수를 인쇄 한 후 다음 행에 null을 인쇄합니다. System.out.println (변수 이름)을 삭제했습니다. 널 (null)도 사라졌고 시간도 그랬습니다. 나는 변수를 inbetween 메소드와 클래스를 바꿔서 어딘가에서 엉망으로 만들었 기 때문에 그것을 추측합니다.변수가 대답과 null을 반환

클래스 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

관련 문제