令牌上的语法错误“)”,; expected - 令牌上的语法错误“(”,; expected - void是变量说的无效类型

时间:2014-09-02 21:00:51

标签: java object methods

public class manyMethods {

private static String girlName;
    public static void setName(String name) {    
        girlName=name;

    }
    public String getName(){
      return girlName;

      public static void saying(String[] args){
       System.out.printf("gf was %s", getName());   
    }
  }
}

我在"说"底部的方法

此行有多个标记      - 令牌上的语法错误")",;预期      - 令牌上的语法错误"(" ,;预期      - void是一个无效的类型      变量说法

4 个答案:

答案 0 :(得分:2)

您在saying方法中嵌入了getName方法,但您无法在Java中执行此操作。

getName方法之前放置saying的右括号,而不是之后。

答案 1 :(得分:0)

你的代码应该是这样的

public class manyMethods {

    private static String girlName;
    public static void setName(String name) {    
        girlName=name;

    }
    public String getName(){
      return girlName;
    }

    public static void saying(String[] args){
       System.out.printf("gf was %s", getName());   
    }
  }
}

答案 2 :(得分:0)

这应该是这样的:

public class ManyMethods {

    private static String girlName;

    public static void setName(String name) {    
        girlName = name;
    }

    public static String getName() {
        return girlName;
    }

    public static void saying(String[] args){
        System.out.printf("gf was %s", getName());   
    }
}

请注意getName()方法也应该是静态的! 否则,这意味着您需要创建新对象(这意味着ManyMethods类的实例)来调用getName()。但是如果你将这个方法声明为static,你可以在不创建新对象的情况下调用它 - 它类似于用C编程语言调用函数。

此外,编写代码时的一个重要事项是保持正确的格式 - 这意味着在代码行之前的空格和制表符。如果您使用IDE(如Eclipse,NetBeans或IntelliJ) - 他们可以帮助您。不仅通过建议适当的缩进,而且通过重新格式化整个类并修复缩进。

答案 3 :(得分:0)

基本上,你有一个错位};你说的方法在getName里面,这是错误的。

此外,如果不创建容器类的实例,则无法调用非静态方法。所以你必须使getName静态。

public static String getName()