0

メイン呼び出しを自分のメソッドにしようとしてgetArtist()いますが、そうすると、静的コンテキストから非静的メソッドを参照できないことがわかります。getArtist()名前を付けずに静的メソッドを作成するにはどうすればよいpublic static String getArtist()ですか?

public static void main(String[] args) {
    String mainArtist;
    String mainTitle;
    CD myCD = new CD("Awesomeguy", "AwesomeCDName");
    mainArtist = getArtist();
    System.out.println(mainArtist);
}

public String getArtist(){
    String person;
    person = artist;
    return person;
}
4

4 に答える 4

6

これがCDクラスのコードであり、静的にしたくない場合は、インスタンスgetArtist()で呼び出すこともできます。CD

CD myCD = new CD("Awesomeguy", "AwesomeCDName");
mainArtist = myCD.getArtist();
于 2013-02-26T02:18:24.973 に答える
3

静的とは、メソッドがオブジェクトではなくクラスの一部であることを意味します。この例は、クラス名でメソッドを直接呼び出す数学クラスです。

Math.round(4);

インスタンスはオブジェクトの一部であることを意味し、各インスタンスには独自のバージョンのメソッドがあります。インスタンス メソッドを使用するには、最初にインスタンスを作成する必要があります。

Scanner scan = new Scanner();
scan.next();

静的コンテキストからインスタンス メソッドを呼び出そうとすると、それを実行するインスタンスがわからないため、エラーが発生します。

メイン メソッドは静的でなければならないため、2 つのオプションがあります。まず、getArtistメソッドをクラスの一部として使用する場合は、静的にします。

public static String getArtist(){

次に、コードでそのまま呼び出すことができます。

mainArtist = getArtist();

しかし、あなたのCDクラスはデータを保存しgetArtistているので、現在持っているインスタンスメソッドである方がおそらく良いでしょう。これは、インスタンスでメソッドを呼び出す必要があることを意味します。

CD myCD = new CD("Awesomeguy", "AwesomeCDName");
mainArtist = myCD.getArtist();
于 2013-02-26T02:29:30.567 に答える
1

static キーワードを使用するか、main で getArtist 関数を定義するクラスのインスタンスを作成します。

于 2013-02-26T02:19:10.363 に答える
0
public static void main(String[] args) {
    String mainArtist;
    String mainTitle;
    CD myCD = new CD("Awesomeguy", "AwesomeCDName");
    mainArtist = myCD.getArtist(); 
    System.out.println(mainArtist);
}

public String getArtist(){
    String person;
    person = artist;
    return person;
}
if you change the method public String getArtist() to public static String getArtist() 
then call mainArtist = getArtist();
于 2013-02-26T05:39:26.840 に答える