Zugriff auf eine Klasse innerhalb einer anderen

Hi

ich habe 2 Klassen in 2 Dateien gespeichert und als package organisiert.

 package Tausche; /\*\* gespeichert in initpfade.java \*/
 public class initpfade
 {
 ...
 public int woWar(String seite)
 {
 ... /\*\* Methode \*/
 }
 } 

und

 package Tausche; /\*\* gespeichert in pfade.java \*/
 public class pfade
 {
 ...
 }

Ich möchte nun in der einen Klasse (pfade) auf eine Methode der anderen Klasse (initpfade) zugreifen.

Normalerweise müsste das doch so gehen, dass man den gesammten Inhalt des Packages in der Klasse durch

 import Tausche;

importiert.

Und dann kann man doch durch

 initpfade.woWar("beispiel") 

darauf zugreifen oder???

Irgendwie hab ich da ein Blackout.

Moien

Normalerweise müsste das doch so gehen, dass man den gesammten
Inhalt des Packages in der Klasse durch import

Tausche; importiert.

 import Tausche.\*;

Und dann kann man doch durch initpfade.woWar(„beispiel“)
darauf zugreifen oder???

new initpfade().woWar("beispiel")

Das ist keine statische Methode, da muss man zuerst eine Instanz der Klasse erzeugen.

cu

Auch hallo.

Eins vorweg: Code sollte immer vollständig, mit Nennung des jeweiligen Dateinamens und dem pre-Tag angegeben werden :wink:

Im konkreten Fall könnte es helfen, wenn die aufzurufende Methode als Interface definiert wird. Oder man operiert mit den ‚public‘ oder ‚friend‘ Operatoren.

HTH
mfg M.L.

Hey.

Da beide Klassen im gleichen Package sind, brauchst du keine import-Statements.
Um Zugriff auf (nicht-statische) Mehoden zu bekommen, brauchst du eine Referenz auf eine Instanz deiner Klasse. Also entweder du erzeugst dir eine davon (s.u.) oder du übergibst deiner Klasse eine Referenz auf deine Zielklasse (vllt. im Konstruktor oder über einen Setter).
Bei statischen Methoden brauchst du das nicht. Da kannst du die Methoden an den Klassen aufrufen.

Viel Erfolg noch,
Chris

Im konkreten Fall könnte es helfen, wenn die aufzurufende
Methode als Interface definiert wird. Oder man operiert mit
den ‚public‘ oder ‚friend‘ Operatoren.

a) Das würde gar nicht helfen.
b) Den public-Modifier verwendet er/sie doch schon.
Default würde aber, da im gleichen Package, genügen.
c) Einen ‚friend‘-Operator gibt es nicht in Java.

Wie bereits von anderen angemerkt muß er entweder eine Instanz der zu nutzenden Klasse erzeugen.
Wenn die zu nutzende Klasse aber in der zu nutzenden Methode auf keine Attribute der Klasse zugreift, dann kann die Methode ‚static‘ definiert werden.

1 Like

Stimmt ja…

Sowas passiert, wenn im Durcheinander von SAP, Oracle, MySQL, SQL Server, Perl, .NET, C++, Java,… den Durchblick verliert #:smile:

mfg M.L.