Wieso steht bei der Klassendeklaration Autor autor?

4 Antworten

Das ist ein Attribut der Klasse. Ein Objekt vom Typ Autor mit dem Namen autor

Woher ich das weiß:Berufserfahrung – Software Entwickler
Ich dachte nach der Sichtbarkeitsmodifikation kommt der Rückgabetyp, wie String oder void etc.

Genau so ist es auch. Der (Rückgabe-)Typ ist Autor. Es muss irgendwo eine Klasse Autor geben und autor ist die Instanz. Die Programmiersprache scheint Groß- und Kleinschreibung zu unterscheiden. Transparenter wäre es, wenn man Instanzen und Klassen anders benamsen würde.

Wahrscheinlich ist das aus einem Lehrbuch, welches darauf abzielt, dich zu schulen, den Unterschied zu erkennen.


ppokzloH 
Beitragsersteller
 31.10.2024, 09:21

Ok ich verstehe, also bezieht sich die Zeile auf eine externe Klasse Autor, die wahrscheinlich noch weiter Informationen enthält und erstellt aus ein Attribut "autor", was sich aber aus der externen Klasse bezieht ? korrigiere mich, wenn ich falsch liege !

Suboptimierer  31.10.2024, 09:30
@ppokzloH

Richtig. Es wird der Typ "Autor" verwendet, aber im Screenshot wird nicht gezeigt, wie die Klasse aussieht. Im Prinzip könnte dort auch String stehen.

Der Autor wird aber wahrscheinlich mehrere atomare Werte aufnehmen können, wie "Vorname", "Nachname", "Pseudonym", sodass ein einfacher String nicht ausreicht, um den Autor zu definieren, ohne alles in eine lange Kette zu packen (was man vermeiden sollte).

Darüber, dass der Autor von außen gesetzt wird, könnte man weiter philosophieren. Denn du gibst dadurch die Kontrolle ab. Greifst du irgendwo in der Klasse Buch auf Autor zu, kann es passieren, dass du ins Leere greifst und es zu Fehlern kommt, weil die Set-Methode nicht aufgerufen wurde oder null übergeben wurde. Wenn das Objekt von außen freigegeben wird, macht die Klasse Buch auch die Grätsche.

ppokzloH 
Beitragsersteller
 31.10.2024, 10:36
@Suboptimierer

kannst du mir noch auf die schnelle sagen was das bedeutet:

for(Artikel artikel : artikelliste) {

für was stehen die ":" zwischen Artikel artikel und artikelliste. Danke und sorry für die dummheit

Suboptimierer  31.10.2024, 10:46
@ppokzloH

Ich kenne die Programmiersprache zwar nicht so gut, aber intuitiv würde ich sagen, dass du eine lokale Schleifenvariable artikel hast, die alle Artikel in der Liste artikelliste durchläuft.

artikelliste wäre klassisch ein Array (Feld) von Artikel.

Die ursprüngliche Art, Arrays zu durchlaufen war die über einen Index:

for(i=0;i<artikelliste.count;i++){
artikelliste[i].Nr = i;
}

Suboptimierer  31.10.2024, 10:49
@ppokzloH

Wenn du ein Wort dafür einsetzen müsstest, würde ich "in" oder "aus" nehmen.

Sprich "Für jeden artikel des Typs Artikel aus artikelliste führe aus:..."

Moin,

Du definierst einfach die Oberklasse als neues Objekt (Attribut).

Klasseninstanz Autor mit dem Namen autor.

"autor" ist dann für die ganze Klasse definiert. Das, was Du meinst, steht darunter bei getAutor und setAutor.

autor ist ein Objekt der Klasse Autor.

Es handelt sich dabei um eine has-a-Beziehung:

Buch has a Autor.

Woher ich das weiß:Hobby