[Java] Verständnisfragen2

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von ChiN, 1. Dezember 2009 .

Schlagworte:
  1. 1. Dezember 2009
    Verständnisfragen2

    guten Morgen

    Bei einer set Methode

    Code:
    public void setFahrgestellnummer([B]String fahrgestellnummer[/B]) {
     this.fahrgestellnummer = [B]fahrgestellnummer[/B];
    wird beim aufruf ein Wert für String fahrgestellnumer eingesetzt. dass dieser in das objekt geschrieben wird sagt man dem Programm, dass fahrgestellnummer aus dem Objekt und die variable aus der Methode die gleiche referenz haben.


    Bei der get Methode

    Code:
    public String getHersteller() {
     return hersteller;
    }
    wird nichts zwischen die klammer geschrieben, da man etwas ausgeben und nicht einlesen möchte.
    die return Anweisung im Rumpf der Methode besteht aus return hersteller, das den Wert der herstellervariable ausgibt.

    Was haette es für einen effekt, wenn ich in die Klammer (String hersteller) eingeben würde?


    _________________________________________________________

    Code:
    public class Kundenverwaltung {
     private Vector<Kunde> KundenListe = new Vector<Kunde>();
     
     private Kunde einKunde= new Kunde();
     
     public Kundenverwaltung(int Kunden) {
     for (int i=0; i < Kunden; i++) {
     einKunde = new Kunde(-1, "Vorname", "Nachname", "Straße", 12345, "Ort" );
     this.KundenListe.add(einKunde);
     }
     }
    hier wird doch immer wieder objekte erstellt, die immer auf die gleiche variable gerichtet ist.
    wie kann in einem vector immer wieder alles sich auf einKunde beziehen?
     
  2. 1. Dezember 2009
    AW: Verständnisfragen2

    meinst du wenn du
    Code:
    public String getHersteller(String hersteller) {
     return hersteller;
    }
    
    schreiben würdest?

    dann passiert nichts groß, außer, dass du dann z.b.

    Code:
    String temp = irgeneinFahrzeug.getHersteller(irgendein_String); 
    
    schreiben müsstest.. du würdest trotzdem nur die hersteller var. bekommen, weil die Funktion weiß ja nicht, dass sie ein getter ist, das definierst du ja nur so, man schreibt halt nur keine Parameter in die Funktion, weil sie ja nur nen Wert returnen soll und es (in dem Fall) unsinnig wäre der Funktion noch einen Parameter zu übergeben


    _________________________________________________________________________

    und zu deiner zweiten Frage (wenn ichs verstanden habe was du meinst)

    "einKunde" wird in jedem Schleifendurchlauf ein neuer Wert zugewiesen (in deinem Fall zwar immer der gleiche) und dann addest du "einKunde" zum Vector, dann springt man wieder zum Anfang der Schleife und dann wird halt wieder ein neues Object zu "einKunde" zugewiesen was du wieder addest
     
  3. 1. Dezember 2009
    AW: Verständnisfragen2

    das heisst die variable "einKunde" hat dann mehrere referenzen auf verschiedene Objekte
     
  4. 1. Dezember 2009
    AW: Verständnisfragen2

    nein, "einKunde" hat zu jedem Zeitpunkt nur eine Referenz auf ein Objekt.

    du erzeugst ja in jedem Schleifendurchlauf ein neues Objekt, es hat zwar bei dir immer den gleichen Inhalt, ist aber immer wieder ein neues Objekt, d.h. du hast nach 10 Schleifendurchläufen 10 Kunden Objekte, aber zu diesem (10. Schleifendurchlauf) zeigt "einKunde" nur auf das 10. Objekt

    du hast dann also einen Vektor wo du 10 verschiedene Kunden Objekte (mit jedoch gleichem Inhalt) drin hast
    Die werden dann Intern als Kunde1, Kunde2.. (vereinfacht gesagt) gespeichert


    // Edit:

    beziehungsweiße.. ja aber halt nicht gleichzeitig sonder immer nacheinander
     
  5. 1. Dezember 2009
    AW: Verständnisfragen2

    ich glaube ganz so ists nicht, weil sich hersteller dann auf den hersteller-parameter bezieht und nicht auf die var, du würdest also "irgendein_String" als rückgabewert erhalten. wenn er die hersteller var aus dem objekt haben wollen würde, müsste dort "return this.hersteller" stehen.

    All in all ists aber in dem Fall total sinnlos nen string als parameter mit zu übergeben.

    wenn du allerdings z.b. in deinem objekt ein String[] Hersteller hättest würde die funktion
    Code:
    public String getHersteller(int i){
    return Hersteller[i]
    }
    insofern sinn machen, als dass du dann den i-ten wert aus dem array auslesen könntest [wobei man dann eher das ganze array zurückgeben und das dann referenzieren würde, aber das ist wohl geschmackssache]
     
  6. 1. Dezember 2009
    AW: Verständnisfragen2


    hast du selbstverständlich recht
     
  7. 1. Dezember 2009
    AW: Verständnisfragen2

    Chin, mach dir am besten EINEN Thread, wo dir dann alle Fragen beantwortet werden
    Ist wsh sinnvoller
     
  8. 2. Dezember 2009
    AW: Verständnisfragen2

    ^^ das wollte ich auch machen. die fragen kommen aber immer beim "Lernen". Wenn ich dann einen thread auf mach, dann wird der vielleicht nach der 10 Frage nichtmehr banatwortet. wenn es aber euch so lieber ist werde ich es dann so machen.
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.