0

mymeth というパブリック メソッドを持つ修飾子 (デフォルト) のないクラスがあります。パッケージ内にいるときにメソッドにアクセスできることはわかっています。ただし、パッケージの外にいるときにメソッドにアクセスしたいと思います。誰もがそれを行う方法についてアイデアを持っていますか? パブリックメソッドは世界からのアクセスを意味するため、理論的には可能であると思います。これが私のクラスとメソッドの例です:

class myclass{

public void mymeth(int i,int b){

.....
  }

}
4

6 に答える 6

1

myclassクラスを に設定しますpublic

**参考までに、Javaのクラスは大文字から始まります

于 2013-09-12T07:42:32.630 に答える
0

myclassとして設定しpublic、使用する必要があるクラスのビルド パスに配置しますmyclass

于 2013-09-12T07:44:29.983 に答える
0

MyClass と同じパッケージ名で別のパブリック クラス MyChild を作成し、MyChild クラスからメソッドを公開することを検討してください。

public class MyChild extends MyClass {

  public void myTestMethod(){
     super.myTestMethod
   }

}

メソッドを使用するクラスで、 MyChild クラスのインスタンスを使用するだけです

MyChild m = new MyChild();

m.myTestMethod();

乾杯 :)

于 2013-09-12T10:24:54.947 に答える
0
public interface SomeInterface{
   public void mymeth();
}

class MyClass implements SomeInterface{

   public void mymeth(){

   }
}

//is in the same package as MyClass
public MyClassFactory{
   public SomeInterface create(/*parameters*/){
       //create instance from parameters
       //For your case
       MyClass instanceOfAnyClassThatImplementsSomeInterface = new MyClass(/*pass the parameters*/); 
       return instanceOfAnyClassThatImplementsSomeInterface;
   }
}

方法の 1 つは既に回答で定義されていますが、クラスのパブリック アクセスを制限する場合は、インターフェイスを作成し、それを介してメソッドにアクセスできます。

于 2013-09-12T07:46:59.200 に答える
0

コードでmyclassは、デフォルト (パッケージ レベル) のアクセス修飾子があります。publicパッケージの外からアクセスできるように、アクセス修飾子を使用して宣言する必要があります。詳細については、Java でのアクセスの制御を参照してください。

補足として、Java 標準では、クラス名の各単語を大文字にする必要があるため、MyClass. Java Conventions ドキュメントをお勧めします。

于 2013-09-12T08:23:31.443 に答える