Wie kann ich eine variable verwenden(Benutzereingaben) von der main-Methode in anderen Methoden?
Ich versuche zu tun, eine Aufgabe für die Klasse, aber ich habe ein problem, dass ich keine Lösung finden für. Ich habe eine variable in meiner main-Methode namens passwd. Ich habe einen Benutzer geben Sie einen möglichen Passwort-und, dass die Eingabe wird in der Variablen gespeichert. Dann überprüfe ich die Länge der Passwort-variable, um sicherzustellen, es erfüllt die Anforderungen an die Länge. Ich will dann eine andere Methode chat überprüft jedes der Zeichen der Variablen zu sehen, ob es eine Ziffer.
Das problem ist, ich kann nicht verwenden Sie das passwd-variable von main-Methode in meine digitCheck () - Methode.
Kann jemand bitte raten Sie mir, wie Sie dieses problem lösen.
package Password;
import java.awt.Component;
import javax.swing.JOptionPane;
/**
*
* @author Curtis
*/
public class Password
{
private static Component frame;
//Main Method
public static void main(String[] args)
{//Declaration of variables
String passwd;
int leng;
boolean length = false;
//Prompt user to enter possible password
while(!length)
{
passwd = JOptionPane.showInputDialog("Please enter a possible password:\n" +
"Password must contain 6-10 characters\n"+
"Password must contain both a letter and a digit");
leng =passwd.length();//Determines Password Length
if(leng>5 && leng<11)
{
length = true;
digitCheck();
}
else //Gives Password Length Error Message
{
length = false;
JOptionPane.showMessageDialog(frame, "Your password does not meet the length requirements.", "Password Length Error", JOptionPane.ERROR_MESSAGE);
}
}
}
//Digit Check Method
public static void digitCheck();
{//declaration of variables
char c;
int digits = 0;
for(int i=0;i<leng;i++)
{
c = passwd.charAt(i);
if(Character.isDigit(c))
digits++;
}
}
}
- Erm... Übergeben Sie es als eine variable?
- Die Methoden erlaubt zu haben
parameters
d.h.arguments
- Warum nicht übergeben Sie es als parameter, wie
digitCheck(passwd);
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem in Ihrem Fall ist, weil Sie deklarieren die variable, die in verschiedene Bereiche. Sie haben zwei Optionen:
Entweder:
Bewegen Sie Ihre Variablen auf eine Globale Variable, Sie tun dies, indem Sie deklarieren die variable außerhalb einer Methode in der Regel nur unter der Klasse Unabhängigkeitserklärung, in Ihrem Fall könnte dies nur über oder unter
private static Component frame;
.Übergeben Sie die variable als parameter an eine andere Methode, so würden Sie brauchen, um Ihre
digitCheck()
MethodedigitCheck(String passwd)
und dann rufen Sie es so auf:digitCheck(passwd)
.Ersten option erlauben Sie den Zugriff auf die variable aus, was immer Abschnitt Ihrer Klasse, die Sie in sind. Auf der anderen Seite, die zweite option ermöglicht es Ihnen, um Sie leichter re-verwenden Sie die Methode, die Sie erstellt haben, da die Methode selbst enthalten ist, nicht unter Berufung auf die Verwendung von globalen Variablen.
Der einfachste Weg ist, um pass
passwd
als argument zudigitCheck()
:Beachten Sie, dass
leng
nicht zugänglich ist. Da kann man sich die Länge des string durch den Aufrufpasswd.lenth()
, es gibt keine Notwendigkeit, passleng
als separates argument.Dies ist, weil die digitCheck () - Methode nicht weiß, über die passwd-variable.
Passwd-variable deklariert, die im Rahmen der main () - Methode.
Entweder Sie übergeben die variable passwd, um die digitCheck () - Methode, oder machen es ein statisches Mitglied der Klasse, so dass es zugänglich wird digitCheck().