2 Konstruktoren

Status
Nicht offen für weitere Antworten.

Bierhumpen

Bekanntes Mitglied
also ich habe eine aufgabe bekommen in der steht dass ich in eine Klasse 2 konstruktoren schreiben soll...

wie soll das bitte gehen?!

Hab ich noch nie von gehört
 
S

SlaterB

Gast
Code:
public class Test() {

    public Test() {
        System.out.println("Standardkonstruktor ohne Parameter");
    }

    public Test(String st) {
        System.out.println("Konstruktor mit String-Parameter: "+st);
    }



   public static void main(String[] args) {
       Test t1 = new Test();
       Test t2 = new Test("Hello World");
   }

}

unwiderlegbar zwei Konstruktoren ;)
 

Lim_Dul

Top Contributor
Eine Klasse kann beliebig viele Konstruktoren haben. Sie müssen alle nur unterscheidbar sein.

Beispiel:

Code:
public class TestKlasse {
  private int value;

  public TestKlasse() {
    value = 0; // Setze Value auf einen Default Wert
  }

  public TestKlasse(int value) {
    this.value = value; // Setze Value auf den übergebenen Wert
  }
}

...

// Irgendwo im code
TestKlasse test1 = new TestKlasse();
TestKlasse test2 = new TestKlasse(42);

2 Konstruktoren mit gleicher Paramterliste gehen nicht, aber ansonsten kannst du beliebig viele Konstruktoren definieren.
 

Bierhumpen

Bekanntes Mitglied
Ah... also unterscheiden die sich dann nur durch die weitergabe der parameter...

okay, dann hätt ich da noch eine frage, damit ich nicht noch nen thread aufmache...

Ich will ein hotel bauen, dass mithilfe eine for Schleife die anzahl der zimmer bestimmt. Sagen wir mal 15.

Wie kann ich jetzt sagen dass er 15 neue Objekte vom typ Zimmer macht?
wir kann ich den variablen dann eine nummer zuordnen?! also zimmer1 zimmer2.......
So klappts jedenfalls nicht

Code:
    for (int i=1, i<=15, i++){
        Zimmer zimmer[b]i[/b] = new Zimmer();
    }
 
G

Guest

Gast
Code:
Zimmer alleZimmer[] = new Zimmer[15];
for(int i=0; i<alleZimmer.length; i++) {
  alleZimmer[i] = new Zimmer();
  ...
}
 

Bierhumpen

Bekanntes Mitglied
hm hm. ist dann ja nen array..

kann ich dann bspw. auf zimmer[1].hatBadewanne(); zugreifen? oder iwe kann ich dann auf die einzelenen objete zugreifen?!
 

SnooP

Top Contributor
Ne andere Möglichkeit ist die Verwendung von Collections wie ne ArrayList oder Vector oder dergleichen. Dabei ist die Menge an Zimmern im Hotel nicht auf eine feste Größe begrennzt und es können über add-Methoden später noch Zimmer hinzukommen... ;)

Der Zugriff auf die einzelnen Elemente einer solchen Liste geschieht häufig über Enumerations oder Iterator ... schau mal in der API nach oder in entsprechenden Büchern...

für deine Zwecke wird aber vermutlich erstmal nen Array reichen...
 

Bierhumpen

Bekanntes Mitglied
das mit der badewanne war auch nur ein bespiel ;)

Aber danke für den hinweis ich versuchs mal....
 

Bierhumpen

Bekanntes Mitglied
Würde das so funktionieren?!

Code:
public class Hotel {
    
    String hotelname;
    int anzahlZimmer;
    boolean istInInnenstadt;
    boolean hatEineBar;
    Zimmer alleZimmer[] = new Zimmer[anzahlZimmer];;

    Hotel(String hotelname, int anzahlZimmer, boolean istInInnenstadt,
          boolean hatEineBar){
            
        //uebergebene Variablen werden in die Klassenvar. geschrieben
        this.hotelname = hotelname;
        this.anzahlZimmer = anzahlZimmer;
        this.istInInnenstadt = istInInnenstadt;
        this.hatEineBar = hatEineBar;
        
        //alle Zimmer werden erstellt.
        for(int i=1; i<alleZimmer.length; i++) { 
            this.alleZimmer[i] = new Zimmer(false,true,i); 
        }
    }
    
}
 

L-ectron-X

Gesperrter Benutzer
Code:
public class Hotel { 
    
    private String hotelname; 
    private boolean istInInnenstadt; 
    private boolean hatEineBar; 
    private Zimmer[] alleZimmer;

    Hotel(String hotelname, int anzahlZimmer, boolean istInInnenstadt, 
          boolean hatEineBar){ 
            
        //übergebene Argumente werden in die Instanzvar. geschrieben 
        this.hotelname = hotelname;  
        this.istInInnenstadt = istInInnenstadt; 
        this.hatEineBar = hatEineBar;
        alleZimmer = new Zimmer[anzahlZimmer] ;
        
        //alle Zimmer werden erstellt. 
        for(int i=0; i<alleZimmer.length; i++) { 
            this.alleZimmer[i] = new Zimmer(false, true, ++i); 
        } 
    }

    public int getAnzahlZimmer() {
        return alleZimmer.length;
    }

    //etc.   
}
 

Bierhumpen

Bekanntes Mitglied
also sollte man die for schleife aus "schönheits"gründen ab 0 beginnen lassen... oder hat das noch einen tieferen sinn?

das mit der zimmerzahl hab ich jetzt auch geschnallt... :)
 
G

Guest

Gast
Bierhumpen hat gesagt.:
also sollte man die for schleife aus "schönheits"gründen ab 0 beginnen lassen... oder hat das noch einen tieferen sinn?
Es ist bei allen C-ähnlichen Sprachen so. Perl, PHP, C/C++, Java, Python usw.
Stell dir den Index als eine Lesemarke vor, die VOR dem aktuell zu lesenden Element des Arrays steht.
Um den ersten Eintrag zu lesen plazierst du die Lesemarke an Position 0. Beim letzten bei n-1, wobei n
die Länge des Arrays ist.
Ich würde dir empfehlen zuerst ein dickes Grundlagenbuch mit Beispielen etc. durchzugehen. Deine Fragen
lassen darauf schliessen, dass du dich mit Java bzw. mit Programmierung allgemein erst seit kurzem
beschäftigst. Du wirst immer wieder auf solche Probleme stossen, solange du die Grundlagen nicht drauf
hast. Learning by doing ist erst der nächste Schritt.
 

Bierhumpen

Bekanntes Mitglied
ne ist schon klar.. ich wollte das eigentlich von 1 - ... laufen lassen. dabei hätte ich aber oben <= schreiben müssen, das ist glaube ich das missverstöndniss. Damit für i=1 auch Zimmer 1 gemeint ist ;)
 

Lim_Dul

Top Contributor
Bierhumpen hat gesagt.:
also sollte man die for schleife aus "schönheits"gründen ab 0 beginnen lassen... oder hat das noch einen tieferen sinn?

das mit der zimmerzahl hab ich jetzt auch geschnallt... :)
Wenn du schreibts
Code:
alleZimmer = new Zimmer[anzahlZimmer] ;
Dann erzeugt dir Java ein Array, dass von alleZimmer[0] bis alleZimmer[anzahlZimmer-1] geht

Wenn deine Schleife von i=1 bis i<=anzahlZimmer gegangen wäre, hättest du beim Zugriff auf alleZimmer[anzahlZimmer] eine ArrayOutOfBoundException bekommen (oder eine Ähnliche)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
M Methodenaufrufe im Konstruktoren Java Basics - Anfänger-Themen 31
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
M Vererbung Konstruktoren mit festen Werte Java Basics - Anfänger-Themen 2
F Mehrere Konstruktoren? Wofür? Java Basics - Anfänger-Themen 21
J Konstruktoren in Initialisierungsblöcke Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 25
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
F Mehrere Konstruktoren Java Basics - Anfänger-Themen 10
G Was ist der Nutzen von generischen Konstruktoren? Java Basics - Anfänger-Themen 4
Q Methoden Konstruktoren anlegen Java Basics - Anfänger-Themen 5
B Objekte in Konstruktoren übergeben Java Basics - Anfänger-Themen 5
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
A Überladen von Konstruktoren Java Basics - Anfänger-Themen 2
V Konstruktoren Java Basics - Anfänger-Themen 15
C Klassen StackOverflow bei erster Nutzung von Klassen/Konstruktoren Java Basics - Anfänger-Themen 9
F Konstruktoren Java Basics - Anfänger-Themen 4
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
Y Klassen, Vererbung, Konstruktoren Java Basics - Anfänger-Themen 13
B Klassen Unterschied Konstruktoren. Java Basics - Anfänger-Themen 3
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
N Abarbeitungsreihenfolge von Konstruktoren Java Basics - Anfänger-Themen 12
O Klassen und Konstruktoren Java Basics - Anfänger-Themen 7
V Konstruktoren -> Funktionsaufrufe Java Basics - Anfänger-Themen 7
Q Konstruktoren und Methoden Java Basics - Anfänger-Themen 2
C Konstruktoren Java Basics - Anfänger-Themen 7
J Konstruktoren Java Basics - Anfänger-Themen 10
M Konstruktoren & Veerbung Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 6
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
R Vererbung Konstruktoren nicht erkannt Java Basics - Anfänger-Themen 17
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
J OOP Konstruktoren, setMethode, getMethode usw. Java Basics - Anfänger-Themen 7
A überladene Konstruktoren Java Basics - Anfänger-Themen 7
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
W 2 Konstruktoren Java Basics - Anfänger-Themen 8
B Vererbung und Konstruktoren Java Basics - Anfänger-Themen 33
N Vererbung von Konstruktoren mit Parametern Java Basics - Anfänger-Themen 7
S Konstruktoren verketten Java Basics - Anfänger-Themen 6
A Konstruktoren sollen sich gegenseitig aufrufen Java Basics - Anfänger-Themen 10
B Konstruktoren Sichtbarkeit Java Basics - Anfänger-Themen 2
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
E Konstruktoren und Methoden Java Basics - Anfänger-Themen 10
E OOP individual + standard-Konstruktoren Java Basics - Anfänger-Themen 9
S Konstruktoren? Java Basics - Anfänger-Themen 5
K Konstruktoren Java Basics - Anfänger-Themen 13
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
L Geschachtelte Konstruktoren Java Basics - Anfänger-Themen 4
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
J Vererbung und Konstruktoren Java Basics - Anfänger-Themen 14
J Problem mit Konstruktoren Java Basics - Anfänger-Themen 2
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Konstruktoren bei Vererbung Java Basics - Anfänger-Themen 13
Z wie kann ich überladene Konstruktoren "umleiten"? Java Basics - Anfänger-Themen 11
D Blöde(?) Frage zu Konstruktoren und set-Methoden Java Basics - Anfänger-Themen 3
G Interface und Konstruktoren Java Basics - Anfänger-Themen 3
G Frage zu Konstruktoren Java Basics - Anfänger-Themen 12
G Verständnisfrage zu Konstruktoren Java Basics - Anfänger-Themen 5
G Konstruktoren Java Basics - Anfänger-Themen 9
A Konstruktoren überladen Java Basics - Anfänger-Themen 9
H Konstruktoren + Hilfe Java Basics - Anfänger-Themen 12
H Konstruktoren werden nie geerbt Java Basics - Anfänger-Themen 3
O Vor-/Nachteile/Unterschiede von Konstruktoren und Methoden Java Basics - Anfänger-Themen 3
T mehrere Konstruktoren für eine Klasse Java Basics - Anfänger-Themen 7
J Instantvariablen und Konstruktoren Java Basics - Anfänger-Themen 2
Y Vererben - Konstruktoren Java Basics - Anfänger-Themen 2
Z übergabe von string[] an konstruktoren oder methoden Java Basics - Anfänger-Themen 3
L Klassen, Vererbung und Konstruktoren Java Basics - Anfänger-Themen 10
S Frage zu Konstruktoren Java Basics - Anfänger-Themen 7
G Problem mit Gültigkeit von Variabeln und Konstruktoren Java Basics - Anfänger-Themen 4
C Konstruktoren Java Basics - Anfänger-Themen 4
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben