# private Methoden benutzen



## sap (25. Mrz 2005)

Hi!
Wenn ich auf eine Klasse referenziere, dann habe ich nur die Möglichkeit "Öffentliche" Methoden zu verwenden. "Private" Methoden kann ich nicht benutzen. Manchmal wäre aber das sehr wünschenswert. 
Wie kann ich Sie trotzdem verwenden?

Mit "Vererbung" soll man diese Einschränkung umgehen können (durch extends)
Kann mir das bitte jemand anhand eines Zweizeilers näher erläutern?
Ich hätte gerne speziell diesen Fall erötert, bitte nicht mit Packages und 
sowas versuchen. Wie kann ich damit diese Einschränkung wirklich umgehen??
Grüße
bohne


----------



## Roar (25. Mrz 2005)

private meth0oden sind dazu da nicht von außerhalb aufgerufen zu werden, und es gibt auch keine sinnvolle anwendung für so was :-/
abgesehen vom sinn des ganzen, gibt es auch keine technische möglichkeit das zu machen.

edit: ersta, ersta :bae:


----------



## sap (25. Mrz 2005)

Hi!

Ok, bist du dir absolut sicher, dass es nicht geht oder vermutest du es eher??

Grüße


----------



## Campino (25. Mrz 2005)

Absolute Sicher! das ist der sinn von private. Du musst sie als public definieren...


----------



## Beni (25. Mrz 2005)

Er ist sich sicher.
Das ist ja der Sinn von private, dass man von aussen (und auch nicht durch Vererbung) an die Methode (oder Variable...) kommt.

Edit: grrrr, zu langsam


----------



## mic_checker (25. Mrz 2005)

sap hat gesagt.:
			
		

> Mit "Vererbung" soll man diese Einschränkung umgehen können (durch extends)



Was du da wohl meinst ist "protected" - solche Methoden kannst du dann auch in abgeleiteten Klassen verwenden. Normalerweise sollte man aber "private" verwenden.


----------



## L-ectron-X (25. Mrz 2005)

public-Methoden sind für den Zugriff auf Eigenschaften/Funktionalität einer Klasse von außen.
D.h. man kann sich in einer Klasse ein Objekt einer anderen Klasse erzeugen und die Methoden des Objektes aufrufen, die dort public (nach außen hin sichtbar) sind.
public-Methoden sind vererbbar.

private-Methoden dienen eigentlich nur dazu, um die Lesbarkeit eines Programms, durch Aufteilung des Codes in Lösungen von Teilproblemen, zu verbessern.
Sie sind von außen nicht sichtbar und können nicht vererbt werden.


----------



## Sky (26. Mrz 2005)

Lies Dich mal in das Thema "Reflection" ein. Damit ist es möglich private Variablen zu ändern und private Methoden auszuführen!

Unabhängig von der technischen Machbarkeit kann ich Dir nur davon abraten! Es ist verdammt schlechter Programmierstil!! Private ist private damit keiner ran kann! Wenn Du trotzdem ran mußt ist es verdammt schlechtes SW-Desgin"


----------



## Guest (26. Mrz 2005)

sky80 hat gesagt.:
			
		

> Lies Dich mal in das Thema "Reflection" ein. Damit ist es möglich private Variablen zu ändern und private Methoden auszuführen!


Sicher?


----------



## Roar (26. Mrz 2005)

Anonymous hat gesagt.:
			
		

> sky80 hat gesagt.:
> 
> 
> 
> ...


nö das geht nicht, sollte illegalaccessexception oder so kommen


----------



## Sky (26. Mrz 2005)

Roar hat gesagt.:
			
		

> Anonymous hat gesagt.:
> 
> 
> 
> ...


Es sei denn, dass man den Zugriff per *setAccessible* den Zugriff gewährt.


----------



## Roar (26. Mrz 2005)

sky80 hat gesagt.:
			
		

> Roar hat gesagt.:
> 
> 
> 
> ...


das ist ja mal ultrafies :-O


----------

