wann muss eine methode static und wann nicht sein?

2 Antworten

statische methoden sind unabhängig von instanzen. beispiel:

objekttyp katze

statische methode: gib allgemeine katzeninfos aus

nicht-statische methode: gib den namen dieser katze aus

letzteres ergibt nur auf einer instanz vom typ katze sinn.

HaarigerMeista 
Fragesteller
 25.04.2023, 22:11

aber was sind allgemeine katzeninfos? meinst du sowas wie katzen haben meist fell und das würde ich bei der klasse katze gleich als STring oder so fest hinterlegen?

noch ne Frage: ich hab jetgzt mal ne klasse person erstellt mit attributen name und alter und eine eigene toString() methode, ich habe einfach system.ou.println(alter + name ) gemacht aber this.alter und this.name geht ja auch, was ist hier der unterschied?

0
rincewind483  25.04.2023, 22:19
@HaarigerMeista

gutes beispiel. this geht nur in instanzmethoden 🙂 in statischen methoden hast du kein objekt, das "this" sein könnte.

ja, die statische methode könnte zum beispiel unterschiedliche katzenrassen aufzählen. während die instanz einer katze den namen maunzi trägt und eine langhaarkatze ist. eine statische methode hat keinen zugang zu solchen infos. weil sie nicht auf einer konkreten katze aufgerufen wird, sondern nur auf dem objekttyp katze. die statische methode weiß also nur, was alle katzen gemeinsam haben. zum beispiel allgemeine katzeninfos, die zu jeder katze sinn ergeben.

1