2017-10-24 1 views
1

Ist es möglich, dass ein Benutzer seinen ersten, mittleren Anfangs- und Nachnamen in einer Methode eingeben und dann alle Felder zurückgeben kann?Wie kann ich einen Benutzer seine Informationen eingeben lassen?

import java.util.Scanner; 

    public class name { 
     // firstName middleInitial and lastName 
     // toUpperCase for names 

    String firstName, midddleInitial, lastName; 

    public name(String firstName, String middleInitial, String lastName) { 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("Enter First Name:"); 
     String firstName = scanner.nextLine(); 

     System.out.println("Enter Middle Initial:"); 


     System.out.println("Enter Last Name:"); 

     return firstName; 
     return middleInital; 
     return lastName; 
    } 
} // end of name class 
+0

stellen Sie sich 2 Fragen. "Wie wird der Vorname vom Benutzer eingegeben und gespeichert?". Dann fragen Sie sich: "Wenn ich Dinge in Anführungszeichen ausdrucken kann, wie kann ich Namen ausdrucken?". 'return' ist nicht die Antwort –

+0

Warum möchten Sie etwas vom Konstruktor zurückgeben? Sein Zweck besteht darin, Ihre Instanz zu initialisieren. Ein Problem mit Ihrem Code ist, dass Sie die Benutzereingabe der * lokalen * Variablen 'String firstName = ...' anstelle von 'firstName = ...' zuweisen (oder um ausführlicher 'this.firstName = ...' zu sein) . – Pshemo

Antwort

1

Sie können nur eine Sache von einer Methode zurückgeben. Aber Sie könnten etwas tun wie folgt:

String firstName, midddleInitial, lastName; 

public void inputName() { 
    Scanner scanner = new Scanner(System.in); 

    System.out.println("Enter First Name:"); 
    firstName = scanner.nextLine(); 

    System.out.println("Enter Middle Initial:"); 
    midddleInitial = scanner.nextLine(); 

    System.out.println("Enter Last Name:"); 
    lastName = scanner.nextLine(); 
} 

Die Methode gibt nichts zurück. Die Namen befinden sich jetzt jedoch in den Klassenvariablen, auf die in der gesamten Klasse zugegriffen werden kann.

0

Sie könnten etwas wie unten tun, rufen Sie die Methode iterativ auf, um Ihre Antwort zu erhalten. Lass mich wissen, was du mit deinem Code erreichen willst, damit ich ihn entsprechend einstellen kann. Sie könnten es rekursiv versuchen, um es in Ihrer Methode selbst zu bekommen, was Sie versuchen zu erreichen, nehme ich an.

static String firstName; 
static String middleInitial; 
static String lastName; 

private static int i; 


public static String name() { 
    System.out.print("i"+i); 
    if(i==1) 
    {Scanner scanner =new Scanner(System.in); 
     System.out.println("Enter First Name:"); 
    firstName = scanner.nextLine(); 
    return firstName; 
    } 
    else if(i==2) 
    { 
     Scanner scanner =new Scanner(System.in); 
     System.out.println("Enter Middle Name:"); 
     middleInitial = scanner.nextLine(); 
     return middleInitial; 
    } 
    else 
    { 
     Scanner scanner =new Scanner(System.in); 
     System.out.println("Enter Last Name:"); 
     lastName = scanner.nextLine(); 
     return lastName; 
    } 
} 

public static void main(String[] args) 
{ 
    i=1; 
    if(i==1) 
    { 
     String name1=name(); 
     System.out.print("1"+name1); 
     i=2; 
    } 
    if(i==2) 
    { 
     String name2=name(); 
     System.out.print("2"+name2); 
     i=3; 
    } 
    if(i==3) 
    { 
     String name3=name(); 
     System.out.print("3"+name3); 
    } 
} 
Verwandte Themen