3

クラスのメソッドを別のクラスで使用したい。

     eg: public class controller 1{
          public void method 1(){}
      }


     public class controller 2{
         public void method 2() { }     
       } 

クラスコントローラー2でメソッド1を使用したい。解決策を見つけるのを手伝ってください

4

2 に答える 2

7

次の 2 つの方法を使用できます。

1.静的メソッドを使用する

ここでは controller2 インスタンス メソッドを使用できません

public class controller2 
{
    public static string method2(string parameter1, string parameter2) {
        // put your static code in here            
        return parameter1+parameter2;
    }
    ...
}

別のクラス ファイルで method2() を呼び出します

// this is your page controller
public class controller1
{
    ...
    public void method1() {
        string returnValue = controller2.method2('Hi ','there');
    }
}

2.他のクラスのインスタンスを作成する

public class controller2 
{
    private int count;
    public controller2(integer c) 
    {
        count = c;
    }

    public string method2(string parameter1, string parameter2) {
        // put your static code in here            
        return parameter1+parameter2+count;
    }
    ...
}

public class controller1
{
    ...
    public void method1() 
    {
        controller2 con2 = new controller2(0);
        string returnValue = con2.method2('Hi ','there');
    }
}

メソッドが名前空間を持つパッケージに含まれている場合

string returnValue = mynamespace.controller2.method2();
于 2012-08-27T10:15:00.963 に答える
2

呼び出しているクラスをインスタンス化することでこれを行うことができます。

// source class
public class MyClass1 {

    public MyClass1() {} // constructor

    public void MyMethod1() {
        // method code
    }
}

// calling class
public class MyClass2 {

    public void MyMethod2() {
        // call MyMethod1 from MyClass1
        MyClass1 c = new MyClass1(); // instantiate MyClass1
        c.MyMethod1();
    }
}

ソース クラスが (パブリックではなく) グローバルであり、そのメソッドが Web サービスである場合は、 を使用して直接参照することもできますMyClass1.MyMethod1();

于 2012-08-27T19:22:38.123 に答える