Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,使方法成为静态的_Java_Methods_Static - Fatal编程技术网

Java,使方法成为静态的

Java,使方法成为静态的,java,methods,static,Java,Methods,Static,我试图使main调用成为我的方法getArtist(),但当我这样做时,它告诉我不能从静态上下文引用非静态方法。我读了很多书,但仍然不明白,我如何使getArtist()成为一个静态方法,而不将其命名为公共静态字符串getArtist() 如果这是CD类中的代码,并且您不想将getArtist()设为静态,那么另一种方法是在CD实例上调用它 CD myCD = new CD("Awesomeguy", "AwesomeCDName"); mainArtist = myCD.getArtist()

我试图使main调用成为我的方法
getArtist()
,但当我这样做时,它告诉我不能从静态上下文引用非静态方法。我读了很多书,但仍然不明白,我如何使
getArtist()
成为一个静态方法,而不将其命名为
公共静态字符串getArtist()


如果这是
CD
类中的代码,并且您不想将
getArtist()
设为静态,那么另一种方法是在
CD
实例上调用它

CD myCD = new CD("Awesomeguy", "AwesomeCDName");
mainArtist = myCD.getArtist();
CD myCD = new CD("Awesomeguy", "AwesomeCDName");
mainArtist = myCD.getArtist();

使用static关键字或在main中创建定义GetArtister函数的类的实例。

static表示方法是类的一部分,而不是对象。 这方面的一个例子是math类,在该类中直接对类名调用方法

Math.round(4);
实例意味着它是对象的一部分,每个实例都有自己的方法版本。要使用实例方法,首先需要创建一个实例

Scanner scan = new Scanner();
scan.next();
如果您试图从静态上下文调用实例方法,那么它不知道要针对哪个实例运行它,这就是为什么会出现错误

由于main方法必须是静态的,因此您有两个选项,首先,如果希望将
getArtist
方法作为类的一部分,则将其设置为静态:

public static String getArtist(){
然后,您可以按代码中的状态调用它:

mainArtist = getArtist();
但由于您的CD类正在存储数据,
getArtist
作为当前的实例方法可能更好。这意味着您要在实例上调用该方法:


“如何使getArtist()成为静态方法?而不将其命名为公共静态字符串getArtist()”。这是不可能的。您必须使用
static
关键字。也许您需要
myCD.getArtist()
如何创建定义getArtist的类的实例?@user1801067请参见John kuhelman的答案
CD myCD = new CD("Awesomeguy", "AwesomeCDName");
mainArtist = myCD.getArtist();
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();