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