2015-10-07 3 views
0

Я пытаюсь отлаживать это простое приложение для присвоения, но я не знаю, почему он не будет компилировать ...Identifier ожидается, Java

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 (имя). Может ли кто-нибудь сказать мне, что мне здесь не хватает?

Благодаря

+1

Не один. Слишком много проблем. –

+2

Почему 'getName()' принимает параметр, но 'displayGreeting()' does not? Вам не нужно 'String name = getName();'? –

ответ

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. Кроме того, вам нужно будет создать объект класса, прежде чем вы получите доступ к его методам.

+2

Также getName должен быть статическим –

0

Я взял на себя смелость исправить вашу программу двумя стандартными способами делать то, что вы пытаетесь сделать.

В настоящее время вы не пропустите name и предположите, что он существует в областях, в которых это не так.

Я также переместил избыточную оскорбительный кое-в-параметра-и-возвратный поведение:

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 + "!"); 
    } 
} 
Смежные вопросы