Konstruktor ohne Parameter

Status
Nicht offen für weitere Antworten.
A

abc

Gast
Hallo,

ich habe ein Konstruktor Auto
Code:
class Auto {
int ps;
String farbe;
String modell;
String kennzeichen
int  erstzulassung;
boolean gebraucht;

public Auto
{
}


}


was passiert, wenn ich in dem Konstruktor folgendes mache:

Code:
public Auto
{
    this.ps = ps;
    this.farbe = farbe;
    this.kennzeichen = kennzeichen;
    this.erstzulassung = erstzulassung;
    this.gebraucht = gebraucht;
}

habe ich damit einen leeren Konstruktor erzeugt? Und was passiert, wenn der KOnstruktor aufgerufen wird?
wenn ich das Objekt benutzen will, kann ich das mit set-Methoden machen?

Bsp:
Code:
public void setFarbe(String farbe)
	{
		this.farbe = farbe;
	}

oder ist das ganz falsch? was passiert, wenn ich in dem Konstruktor this.x=x eingebe? Konstruktor hat ja dann immernoch keine Parameter oder? Wo ist der Unterschied zu
Code:
public Auto (int ps; String farbe, String modell, String kennzeichen)
{
   this.ps=ps;
   this.farbe = farbe;
   usw...
}
 
S

SlaterB

Gast
> habe ich damit einen leeren Konstruktor erzeugt?

ja

> Und was passiert, wenn der KOnstruktor aufgerufen wird?

dann wird er ausgeführt?!

> oder ist das ganz falsch?

nein

> was passiert, wenn ich in dem Konstruktor this.x=x eingebe?

dann wird x x zugewiesen, komt darauf an, ob es eine lokale Variable/ Parameter x gibt, der/ die die Exemplarvariable überlagert

> Wo ist der Unterschied zu

mal gibts Parameter, mal nicht, das ist der Unterschied ;)
 
G

Gast2

Gast
> Wo ist der Unterschied

Der Unterschied ist einfach mit einem leeren Konstruktor hat dein Objekt keine Informationen, da es leer ist

und mit Parameter kannst du dein Objekt befüllen und bruachst nicht alles mit den set methoden zu machen
 
A

abc

Gast
Noch eine Frage:

ich habe ja Klasse Auto, die so aussieht:
Code:
class Auto { 
int ps; 
String farbe; 
String modell; 
String kennzeichen 
int  erstzulassung; 
boolean gebraucht; 

public Auto 
{ 
} 


}

wenn ich jetzt schreibe:
Code:
public Auto ()
{ 
    this.ps = ps; 
}

wird alles gelb unterstrichen(benutze eclipse) und da steht noch folgendes: "The assignment to variable ps has no effect"

Also meine Frage:
Kann ich die Klasse so lassen (so wie ganz oben steht) und wenn ich den Konstruktor brauche, die Parameter dann mit set-Methoden setzten?
So zb:
Code:
public Auto ()
{ 
    this.ps = ps; 
}

public void setPs(String ps)
{
    this.ps=ps;
}

bin im moment ein wenig verunsichert, mache seit montag ein praktikum und eigentlich wollte ich das ganze so machen:
Code:
public Auto (int ps, String farbe, String modell, String kennzeichen, String  erstzulassung;  )
{ 
    this.ps = ps; 
    this.farbe = farbe;
   usw.....
}

public Auto()
{  
   this(0, "", "", "", "")
}

}

mir wurde aber gesagt, dass das keine gute lösung ist, weil es so viele parameter gibt (ca. 20)
und nun weiss ich nicht weiter, was gibt es denn für eine alternative? (ist meine erste praktische erfahrung mit java)
danke für eure hilfe
 
A

abc

Gast
@SirWayne
habe deine antwort erst jetzt gesehen und meine frage schon abgeschickt, kannst du mir vielleicht erklären, warum mein praktikumsbetreuer die lösung mit den parametern nicht gut findet? seine antwort war wie gesagt, zu viele parameter,lieber set-methoden oder ist das einfach eine geschmacksfrage?
 
A

abc

Gast
und schon wieder ich

noch ein bsp:
Code:
public Auto 
{ 
    this.ps =0;
    this.farbe = "";
    this.modell = "";   
}

was passiert denn hier? wird hier ein leeres objekt erzeugt? der konstruktor selbst ist ja nicht mehr leer, oder?
kreiert hier der konstruktor autos mit ps, farbe, modell, usw und diese bekommen dann mit set-methoden einen wert?
sind ps, farbe und modell in diesem fall parameter?

danke!
 
G

Guest

Gast
abc hat gesagt.:
@SirWayne
habe deine antwort erst jetzt gesehen und meine frage schon abgeschickt, kannst du mir vielleicht erklären, warum mein praktikumsbetreuer die lösung mit den parametern nicht gut findet? seine antwort war wie gesagt, zu viele parameter,lieber set-methoden oder ist das einfach eine geschmacksfrage?

Dazu solltest Du dir mal das Thema Refactoring durchnehmen. Habe ein schickes Buch auf englisch, da sind so programmiertechnische Todsünden drin. Eine Totsünde ist, zu viele Parameter.


Gruß
 
S

SlaterB

Gast
> sind ps, farbe und modell in diesem fall parameter?


nein, feste Werte,
Code:
public Auto 
{ 
    this.ps =0; 
    this.farbe = ""; 
    this.modell = "";    
}
ist gleichbedeutend mit
Code:
public Auto 
{ 
} 

Auto auto = new Auto();
auto.setPS("0");
usw.

----------

Code:
public Auto () 
{ 
    this.ps = ps; 
}
macht dagegen keinen Sinn und wird zurecht von Eclipse bemeckert,
was soll this.ps = ps; denn dort bringen deiner Meinung nach?
schreibe nie Code, wenn du dessen Bedeutung nicht kennst

> warum mein praktikumsbetreuer die lösung mit den parametern nicht gut findet?

Ansichtssache, vielleicht zu unübersichtlich,
kannst du ihn nicht selber fragen? ;)
 
G

Guest

Gast
abc hat gesagt.:
und schon wieder ich

noch ein bsp:
Code:
public Auto 
{ 
    this.ps =0;
    this.farbe = "";
    this.modell = "";   
}

was passiert denn hier? wird hier ein leeres objekt erzeugt? der konstruktor selbst ist ja nicht mehr leer, oder?
kreiert hier der konstruktor autos mit ps, farbe, modell, usw und diese bekommen dann mit set-methoden einen wert?
sind ps, farbe und modell in diesem fall parameter?

danke!


Du sollest Dir mal Grundlagern der Objektorientierten Programmierung durchlesen.
Und mal schauen wofür ein Konstruktor da ist.

ps, farbe und modell sind die Eigenschaften deiner Klasse.
Ihnen werden wir im Konstruktor üblich Werte zugewiesen, dafür ist der Konstruktor da.
Dieser Vorgang nennt sich auch Initialisierung.


Gruß
 
A

abc

Gast
also ist
Code:
public Auto 
{ 
    this.ps =0; 
    this.farbe = ""; 
    this.modell = "";    
}

gleichbedeutend mit

Code:
class Auto { 
int ps =0; 
String farbe = null; 
String modell= null; 
String kennzeichen =null; 
int  erstzulassung = null; 
boolean gebraucht = true; 

public Auto 
{ 
} 

}

???
 
S

SlaterB

Gast
abgesehen davon, dass
this.farbe = ""; und farbe = null;
ein deutlicher Unterschied ist,
sind direkte Zuweisungen an Exemplarvariablen ziemlich ähnlich, ja
 
A

abc

Gast
und nun meine letzte frage:
wo ist denn der unterschied zwischen
this.farbe = ""; und farbe = null;
???

im ersten fall heisst es ja, dass fabre existiert, aber ein leerer string ist und im zweiten fall heisst es, dass es noch gar keine frabe gibt?
 
A

abc

Gast
oder anders ausgedruckt
String farbe = null; => farbe hat überhaupt noch keinen wert (bedeutet das auch noch kein speicherplatz steht zur verfügung?)

String farbe = ""; => farbe hat einen wert und zwar den leeren string(hat speicherplatz und dieser ist mit "" belegt?)

danke!
 
S

SlaterB

Gast
ja, damit hast du es doch selber gesagt?
inhaltlich mag der Unterschied nicht so groß sein,

aber wenn dir bald NullPointerExceptions um die Ohren fliegen,
wirst du wissen, dass es schon ein Unterschied ist, ob ein Objekt da ist oder gar nix, die pure Leere

edit:
farbe ist immer nur eine Referenz von 4 Byte, entweder zeigt diese Referenz auf nichts, oder auf ein beliebiges String-Objekt,
ob das leer ist ("") oder 1000 Zeichen enthält ist relativ egal für farbe, das ist einfach nur eine Referenz
 

schuetzejanett

Bekanntes Mitglied
Na da hast du doch deinen Unterschied. Probleme gibt es aber wenn du auf die Farbe zugreifst und sie null ist. Denn dann kommt es zu einer nullpointer exception.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
M Vererben von Superklasse ohne Konstruktor Java Basics - Anfänger-Themen 9
T Konstruktor mit oder ohne public-Bezeichner? Java Basics - Anfänger-Themen 4
G Mit oder ohne Konstruktor ? Java Basics - Anfänger-Themen 13
T paint() ohne konstruktor aufzurufen? Java Basics - Anfänger-Themen 5
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 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
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

Ähnliche Java Themen

Neue Themen


Oben