2016-04-08 9 views
0

Mein Konstruktor nimmt keine Variablen. Der Benutzer führt die Klasse Clock aus, und theoretisch werden die eingegebene Stunde und Minute an die Klasse Time übergeben. Leider werden die Variablen Stunde und Minute nicht an Zeit übergeben und der Code wird nicht ausgeführt.Mein Konstruktor nimmt nicht die Variablen

Dies ist die erste Klasse, in der der Benutzer die aktuelle Zeit eingibt.

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

}

Und das ist die zweite Klasse, die eingegeben einer Minute auf die Zeit addiert, druckt er in Standardzeit, und druckt sie in Militärzeit.

/** 
* 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; 
} 

}

Würden Sie in der Lage sein zu zeigen, wo ich schief gelaufen ist und wie ich diesen Fehler beheben kann?

Vielen Dank.

+3

Wo ist dein 'Zeit' Konstruktor? –

+0

Es sollte am Ende des Beitrags sein. Wenn Sie fragen, wo ich die Klasse Time anrufe, ist das in Zeile 47 in der Klasse Clock. –

+0

Ihr Beitrag enthält ** Nein ** 'Zeit' Konstruktor; Sie haben eine 'void' Methode' clock' und eine 'toString'. –

Antwort

1

Your Time Objekt benötigt einen Konstruktor, wenn Sie Werte übergeben, um es wollen:

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

Oder so ähnlich :) Wenn Sie eine neue Zeitinstanz erstellen möchten, rufen Sie Ihren Konstruktor

new Time(3, 4) 

Denken Sie auch daran, dass int-Werte normale Ganzzahlen sind. Sie können 00 oder 01 nicht speichern, sie werden als 0 und 1 gespeichert. Wenn Sie Ihre Minuten als 00 oder so anzeigen möchten, müssen Sie eine Möglichkeit finden, die Werte auf eine nette Weise anzuzeigen!

+1

Ooh, das macht Sinn. Vielen Dank für die Klärung dieses Problems, ich schätze es sehr. –

Verwandte Themen