2016-04-08 8 views
0

私のコンストラクタは変数を取りません。ユーザーはClockクラスを実行します。理論的には、入力された時間と分はTimeクラスに渡されます。残念ながら、変数hourとminuteはTimeに渡されず、コードは実行されません。私のコンストラクタは変数を取っていません

これは、ユーザーが現在時刻を入力するファーストクラスです。

/** 
* Write a description of class Clock here. 
* 
* @author (your name) 
* @version (a version number or a date) 
*/ 

import java.util.Scanner; 

public class Clock 
{ 
public static void main (String [ ] args) 
{ 
    Scanner scan = new Scanner (System.in); 
    int hour = 12; 
    int minute = 00; 

    System.out.println("Please enter the hour."); 
    System.out.println(); 

    System.out.print("--> "); 
    hour = scan.nextInt(); 

    System.out.println(); 
    System.out.println(); 

    System.out.println("Please enter the minute."); 
    System.out.println(); 

    System.out.print("--> "); 
    minute = scan.nextInt(); 

    System.out.println(); 
    System.out.println(); 
    System.out.println(); 

    if (hour > 24 || hour < 00) 
    { 
     hour = 24; 
    } 

    if (minute > 59 || minute < 00) 
    { 
     minute = 00; 
    } 

    Time CLOCK = new Time(); 

    System.out.println(CLOCK); 
} 

}

そして、これは、入力された時刻に1分を追加して第二のクラス、である、標準時間でそれを印刷し、軍事時間でそれを印刷します。

/** 
* Write a description of class Time here. 
* 
* @author (your name) 
* @version (a version number or a date) 
*/ 
public class Time 
{ 
private int h; 
private int m; 

String string4; 
String string7; 
String mitime; 

public void increment (String string1, int minute) 
{ 
    int intime = minute + 1; 
    String string3 = intime + ""; 
    string4 = string1+string3; 
} 

public void convert (int h, int m) 
{ 
    int hour = h; 
    int minute = m; 

    String zone = ""; 

    if (hour > 12) 
    { 
     zone = "PM"; 
    } 
    else 
    { 
     zone = "AM"; 
    } 

    if (hour > 12) 
    { 
     hour = hour - 12; 
    } 

    String string5 = hour + ""; 
    String string6 = minute + ""; 
    string7 = hour + ":" + minute + " " + zone; 

} 

public void clock (int hour, int minute) 
{ 
    h = hour; 
    m = minute; 


    convert(h, m); 

    int integer = hour; 

    String string1 = integer + ""; 

    int integer2 = minute; 


    String string2 = integer2 + ""; 

    mitime = integer + string2; 

    increment(string1, minute); 
} 

public String toString () 
{ 
    return "Military Time:\n" + 
      mitime + 
      "\n\nStandard Time:\n" + 
      string7 + 
      "\n\nIn one minute, it will be " + 
      string4; 
} 

}私が間違っていたところ

はあなたが指摘することができるだろう、と私はこのエラーを修正することができますか?

ありがとうございました。あなたはそれに値を渡したい場合は

+3

あなたの 'Time'コンストラクタはどこですか? –

+0

投稿の下部にあるはずです。私がクラスTimeをどこに呼んでいるのかを尋ねるなら、Clockクラスの47行目です。 –

+0

投稿には** no ** 'Time'コンストラクタが含まれています。あなたは 'void'メソッド' clock'と 'toString'を持っています。 –

答えて

1

あなたのTimeオブジェクトはコンストラクタを必要とする:あなたは新しい時間インスタンスを作成したい場合は

public class Time{ 
    public Time(int value1, int value2) { 
     h = value1; 
     m = value2; 
    } 
} 

またはそのような何か:)、あなたが呼び出すコンストラクタ

new Time(3, 4) 

また、int値は通常の整数です。 00または01を保存することはできません.0と1として保存されます。00分に分を表示する場合は、値を素敵な方法で表示する方法を見つけ出す必要があります。

+1

おっと、それは意味があります。これをクリアしてくれてありがとう、本当にありがとう。 –

関連する問題