需要标识符,Java

需要标识符,Java,java,Java,我正试图调试这个简单的应用程序,但我不知道为什么它不能编译 import java.util.Scanner; public class DebugThree3 { public static void main(String[] args) { String name; getName(); displayGreeting(name); } public String getName(name) { Scanner

我正试图调试这个简单的应用程序,但我不知道为什么它不能编译

import java.util.Scanner;
public class DebugThree3
{
   public static void main(String[] args)
   {
      String name;
      getName();
      displayGreeting(name);
   }

   public String getName(name)
   {
      Scanner input = new Scanner(System.in);
      System.out.print("Enter name: ");
      name = input.nextLine();
      return name;
   }

   public static void displayGreeting()
   {
      System.out.println("Hello, " + name + "!");
   }
}
试图编译告诉我,第12行公共字符串getName(name)上应该有一个标识符。有人能告诉我我错过了什么吗


谢谢

您需要指定方法接受的参数的
类型

public String getName(String name)
   {
      Scanner input = new Scanner(System.in);
      System.out.print("Enter name: ");
      name = input.nextLine();
      return name;
   }
将参数传递给
main
函数中的
getname
函数


正如SURESH指出的那样,
getname
函数需要标记为
static
。否则,在访问类中的方法之前,需要创建类的对象

我冒昧地用两种标准方法修复了您的程序,这两种方法都是您想要做的

当前您没有传递
名称
,您可能会假设它存在于它不存在的作用域中

我还将冗余的put-something-a-parameter-and-return行为移动到:

String name = input.nextLine()
return name;
只剩下:

return input.nextLine();
第一种方法是在函数之间作为参数传递
名称
,指定其类型:

import java.util.Scanner;
public class DebugThree3
{
   public static void main(String[] args)
   {
      String name = getName();
      displayGreeting(name);
   }

   public String getName()
   {
      Scanner input = new Scanner(System.in);
      System.out.print("Enter name: ");
      return input.nextLine();
   }

   public static void displayGreeting(String name)
   {
      System.out.println("Hello, " + name + "!");
   }
}
第二种方法是将
name
作为静态类成员:

import java.util.Scanner;
public class DebugThree3
{

   String name;

   public static void main(String[] args)
   {
      getName();
      displayGreeting();
   }

   public String getName()
   {
      Scanner input = new Scanner(System.in);
      System.out.print("Enter name: ");
      DebugThree3.name = input.nextLine();
   }

   public static void displayGreeting()
   {
      System.out.println("Hello, " + DebugThree3.name + "!");
   }
}

一个也没有。问题太多。为什么
getName()
接受一个参数,而
displayGreeting()
不接受?你不想要
String name=getName()?getName也应该是静态的