1

私のメインクラスには、配列を渡す静的メソッドがあります。メインクラス本体からこのメソッドに何かを渡したい場合、それは静的でなければならないため、これは静的メソッドです。別のクラスには、一連のゲッターとセッターがあります (非 static である必要があります)。

静的配列を渡し、非静的ゲッターとセッターを使用するにはどうすればよいですか?

編集 - arraySearch メソッドで... Person Array を渡して、Person クラスのゲッターにアクセスすることはできません

パブリック クラス メイン {

public static void main(String[] args) {
    Person One = new Person("Alice","Foo", 22, false);
    Person Two = new Person("Alice", "Foo",22, false);
    Person Three = new Person("Bob","Bar",99, false);
    Person Four = new Person("Joe","Blogs",64, false);
    Person Five = new Person("Jane", "Joe",42, false);

    Person [] People = {One,Two,Three,Four,Five};
    printArray(People);

}

public static void printArray(Person [] People)
{
    for(int i=0;i<People.length;i++)
    {
        System.out.println(People[i]);
    }
}


public void arraySearch(Person [] People)
{
    for(int i=0;i<People.length;i++)                                //Searches the Array of Objects
    {
        String firstName = Person.getFirstName();
        String secondName=Person.getSecondName();
        if((firstName.equals("Joe")&&secondName.equals("B" +        //Searches for Joe Blogs and Jane Joe
                "logs"))|| ((firstName.equals("Ja" +
                        "ne")&&secondName.equals("Joe"))))
        {
            int age=Person.getAge();
            Person.setAge(age+1);                                   //Increments Age by 1
        }
    }
}

}

パブリック クラス Person {

private String mfirstName;
private  String msecondName;
private  int mage;
private boolean misRetired;

public Person(String firstName,String secondName,int age, boolean isRetired)
{
    mfirstName=firstName;
    msecondName=secondName;
    mage=age;
    misRetired=isRetired;
}

//GETTERS 

public  String getFirstName()
{
    return mfirstName;
}
public  String getSecondName()
{
    return msecondName;
}
public  int getAge()
{
    return mage;
}
public  boolean getRetired()
{
    return misRetired;
}

//SETTERS

public  void setFirstName(String firstName)
{
    mfirstName=firstName;
}
public  void setSecondName(String secondName)
{
    msecondName=secondName;
}
public  void setAge(int age)
{
    mage=age;
}
public  void setRetired(boolean isRetired)
{
    misRetired=isRetired;
}

//STRING

public String toString()
{
    return (mfirstName+"-"+msecondName+"-"+mage+"-"+misRetired);
}

}

4

4 に答える 4

1

これは非常に基本的な Java の質問です。静的メソッドからセッター/ゲッターを含むオブジェクトのインスタンスを作成する必要があります。このオブジェクトのセッターで静的配列を渡すこともできます。次に、それらのゲッター/セッター メソッドを呼び出すことができるはずです。

public class Main
{

     public static void main(String[] args)
     {
         MyClass myclass = new MyClass();
         myclass.setArgs(args);
         System.out.println(myclass.getArgs());
     }
}

public class MyClass
{
     private String[] args;

     public String[] getArgs()
     {
         return args;
     }

     public void setArgs(String[] args)
     {
         this.args= args;
     }
}
于 2013-03-06T18:27:06.903 に答える
0

vmoksha のスニル・クマール

あなたの求めているより深いナビゲーション特定のインスタンスを作成するか、メインクラスでゲッターとセッターを作成するだけです

于 2013-03-07T11:43:39.583 に答える
0

アミットの答えは正しいです。これにはもう少し情報があり、質問で説明した状況とより密接に一致しています。

あなたの基本的な前提は、「メインクラス本体からこのメソッドに何かを渡したい場合は、静的でなければならないため、静的メソッドです。」間違っている。配列を渡すメソッドは静的である必要はありません。ここにいくつかのコードがあります:

public final class Main
{
    private static final String[] staticOTron =
    {
        "one",
        "two",
        "three"
    };

    public static void main(final String[] args)
    {
        String[] hootBerrySause;
        Tool tool = new Tool();

        tool.setStaticOTron(staticOTron);

        hootBerrySause = tool.getStaticOTron();

        for (String value : hootBerrySause)
        {
            System.out.println("Value: " + value);
        }
    }
}

// this can be in a different file.
public final class Tool
{
    private static String[] staticOTron;

    public void setStaticOTron(final String[] newValue)
    {
        staticOTron = newValue;
    }

    public String[] getStaticOTron()
    {
        return staticOTron;
    }
}


于 2013-03-06T18:35:37.537 に答える
0

ゲッターを使用して、クラスからオブジェクト インスタンスを作成する必要があります。

于 2013-03-06T18:30:37.180 に答える