我正在做初学者练习,目标是创建以下输出:
比利,你好,很高兴见到你!
杰克,你好,很高兴见到你! 迈克尔,你好,很高兴见到你!
以下是我的代码:
package apollo.exercises.ch03_methods;
public class Ex2_SayMyName {
public static void main(String[] args) {
String name1 = "Billy";
String name2 = "Jake";
String name3 = "Michael";
}
public void SayMyName(String name){
System.out.println("Hello " + name + ", it's good to meet you!");
}
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
}
我在SayMyName(name1);
和}
上方出现错误。
对于}
,它说我需要插入另一个}
来完成课程正文,但是它还没有完成吗?
对于SayMyName(name1)
,我得到"语法错误,插入" ... VariableDeclaratorId"完成FormalParameterList"
我做错了什么? :(
答案 0 :(得分:2)
将这些行放在main()
方法中:
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
并将public void SayMyName()
静态设为:
public static void SayMyName(String name){
System.out.println("Hello " + name + ", it's good to meet you!");
}
答案 1 :(得分:2)
在main方法中移动方法调用
public static void main(String[] args) {
String name1 = "Billy";
String name2 = "Jake";
String name3 = "Michael";
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
}
此外,如果您在调用Ex2_SayMyName
时不想要类SayMyName
的实例,则必须使该方法保持静态,请执行以下操作:
public static void SayMyName(String name)
最后一个挑剔,尊重java命名约定并将您的方法重命名为以小写开头。变量和方法总是以小写字母开头,类名以大写字母开头。
答案 2 :(得分:1)
您正在类边界(任何方法和块之外)调用SayMyName
函数,这是不可能的。在类边界中,只能执行声明和实例化。
将SayMyName
放在main或任何其他方法中。
public static void main(String... args)
{
//your code here
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
}
并将SayMyName
方法更改为static
编辑 - 类边界< - 在任何方法和块之外
答案 3 :(得分:0)
执行的是您班级的main
方法,因此,将SayMyName
调用到其外部并不会产生预期的效果。您需要在main方法中调用方法。
此外,SayMyName必须是静态的才能从main调用它。您可能希望看到this(关于java中的静态方法)
就像这样:
package apollo.exercises.ch03_methods;
public class Ex2_SayMyName {
public static void main(String[] args) {
String name1 = "Billy";
String name2 = "Jake";
String name3 = "Michael";
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
}
public static void SayMyName(String name){
System.out.println("Hello " + name + ", it's good to meet you!");
}
答案 4 :(得分:0)
通过在main
中移动以下内容,从main
调用方法:
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
这样你的程序就是这样的:
public class Ex2_SayMyName {
public static void main(String[] args) {
String name1 = "Billy";
String name2 = "Jake";
String name3 = "Michael";
SayMyName(name1);
SayMyName(name2);
SayMyName(name3);
}
//note the static in the below line
public static void SayMyName(String name){
System.out.println("Hello " + name + ", it's good to meet you!");
}
}
如果要在不创建类实例的情况下直接调用方法,则需要在方法声明中使用static
关键字。这就是我在上面的程序中所做的。