我正在尝试为分配调试这个简单的应用程序,但我不确定它为什么不能编译...
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行需要一个标识符,public String getName(name)。谁能告诉我我在这里缺少什么?
由于
答案 0 :(得分:0)
您需要指定方法接受的参数的Type
public String getName(String name)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter name: ");
name = input.nextLine();
return name;
}
将参数传递给getname
函数中的main
函数。
与SURESH指出的一样,getname
函数需要标记为static
。否则,在访问其中的方法之前,您需要创建该类的对象。
答案 1 :(得分:0)
我冒昧地以两种标准的方式来修复你的程序。
目前您还没有传递name
,并且您可能认为它存在于不存在的范围内。
我还在:
中移动了多余的put-something-in-a-parameter-and-return行为String name = input.nextLine()
return name;
只剩下了:
return input.nextLine();
第一种方法是在函数之间传递name
作为参数,指定其类型:
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 + "!");
}
}