2017-01-03 8 views
0

どのプログラミング言語でも苦労しているのは、あるメソッドから別のメソッドに変数の値を渡すという概念です。以下の例:1つのメソッドから他のメソッドへの変数の値をJavaで他のものに取得する

import java.util.Scanner; 

public class CreateGuest { 

    public static String guestname(){ 



     Scanner userinput= new Scanner(System.in); 
     System.out.println("Enter name: "); 
     String name = userinput.next(); 

     return name; 
    } 

    public void printName(){ 



     System.out.println("You entered " + ?? How do I get the value of name here??); 
    } 

} 

printname()にguestname()を使用することができます。

public void printName(){ 



     System.out.println("You entered " + guestname()); 
    } 

私がこれを行うと、メインで私はユーザーの入力を2回求められます。私は第一の方法を削除せずにこれをしたい。

cg.guestname(); cg.printName();

私の会社の開発者は、クラス変数として名前を宣言することをお勧めします。しかし、それは悪い習慣ではありませんか?

おかげで

+0

Javaをどのように学習しましたか? 「それはあなたにこの言語の基礎を教えてくれたことはありませんか? – Tom

+0

変数をグローバルにします。変数のスコープがローカルの場合、このローカルスコープ外の他のメソッドまたは他のスコープからはアクセスできません –

答えて

2

だけprintName()への引数として渡します。例えば、

public static void main(String[] args) { 
    String name = guestname(); 
    printName(name); 
} 

public static void printName(String name) { 
    System.out.println("You entered " + name); 
} 

printName()はまた、あなたがCreateGuestのインスタンスを持っていない限りstaticする必要があります。

0

あなたはクラス変数を使う必要はありませんが、これは完全に良いことです。あなたはちょうどメインにフィールドをカプセル化することができます。

public static String askUserForName() { 
    Scanner userInput = new Scanner(System.in); 
    System.out.println("Enter name: "); 

    return userInput.next(); 
} 

public static void main(String[] args) { 
    final String guestName = askUserForName(); 
    System.out.println("You entered " + guestName); 
} 
0

ただ、変数、クラススコープのグローバル インポートjava.util.Scannerを保ちます。

public class CreateGuest { 
    private static String name=""; 
    public static String guestname(){ 



     Scanner userinput= new Scanner(System.in); 
     System.out.println("Enter name: "); 
     name = userinput.next(); 

     return name; 
    } 

    public void printName(){ 



     System.out.println("You entered " + name); 
    } 

} 
関連する問題