2017-10-20 48 views
0

J'ai créé un script et l'ai divisé en deux classes "Main" et "Switchclass". La "Switchclass" contient la méthode "switch" et la classe "Main" contient la méthode principale. Je veux appeler la méthode "switch" dans "main" et quand la méthode "switch" est appelée, le "switch" appellera une variable "userin" (c'est-à-dire la valeur balayée dans "main"). J'ai de la difficulté à faire les deux.appelant une fonction et des variables d'une autre classe en Java

Voici mon code actuel, que puis-je ajouter?

Classe "principale" avec méthode "principale";

package Prog; 
import java.util.Scanner; 
public class Main { 
@SuppressWarnings("resource") 
public static void main(String[] args) { 

    String userin = null; 
    for(;;) 
    { 

     Scanner scan = new Scanner (System.in); 
        userin = scan.nextLine(); 
     if(userin == "exit") 
     { 
      System.exit(0); 
     } 
     //I want to call the "switch" method here. 

     } 

    } 
} 

classe "switchclass" avec la méthode "Switchcase";

package Prog; 

public class Switchclass { 

public static void Switchcase() { 
     //After calling this method, i want to assign "userin" variable to 
     "usersw" 
     switch (usersw) 
       { 

       } 
     } 

} 
+0

Switchclass.switchCase() – Flaom

+2

donc votre méthode Switchcase doit prendre un argument de type chaîne nommée usersw, et la principale méthode doit appeler la méthode avec Userin comme argument: 'Switchclass.switchcase (Userin)'. Vous devrez également apprendre à respecter les conventions de dénomination Java et à comparer les chaînes. Google pour "comment comparer les chaînes en Java". https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html –

+0

En plus de ce que @JBNizet a dit, ces choses sont vraiment les bases de la langue. Vous pouvez commencer [dès le début] (https://docs.oracle.com/javase/tutorial/java/index.html). –

Répondre

0

C'est quand vous avez besoin d'un paramètre . L'un des cas où vous avez besoin d'un paramètre est lorsque votre méthode a besoin d'informations qu'il ne peut obtenir lui-même (dans ce cas, userin), l'appelant (main) doit donc lui fournir les informations requises.

Ajoutez un paramètre à la méthode switchcase. Il semble que vous voulez l'appeler usersw:

public static void switchcase(String usersw) { 

Et vous pouvez appeler la méthode comme celui-ci dans main:

Switchclass.switchcase(userin); 

Notez également que vous ne devriez pas comparer les chaînes avec ==, utilisez la equals à la place.

if (userin.equals("exit")) 
+0

Dans "Switchcseclass", il montre une erreur dans usersw = Main.main (userin); et suggère de changer la méthode "principale" de vide en chaîne, ce qui n'est pas possible. Que puis-je faire –

+0

@Shantanuvidwans Vous n'avez pas besoin de la ligne 'usersw = Main.main (userin);'. Je ne t'ai jamais dit d'ajouter une chose pareille. Supprimez-le et ajoutez le paramètre 'usersw' comme je l'ai montré. – Sweeper