Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

De_Struktor

unregistriert

11

22.10.2013, 13:34

weil die Methode Machwas() private ist

es geht, mache sie public und du kannst sie aufrufen!

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

12

22.10.2013, 13:37

Ich finde, dass die Formulierung ungünstig ist. public, private, protected, package (sofern vorhanden, in Java wären das Methoden ohne entsprechende Angabe), internal usw. definieren den Sichtbarkeitsbereich der jeweiligen Klasse, Methode, Variable usw. Daher sollte man nicht fragen, "Wer" auf diese Zugriff hat (heir würde ich mit "Wer" am ehesten eine Frage nach konkreten Klassen/Funktionen/... verstehen), sondern von wo aus Zugriff auf diese besteht. Bei public besteht grundsätzlich von jedem erdenklichen Punkt aus Zugriff, bei anderen Angaben kommt es ein wenig darauf an, worauf diese Angabe angewendet wird.
Ein weiteres Beispiel wäre protected, welches eine wesentlich größere Einschränkung mit sich bringt. Bei Methoden und Variablen innerhalb von Klassen (statisch odern nicht) bewirkt dies, dass nur innerhalb von Methoden (statisch oder nicht) der gleichen Klasse, einer inneren Klasse oder davon abgeleiteter Klassen (abhängig von der Programmiersprache, in diesem Fall bezieht es sich auf Java) auf diese Elemente zugegriffen werden kann.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

drz

Frischling

  • Private Nachricht senden

13

22.10.2013, 13:42

eil die Methode Machwas() private ist

es geht, mache sie public und du kannst sie aufrufen!

Das ist klar. Aber deine Frage war ja, warum es mit public geht und mit private nicht. Als private deklarierte Methoden können nur innerhalb der Klasse aufgerufen werden, in der sie definiert wurden.

De_Struktor

unregistriert

14

22.10.2013, 13:42

Wie David schon sagte, es macht sinn. Wenn ich eine Klasse iwo einbinde als .dll und sie ist public, dann kann ich sie von überall aus instanziieren und alles was intern in der Klasse als public definiert wurde, das kann man dan aufrufen!

Wenn sie internal ist, dann gilt der Aufruf nur innerhalb einer DLL bzw Assembly, sonst nicht!

@drz es geht un öffentliche Klassen und nicht um Methoden. Die SIchtbarkeit der Methoden ist mir klar, bei allen. Nur bei Klassen "war" es mir ein Rätsel.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

15

22.10.2013, 13:53

Wenn ich also will, das meine Klasse später auch irgendwo wieder verwendet werden soll, dann sollte ich sie als public definieren.
Wenn ich meine, die braucht man später nicht, aus welchen Gründen auch immer, dann kann ich sie implizit als internal deklarieren.?

Ich glaube die Zugriffsmodis haben weniger mit Wiederverwendbarkeit zu tun, als mehr mit Zugriffsrechten innerhalb deines Projektes.

Im Fall von C# eben nicht nur. JEDER kann die Klasse nutzen, die als public in irgendeiner Assembly deklariert/definiert wurde.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

drz

Frischling

  • Private Nachricht senden

16

22.10.2013, 13:56

Hab es eben nachgelesen. "public class" hebt den Standard "internal class" auf und macht die Klasse auch außerhalb des Assembly verfügbar.
Danke BlueCobold & De_Struktor.

Werbeanzeige