Frage von ANDROUDT, 36

Konstruktor - Werte übergeben?

Hallo,

eine kleine Frage.

Ich habe einen Konstruktor, der soll jetzt Werte übergeben. Muss ich dann z.B.: die private deklarierten Variable auf Public setzen?

Kann der dann Werte übergeben?

Bsp.:

class Fahrzeug { public int baujahr = 2063; public String Farbe = blau; public Auto() { Console.WriteLine( +baujahr, +Farbe ); Console.ReadLine(); } }

public class Program { public static void Main() { Fahrzeug Auto = new Fahrzeug();

} }

Wäre das so richtig?

Vielen Dank im Voraus.

LG

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von xGlumi, 12

So leid es mir tut, aber ich würde mir an deiner Stelle nocheinmal ansehen wie ein Konsturktor wirklich gebaut/genutzt wird und vorallem was seine Aufgabe ist.

In deinem Code wird 1. Kein Konstruktor gesetzt, denn ein Konstruktor stellt sich folgend zusammen:

public CLASSNAME(PARAMETER){

}

Um in etwa (Wenn ich deine Frage richtig verstehe) zu programmieren, würdest du in etwa soetwas brauchen:

class Fahrzeug {
private int _baujahr;
private String _farbe;

public Fahrzeug(int baujahr, String farbe){
_baujahr = baujahr;
_farbe = farbe;
}

public Ausgabe(){
Console.WriteLine("Baujahr {0}, Farbe {1}", _baujahr, _farbe);
}
}

public class Program {
public static void Main(){
Fahrzeug brumbrum = new Fahrzeug(2063, "blau");
brumbrum.Ausgabe();
}
}

Ob du den Code jetzt 1:1 so kopieren kannst weiss ich gerade nicht 100% Genau, da ich den jetzt einfach nur hier so geschrieben habe, und nicht in z.B VisualStudio.


P.S. Wenn du beim Erstellen des Fahrzeugs direkt die Ausgabe erreichen willst, kannst du ja die Ausgabe()-Methode auch am Ende des Konstruktors aufrufen.

(Hier wäre dann zu gucken, ob die Ausgabe() überhaupt noch Public sein muss, da diese jetzt auch auf Private gesetzt werden könnte, wenn du die wirklich nur von innen aufrufen möchtest.)

MFG xGlumi

Kommentar von ANDROUDT ,

Ah...jetzt ergibt das einen Sinn.

Vielen Dank! 

Kommentar von KnorxyThieus ,

Und als kleinen syntaktischen Zucker vielleicht noch insofern verbessern:

Console.WriteLine($"Baujahr {_baujahr}, Farbe {_farbe}");

Sieht so schön aus :D

Antwort
von Z1rk3l, 19

Welche Programmiersprache? Du hast keine Variable auf public gesetzt in deinem Code. Habe die Frage auch nicht richtig verstanden: Willst du im Konstruktor mithilfe der Übergabeparameter die Werte 'baujahr' und 'Farbe' setzen? Wenn, dann müssen sie nicht public sein. Wenn ich deine Frage nicht beantwortet habe formuliere bitt ein bisschen deutlicher :D

Kommentar von ANDROUDT ,

Danke für die Antwort.

Das ist die Aufgabe: 

Der Konstruktor soll nach dem Anlegen des Objektes automatisch die Werte Baujahr und Farbe mit übergeben werden.


Ich habe private int baujahr = 2063; und

Private String Farbe = "blau";

Auf Public gesetzt bzw. geändert. 

Also Public int baujahr = 2063;

Public String Farbe ="blau"

Wäre damit die Aufgabe gelöst? 



Programmiersprache ist C#. 


Keine passende Antwort gefunden?

Fragen Sie die Community