Konstruktor

Status
Nicht offen für weitere Antworten.
M

matic

Gast
Ich will eine Klasse Kfz erstellen die um den Konstruktor Kfz(int sitze, int tankInhalt, flaot verbrauch) erweitert werden soll. Zusätzlich sollen die Attribute aus privat gesetzt werden...

Code:
public class Kfz {

	private Kfz(int sitze, int tankInhalt, float verbrauch){
}

}

In einer neuen Klasse, "KonstruktorDemo.java", sollen die Attribute über den Konstruktor Kfz initialisiert werden.
Wie kann ich das denn umsetzen?
 

Jango

Gesperrter Benutzer
Einen Konstruktor private zu deklarieren halte ich für keine gute Idee. :wink:
 
M

matic

Gast
bin damit noch nicht so gut vertraut..

Code:
public class Kfz {
	
	private int sitze;
	private int tankInhalt;
	private float verbrauch;

	Kfz(int sitze, int tankInhalt, float verbrauch){
		
		this.sitze = sitze;
		this.tankInhalt = tankInhalt;
		this.verbrauch = verbrauch;
	}
	

}

so ist's richtig oder?

wie kann ich die denn nun in der neuen klasse "KonstruktorDemo.java" über den Konstruktor Kfz initialisieren?
 

Jango

Gesperrter Benutzer
Du kannst in einer anderen Klasse nicht auf den Konstruktor zugreifen, weil er private ist. Ist das so gewollt, dann ist es richtig. Nur was macht eine Klasse für einen Sinn, auf die man nicht zugreifen kann?
 
G

Guest

Gast
Mein Kfz.java:


Code:
public class Kfz {
   
   private int sitzeintern;
   private int tankInhaltintern;
   private float verbrauchintern;

   Kfz(int sitze, int tankInhalt, float verbrauch){
      
      this.sitzeintern = sitze;
      this.tankInhaltintern = tankInhalt;
      this.verbrauchintern = verbrauch;
   }
   

}



Meine KonstruktorDemo.java:

Code:
public class KonstruktorDemo {
   
   public static void main(String args[]){ 

   Kfz minivan = new Kfz(5,50,10);
   ....
   ...
   ..
   .
    
   }
   

}


Wie kann ich denn nun auf auf minivan zugreifen? Möchte die Werte mit System.out.... ausgeben.
Minivan muss doch noch eigentlich die Werte übergeben bekommen...
minivan(5,50,10) läuft ja nicht. Kann mir jmd weiterhelfen??[/code][/quote]
 

Jango

Gesperrter Benutzer
Code:
public class Kfz {
   
   private int sitzeintern;
   private int tankInhaltintern;
   private float verbrauchintern;

  public Kfz(int sitze, int tankInhalt, float verbrauch){   //ohne Modifizierer ist es immer private
      
      this.sitzeintern = sitze;
      this.tankInhaltintern = tankInhalt;
      this.verbrauchintern = verbrauch;
   }
   

}
Das this kannst du dir in dem Fall sparen.
Und, um auf die Variablen zugreifen zu können, solltest du sie entweder auch public machen, oder public Methoden verwenden. Sowas wird mit get und set realisiert. So etwa:

Code:
public int getSoOderSo() {
    return tankInhaltintern;
}
 

stevieboy

Aktives Mitglied
Jango hat gesagt.:
Code:
Das [i]this[/i] kannst du dir in dem Fall sparen.
[/quote]

[i]Können kann[/i] er das, aber ich finde es persönlich sinnvoll jeden Objektzugriff zu referenzieren. So lassen sich Objektattribute und (temporäre) Methodenvariablen leichter unterscheiden. (Stichwort Codelesbarkeit)
 

Leroy42

Top Contributor
stevieboy hat gesagt.:
Können kann er das, aber ich finde es persönlich sinnvoll jeden Objektzugriff zu referenzieren. So lassen sich Objektattribute und (temporäre) Methodenvariablen leichter unterscheiden. (Stichwort Codelesbarkeit)

Sehe ich nicht so. Ich benutze this. nur, wenn es unbedingt nötig ist.
Das sehe ich persönlich als bessere Codelesbarkeit an.
 

happy_robot

Bekanntes Mitglied
ich will jetzt keinen flame-war herauf-beschwören, aber das die sichtbarkeit von klassenvariablen durch lokale variablen überdeckt wird ist imho ganz klar ein design-fehler! da gibts auch imho nix zu diskutieren. das ist die mutter aller unauffindbaren bugs.

da müsste eine compiler-meldung kommen wie "assignment to ambiguous variable". das was hier flame-war verursachen könnte ist die annahme daß es eine stilistische variante ist die sichtbarkeit durch ein "this." zu korrigieren.

es ist schlichtweg ein design-fehler. einer der wenigen in java, aber es ist einer.
 
G

Guest

Gast
happy_robot hat gesagt.:
ich will jetzt keinen flame-war herauf-beschwören, aber das die sichtbarkeit von klassenvariablen durch lokale variablen überdeckt wird ist imho ganz klar ein design-fehler! da gibts auch imho nix zu diskutieren. das ist die mutter aller unauffindbaren bugs.

da müsste eine compiler-meldung kommen wie "assignment to ambiguous variable". das was hier flame-war verursachen könnte ist die annahme daß es eine stilistische variante ist die sichtbarkeit durch ein "this." zu korrigieren.

es ist schlichtweg ein design-fehler. einer der wenigen in java, aber es ist einer.

Ok, da gebe ich Dir Recht. Aber ich zwei Argumente, die eben für das this sprechen:

  • Da dieser "Fehler" nun mal existiert sollte man alles tun,damit er sich nicht negativ auswirkt.
  • Weiterhin ist durch das "this" einfach schön zu sehen,dass diese Variable zur Klasse gehört und eben nicht als Methodenparamter oder temporäre Variable läuft.


Gerade als Anfänger passieren die oben genannten Dinge öfter und auch wenn ein andere Programmierer sich in den Code einfinden soll, sind solche kleinen Hilfsmittel, die ja auch zum Großteil durch Eclipse usw. automatisiert erstellt werden können, eine echte Erleichterung.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C OOP Parameter vom Konstruktor Java Basics - Anfänger-Themen 1
R Konstruktor mit Datum Java Basics - Anfänger-Themen 17
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
I Vererbung Frage zum Konstruktor Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
P Konstruktor Java Basics - Anfänger-Themen 4
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben