Kann mir jemand den "Sinn" hinter public, private, protectet und "default" in Java erklären?

2 Antworten

(...) aber warum muss ich, wenn ich Memberfunktionen habe die sich in der "public" Klasse befinden diese auch noch mit "public" declarieren (...)

Wenn du eine (äußere) Klasse als public kennzeichnest, wird sie als Hauptklasse in der Datei gewertet (jede Datei darf zwar mehrere Klassen, aber nur eine Hauptklasse beinhalten).

Wenn alle Elemente in einer Klasse, die als öffentlich markiert wurde, ebenso als öffentlich zugreifbar gewertet werden würden, hättest du weniger Flexibilität im Zugriffsverhalten. Wo würdest du für diese Fälle Helfermethoden oder Felder deklarieren wollen, die vor äußerem Zugriff geschützt sind?

Über die verschiedenen verfügbaren Sichtbarkeitsebenen kannst du modulorientiert entwickeln.

https://www.w3schools.com/java/java_ref_keywords.asp

public

keyword is an access modifier used for classes, attributes, methods and constructors, making them accessible by any other class.

private

keyword is an access modifier used for attributes, methods and constructors, making them only accessible within the declared class.

protected

keyword is an access modifier used for attributes, methods and constructors, making them accessible in the same package and subclasses.

und noch default pakete

https://openbook.rheinwerk-verlag.de/javainsel/03_006.html

ich sehe allerdings kaum ein unterschied zu c++ , ausser das protected .