Klassenattribut über Konstruktor verändern

Status
Nicht offen für weitere Antworten.

Cairol

Mitglied
Hallo, folgender Sachverhalt:
ich habe ein Klassenattribut, das einmal mit einer zahl fest belegt werden soll und einmal eine manuelle zahl eingegeben werden soll. das hochzählen klappt glaube ich schon.
über eine zweite klasse will ich dann einmal die zahl manuell eingeben.
jetzt weiß ich nicht, was ich eingeben muß, damit ich das über den konstruktor realisiere.

folgender quellcode:

class Variable
{
private int zahl;

Variable (int zahl)
{
this.zahl = zahl;
setzahl(int za) {zahl=za;}
....
}
}

soweit meine Überlegung. irgendwas ist dabei falsch. für hilfe währe ich dankbar.
 
> jetzt weiß ich nicht, was ich eingeben muß, damit ich das über den konstruktor realisiere.

was realisieren?

> das hochzählen klappt glaube ich schon

in dem Code scheint nix zum hochzählen vorzukommen, ist das irgendwie wichtig,
oder erzählst du das nur mal so? 😉

---------

die Operation setzahl ist bei dir IM Konstruktor definiert, das geht nicht,
erst den Konstruktor beenden, dann die andere Operation dahinter definieren
 
> Also der zweite konstruktor ist das problem.

WAS ist daran das Problem?..

möchtest du dass der Paramter 'Semesterzahl' im zweiten Konstruktor in der Exemplarvariable 'Semesterzahl' dieses Objektes gespeichert wird?
kann man doch deutlich sagen

mit
this.Semesterzahl = Semesterzahl;
steht das ja schon drin,
alternativ könntest du auch
setSemesterzahl(Semesterzahl);
aufrufen was in etwa den gleichen Effekt hätte

-----------

> setSemesterzahl(int se) {StudentIn.Semesterzahl = se;}

mach aber keinen Sinn, das ist kein korrekter Aufruf,
eine entsprechende Operation ist auch schon definiert,

da stellt sich wieder die Frage, was du damit bezwecken möchtest,
was soll überhaupt passieren?

das ist immer die grundlegende Frage, aus kaputten Code kann man doch nur raten
 
ich möchte in einer neuen klasse den konstruktor aufrufen und eine semesterzahl angeben.

die aufgabe war, das man einmal studenten als erstmatrikulation anlegt oder studenten von anderen hochschulen, die schon mehrere semester hinter sich haben seperat die semesterzahl angibt.

ich weiß allerdings nicht ob ich die semesterzahl evtl. komplett aus der klasse rausnehmen sollte und die lieber einzeln im konstruktor neu zuweise oder ob es so sinn macht, wie ich es geschrieben habe.

> setSemesterzahl(int se) {StudentIn.Semesterzahl = se;}
... war ein versuch von mir das klassenattribut zu überschreiben.

ich hatte gedacht, ich könnte dann in der zweiten klasse einen parameter eingeben. also wenn der student schon drei semester studiert hat, das ich dann eine drei übergebe und die dann gespeichert wird.
 
hm, ich hab den fehler gefunden. habe nicht verstanden, das ich die semesterzahl ja in der neuen klasse direkt übergeben kann.

deswegen habe ich auch bei meinem ersten posting ein beispiel genommen.
 
na dein zweiter Konstrutor war gar nicht schlecht,
mit dem angegebenen Parameter und
this.Semesterzahl = Semesterzahl;
hätte das schon perfekt funktioniert,
einfach schauen wie die anderen Parameter gespeichert werden und das System kopieren,


Tipp:
Parameter und Exemplarvariablen unbedingt klein schreiben,
damit machst du dir und anderen das Lesen leichter
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben