无法调用我的字符串函数

时间:2014-12-19 14:04:40

标签: java function class methods

我正在做初学者练习,目标是创建以下输出:

  

比利,你好,很高兴见到你!

     杰克,你好,很高兴见到你!

     迈克尔,你好,很高兴见到你!

以下是我的代码:

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"

我做错了什么? :(

5 个答案:

答案 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关键字。这就是我在上面的程序中所做的。