Erstellen einer Java-Klasse Car
Ich eine Klasse mit einem anderen separaten Treiber-Klasse. Die Klasse car ist ein Mietwagen-Unternehmen, um die Informationen über das Auto wie Marke, Modell und Kennzeichen, so dass die Verwendung der Treiber-Klasse, die ich nutzen kann, um input für neue Fahrzeuge, prüfen Sie, ob ein Fahrzeug mieten und nicht verfügbar, und die Namen der Mieter, wenn es angestellt ist.
Mein Auto Klasse mit Methoden:
public class Car {
private String Make;
private String Model;
private int RegistrationNum;
public Car(String Make, String Model, String RegN){
//Constructor,
//stores the make, model and registration number of the new car
//sets its status as available for hire.
Make = "";
Model = "";
RegN = "";
}
public String getMake(){
return Make;
}
public String getModel(){
return Model;
}
public boolean hire(String newHirer){
{
//Hire this car to the named hirer and return true.
return true;
}
//Returns false if the car is already out on hire.
}
public boolean returnFromHire(){
{
//Receive this car back from a hire and returns true.
return true;
}
//Returns false if the car was not out on hire
}
public int getRego(){
//Accessor method to return the car’s registration number
RegistrationNum++;
return RegistrationNum;
}
public boolean hireable(){
//Accessor method to return the car’s hire status.
{
//returns true if car available for hire
return true;
}
}
public String toString(){
//return car details as formatted string
//output should be single line containing the make model and reg number
//followed by either "Available for hire" or "On hire to: <name>"
return "Vehicle ID number: "+ getRego()+"-"+"Make is: "+ getMake()+"-"+"Model is: "+getModel();
}
}
Folgende ist meine Treiber-Klasse:
import java.util.*;
public class CarDriver {
static Car car1;
public static void main(String[] args) {
//TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
{
System.out.println("Make?");
String Make=scan.nextLine();
System.out.println("Model");
String Model=scan.nextLine();
System.out.println("Registration number?");
String RegNum=scan.nextLine();
car1 = new Car(Make,Model,RegNum);
System.out.println("What you input :");
System.out.println(car1.toString());
}}
}
meine Ausgabe:
Make?
carmake
Model
carmodel
Registration number?
12345t
What you input :
Vehicle ID number: 1-Make is: null-Model is: null
Probleme:
- nicht in der Lage zu verstehen, wie die Konvertierung der pseudocode für die
boolean-Methoden in java-codes - keine Verbindung mit dem Treiber
Klasse zum speichern der Informationen, die ich input, wie das Modell machen
und die Registriernummer
Ist diese Hausaufgaben?
verwenden Sie dieses.Machen,diese.Modell und diesem.rot-Schlüsselwort in der Konstruktor-store in Instanz-Variablen
fertig =] anyways, es ist wirklich nicht Hausaufgaben aber revision Fragen
Dein code würde besser Aussehen, wenn Sie nicht kontinuierlich Variablen-Namen.
verwenden Sie dieses.Machen,diese.Modell und diesem.rot-Schlüsselwort in der Konstruktor-store in Instanz-Variablen
fertig =] anyways, es ist wirklich nicht Hausaufgaben aber revision Fragen
Dein code würde besser Aussehen, wenn Sie nicht kontinuierlich Variablen-Namen.
InformationsquelleAutor Liquified | 2012-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
2.
Ändern Konstruktor:
Ihre bisherigen contructor hatte ein problem, im Grunde alles, was Sie Tat, war, dass Sie die Konstruktor-Argumente und stellen Sie alle auf "" (leere Zeichenfolge), die Sie nicht wollen, das zu tun. Sie zuweisen möchten argument Werte der Instanz-Felder. Wenn Sie möchten, um Zugriff auf Instanz-Felder, die Sie verwenden keyword - diese.
}
InformationsquelleAutor jellyfication
1.: zum abrufen der Informationen zu "für wen ist dieses Auto gemietet, um" oder "der Fahrer hat das Auto gemietet", müssen Sie store, dass Informationen zuerst.
Welchen Datentyp würden Sie verwenden? (denken Sie daran, dies sind "homeworks", ich denke, es ist besser, nicht zu geben meine Antwort).
P. S: es ist besser, verwenden Sie nicht Großbuchstaben Bezeichner für Variablen und nicht-static/final-Attribute.
InformationsquelleAutor J.A.I.L.
Als ich im code sehen, Sie setzen nicht alle Felder der Auto-Instanz im Konstruktor. Sie schreiben etwas wie dieses:
InformationsquelleAutor wizardzloy
Antwort auf Ihre zweite Frage:
Dem moment, in dem Sie rufen:
Den Konstruktor der Auto-Klasse aufgerufen, zusammen mit der Variablen, die Sie geliefert.
Wenn Sie einen Blick auf den constructor erstellt:
Können Sie sehen, dass die Variablen, die Sie zur Verfügung gestellt sind, nie auf die lokalen Variablen des Car-Klasse.
Um dieses Problem zu beheben, müssen Sie ändern es intto die folgenden:
Glück auf Ihrem Programm!
InformationsquelleAutor Byron Voorbach
Wenn Sie ruft den Konstruktor der
Car
Klasse mit dem gewünschten Parameter, standardmäßig diese parameter-Referenz an den Konstruktor.in der
Car
Klasse Konstruktor Ihre Parameter und member-Variablen IhrerCar
Klasse den gleichen Namen haben. Also, wenn der Konstruktor aufgerufen wird, wird der lokalen Variablen geändert, um eine leere Zeichenkette. Und wie die lokale variable enthält die Referenz des Aufrufers, so dass die ursprünglichen Variablen im Aufrufer wird auch geändert.Als Sie wieder sind, dass keine Instanz der Klasse member-Referenz, es bleibt immer noch null.
Wenn Sie die folgende code-segment in Ihrem Konstruktor,
Car
Klasse member-Variablen geändert werden, anstatt die Variablen aus der aufrufenden.InformationsquelleAutor Saikat