Java-Konstruktoren
Ich versuche zu lernen, wie Sie angeben, Klasse Konstruktoren in Java. Ich beginne zu verstehen, dass Sie angeben, welche Arten von Instanz-Variablen von Objekten aus dieser Klasse. Sie können auch verwendet werden, um den Instanzvariablen Initiale Werte. Das folgende Beispiel ist aus dem Java-tutorial auf der Sun website:
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
Denen Sie in Ihren Klassen source-code sollten Sie die Konstruktor(en)?
Sind diese Argumente werden die Namen der Variablen?: (int startCadence, int startSpeed, int startGear) oder Gang, Trittfrequenz und Geschwindigkeit werden die Namen der Variablen?
Was ist der Unterschied zwischen (int startCadence, int startSpeed, int startGear) und Gang, Trittfrequenz und Geschwindigkeit?
In dem unwahrscheinlichen Fall, dass mein Lehrer oder einem administrator von Salt Lake Community College kommt immer über diese Frage, lassen Sie mich, meine Absichten klar. Diese Frage gepostet wird, der größte Geist der akademischen Ehrlichkeit. Ich bitte diese Frage zu suchen, Allgemeine Beratung und Hilfe für das Verständnis der richtige Weg, um die Verwendung der Programmiersprache Java. Ich in keiner Weise verwenden, die Arbeit von anderen und stellen es als meine eigene Arbeit. Ich nutze die Antworten, die hier als Allgemeine Hilfe in meinem Verständnis. Ich mache alle meine eigene Arbeit und kopieren Sie nicht die Arbeit die Leute zur Verfügung gestellt, die Beantwortung meiner Frage.
InformationsquelleAutor der Frage Patrick Cassell | 2009-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Konstruktoren können an beliebiger Stelle in den code für die Klasse. Jedoch, durch Konvention, die meisten Menschen stellen Sie vor allen anderen Funktionen, die nicht Konstruktoren.
Wie für die Variablennamen, alle 6 sind eigentlich Variablen-Namen, aber der Umfang ist differnet. Diejenigen angegeben, die als Parameter an den Konstruktor (startCadence, startSpeed, startGear) sind nur innerhalb des Konstruktors. Die anderen 3 (Gang, Trittfrequenz, Geschwindigkeit) sind wohl class-wide-Variablen zur Verfügung, um alle Methoden. Jedoch ist die definition nicht angezeigt wird, in Ihr code-snippet ein. Die vollständige Klasse Aussehen würde mroe wie:
Hoffe, das hilft!
InformationsquelleAutor der Antwort CodingWithSpike
Gang, Trittfrequenz und Geschwindigkeit sind member-Variablen der Klasse (erklärt an anderer Stelle) und startCadence, startSpeed, und startGear sind Parameter der Funktion.
InformationsquelleAutor der Antwort basszero
Benutze ich folgende:
Aber Sie können überall hingehen. Ich glaube, es ist besser, yo, die Dinge in die Ordnung der Sichtbarkeit. Zum Beispiel habe ich lieber die öffentlichen Methoden, bevor der private-Methoden ( also wenn ich mich für eine bestimmte öffentliche Methode, die ich weiß, es ist am Anfang der Datei ) Für den gleichen Grund, warum ich in der Regel setzen Sie den Konstruktor an der Spitze.
Nicht notwendig, Sie können den Namen für Sie, wie Sie möchten. Ich in der Regel den gleichen Namen verwenden.
Sind Sie die Instanz Variablennamen
Ersten sind die Namen der parameter für den Konstruktor und den ehemaligen sind die Namen der Attribute des Objekts selbst.
Nehmen Sie das andere Beispiel:
Wie Sie sehen, wenn Sie einen Wert übergeben an den Konstruktor Sie verwenden ein argument, und wenn man die Konstruktor-code sehen Sie die parameter-Namen ( der erhält das argument ) und dann wird es zugeordnet ist, die Instanz-Attribut.
InformationsquelleAutor der Antwort OscarRyz
Ich in der Regel meine Konstruktoren in der Nähe der Spitze meiner Datei nach der Paket -, import -, Javadoc und statische/Instanz-Variablen-deklarations-Abschnitte.
Gang, Trittfrequenz und Geschwindigkeit sind die class-Variablen, die vermutlich außerhalb von Ihnen definiert der Konstruktor irgendwo. startCadence, startSpeed, und startGear sind ebenfalls Variablen, aber Sie sind die Parameter an den Konstruktor übergeben.
Können Sie auch sehen, so etwas wie dieses:
stellt die Klasse die Variablen der Parameter mit dem gleichen Namen.
InformationsquelleAutor der Antwort Powerlord
gear
cadence
undspeed
sind die Variablen.ints
an den Konstruktor übergeben. Die Namen (startCadence
startSpeed
undstartGear
genannt formalen Parameterund Sie sind die Weise, die Sie identifizieren können, die Argumente. Sehen http://en.wikipedia.org/wiki/Parameter_(computer_science).gear
cadence
undspeed
definiert sind irgendwo anders in der Klasse. Jede Methode in der Klasse können auf diese verweisen.Mach dir keine sorgen-wenn Sie daran arbeiten, diese Art der Sache wird es zur zweiten Natur wird ziemlich bald.
Oh, und darf ich vorschlagen, dass Sie eine gute IDE? BlueJ gut sein soll für Anfänger, und NetBeans und Eclipse für erfahrene Programmierer. Source-code-Hervorhebung von unschätzbarem Wert sein kann.
InformationsquelleAutor der Antwort Michael Myers
Benötigen Sie unbedingt eine Kopie der Head First Java
InformationsquelleAutor der Antwort Fortyrunner
Eigentlich, die Argumente eines Konstruktors nicht gespeichert wie das Objekt den member-Variablen. Hier ist ein Beispiel:
In diesem Beispiel der Konstruktor-argument ist nicht wirklich überall gespeichert, aber sein Wert ist notwendig für die Berechnung eines oder mehrerer member-variable Werte.
Das Verhalten, das Sie gesehen haben, wo alle Argumente gespeichert sind, direkt als member-Variablen, ist sehr verbreitet. Vor allem für bestimmte Arten von Klassen, die einfach "getter" und "setter" - Methoden für Ihre member-Variablen (ohne mit einer Berechnung oder transformation von Funktionen). In der java-Welt, diese Arten von Klassen, die gemeinhin als "Bohnen". (Die, ja, ist ein ganz blöder name.)
InformationsquelleAutor der Antwort benjismith
Den grundlegenden Unterschied zwischen int startCadence und Trittfrequenz nicht in Variablen, sondern in deren Umfang. Wenn eine variable definiert ist, innerhalb einer Methode, wie ein Konstruktor, existiert es nur innerhalb dieser Methode, aber nicht außerhalb. Wenn eine variable in einer Klasse definiert, wird es überall gibt, die in dieser Klasse eine solche variable hat einen globalen Geltungsbereich.
Die variable startCadence wll existieren nur innerhalb des Konstruktors, also, wenn Sie verwenden möchten, ist es Wert, anderswo, Sie können übergeben Sie es an eine andere variable mit globalem Gültigkeitsbereich. Dies ist, was passiert hier: cadence = startCadence;
InformationsquelleAutor der Antwort Berend Vervelde
1) Die Lage der Konstruktor spielt keine Rolle im geringsten. Gehen von der Konvention, jedoch würde ich persönlich legen Sie es wie folgt:
2) Gang, Trittfrequenz und Geschwindigkeit sind member-Variablen der Klasse; Sie gehören zu jedem Fahrrad und sind verschiedene Variablen für jedes Fahrrad. startCadence, startSpeed, und startGear, jedoch sind lokale Variablen, die gehören nur in dieser Funktion. Wenn ich nach einem
startCadence auf 10 eingestellt ist, startSpeed ist auf 15 festgelegt, und startGear auf 5 festgelegt ist. Dann initialisiert der Konstruktor die Membervariablen, um Ihre "start" mit den zugehörigen Variablen.
InformationsquelleAutor der Antwort Allan S
Den
(int startCadence, int startSpeed, int startGear)
Parameter werden dem Konstruktor Argumente, und Sie wird die Fahrrad-Feldercadence
speed
undgear
. Sie sind nur innerhalb des Konstruktors.gear
cadence
undspeed
sind Instanz-Variablen, die einzigartig für jedes Fahrrad Instanz und referencable von anderen Methoden.Der Konstruktor Argumente ermöglichen es Ihnen, Parameter für die Initialisierung eines Objekts. In diesem Beispiel, erstellen Sie eine Fahrrad-Objekt mit einem Getriebe von 1, Schlagzahl 0 und einer Geschwindigkeit von 0 in etwa so:
Oder Sie erstellen ein bewegliches Rad, wo die Trittfrequenz 60 U /min und die Geschwindigkeit ist 10 km /h im 3. Gang etwa so:
Die Platzierung der Konstruktor ist irrelevant, aber in der Regel Konstruktoren sind platziert am Anfang der Klassendefinition.
InformationsquelleAutor der Antwort
InformationsquelleAutor der Antwort BISOYI SURESH