Java 尝试调用方法时出错
我正在尝试创建一个方法。根据我阅读和观看的内容,我认为这是创建然后调用方法的方法,但我不太确定我是否做对了。我收到和错误时,我遵守,所以如果你有任何建议,如何更好的代码,将不胜感激 以下是错误: 错误:找不到符号 它给了我大约10个错误,所有这些错误都与publicstaticvoidgetlabeldata()中的数组有关,我试图在其中创建一个方法 代码如下:Java 尝试调用方法时出错,java,methods,Java,Methods,我正在尝试创建一个方法。根据我阅读和观看的内容,我认为这是创建然后调用方法的方法,但我不太确定我是否做对了。我收到和错误时,我遵守,所以如果你有任何建议,如何更好的代码,将不胜感激 以下是错误: 错误:找不到符号 它给了我大约10个错误,所有这些错误都与publicstaticvoidgetlabeldata()中的数组有关,我试图在其中创建一个方法 代码如下: import javax.swing.JOptionPane; public class MailOrderCall { public
import javax.swing.JOptionPane;
public class MailOrderCall
{
public static void main(String[] args)
{
streetAddress, city, state, zip.
String nameAddressArray[] = new String[7];
String numBoxesInput;
int numBoxes;
String enterAnother = "Y";
int counter;
getLabelData();
while(enterAnother.equalsIgnoreCase("Y"))
{
counter = 1;
// begin the inner loop to display a label and increment the counter
while(counter <= numBoxes)
{
System.out.println(nameAddressArray[0] + " " + nameAddressArray[1] + " " + nameAddressArray[2]);
System.out.println(nameAddressArray[3]);
System.out.println(nameAddressArray[4] + ", " + nameAddressArray[5] + " " + nameAddressArray[6]);
System.out.println("Box " + counter + " of " + numBoxes);
System.out.println();
counter = counter + 1;
} // end while
// ask the user if finished entering mail orders
enterAnother = " "; // initialize the variable to something other than "Y" before sending the prompt
enterAnother = JOptionPane.showInputDialog("Do you want to produce more labels? Y or N");
// validate input for enterAnother... keep them here until they enter Y, y, N, or n
while (!enterAnother.equalsIgnoreCase("Y") && !enterAnother.equalsIgnoreCase("N"))
{
enterAnother = JOptionPane.showInputDialog(null, "Invalid Response. Please enter Y or N.",
"DATA ENTRY ERROR", JOptionPane.ERROR_MESSAGE);
} // end while
if(enterAnother.equalsIgnoreCase("Y"))
{
// if the user said they have more, then send prompts to read the next mail order input from user
getLabelData();
} // end if
} // end while
// successfully terminate the application
system.exit(0);
} // end main()
public static void getLabelData() {
nameAddressArray[0] = JOptionPane.showInputDialog("Enter title (Mr., Ms., Dr., etc.): ");
nameAddressArray[1] = JOptionPane.showInputDialog("Enter first name: ");
nameAddressArray[2] = JOptionPane.showInputDialog("Enter lastname: ");
nameAddressArray[3] = JOptionPane.showInputDialog("Enter street address: ");
nameAddressArray[4] = JOptionPane.showInputDialog("Enter city: ");
nameAddressArray[5] = JOptionPane.showInputDialog("Enter state (IL, MO, etc.): ");
nameAddressArray[6] = JOptionPane.showInputDialog("Enter zip (e.g., 62025): ");
numBoxesInput = JOptionPane.showInputDialog("Enter number of boxes in the order:");
numBoxes = Integer.parseInt(numBoxesInput);
}
} // end class
import javax.swing.JOptionPane;
公共类MailOrderCall
{
公共静态void main(字符串[]args)
{
街道地址,城市,州,邮编。
字符串nameAddressArray[]=新字符串[7];
字符串输入;
内特牛;
字符串enter=“Y”;
整数计数器;
getLabelData();
while(输入另一个.equalsIgnoreCase(“Y”))
{
计数器=1;
//开始内部循环以显示标签并递增计数器
while(counter似乎您正试图访问getLabelData
函数中不可用的变量。如果您想在多个函数中使用变量,您应该在整个类的范围内声明它,如下所示:
public class MailOrderCallEMH {
String nameAddressArray[] = new String[7];
String numBoxesInput;
public static void main(String[] args) {
// ...
}
}
另外,streetAddress、city、state、zip。
看起来不像有效的java语法。您可能应该正常声明这些变量:
// Replace Object by the type you want
Object streetAddress;
Object city;
Object state;
Object zip;
希望这有帮助!您似乎试图访问getLabelData
函数中不可用的变量。如果您希望在多个函数中使用变量,则应在整个类的范围内声明它,如下所示:
public class MailOrderCallEMH {
String nameAddressArray[] = new String[7];
String numBoxesInput;
public static void main(String[] args) {
// ...
}
}
另外,streetAddress、city、state、zip。
看起来不像有效的java语法。您可能应该正常声明这些变量:
// Replace Object by the type you want
Object streetAddress;
Object city;
Object state;
Object zip;
希望这有帮助!nameAddressArray
已在您的main
方法中声明为局部变量。如果在方法内部声明变量,则只能从该方法访问它
如果您想从类中的任何方法访问nameAddressArray
,请通过在类内部但在这样的方法外部声明它,将其声明为MailOrderCallEMH
的成员变量
public class MailOrderCallEMH
{
// Since this is a member of the class, you can use it from any method within this class
static String nameAddressArray[] = new String[7];
public static void main(String[] args)
{
// code
}
public static void getLabelData()
{
nameAddressArray[0] = JOptionPane.showInputDialog("Enter title (Mr., Ms., Dr., etc.): ");
// and so on
}
}
另外,请注意我是如何将nameAddressArray
声明为static
。原因是在静态方法中访问的成员变量也必须是静态的。因为您是从Java开始的,所以我建议您阅读static
的功能。一般来说,静态变量和方法的使用是不受限制的库拉格
另一种方法是将nameAddressArray
作为参数传递给getLabelData
public class MailOrderCallEMH
{
public static void main(String[] args)
{
String nameAddressArray[] = new String[7];
getLabelData(nameAddressArray);
System.out.println(nameAddressArray[0] + " " + nameAddressArray[1] + " " + nameAddressArray[2]);
}
public static void getLabelData(String nameAddressArray[])
{
nameAddressArray[0] = JOptionPane.showInputDialog("Enter title (Mr., Ms., Dr., etc.): ");
// and so on
}
}
需要注意的是,在本例中,getLabelData
能够更新在main
中声明的变量的原因是该变量通过引用传递(而不是通过值传递)。这是您应该确保熟悉的另一个重要概念。nameAddressArray
已在您的main
方法中声明为局部变量。如果您在方法内部声明变量,则只能从该方法访问它
如果您想从类中的任何方法访问nameAddressArray
,请通过在类内部但在这样的方法外部声明它,将其声明为MailOrderCallEMH
的成员变量
public class MailOrderCallEMH
{
// Since this is a member of the class, you can use it from any method within this class
static String nameAddressArray[] = new String[7];
public static void main(String[] args)
{
// code
}
public static void getLabelData()
{
nameAddressArray[0] = JOptionPane.showInputDialog("Enter title (Mr., Ms., Dr., etc.): ");
// and so on
}
}
另外,请注意我是如何将nameAddressArray
声明为static
。原因是在静态方法中访问的成员变量也必须是静态的。因为您是从Java开始的,所以我建议您阅读static
的功能。一般来说,静态变量和方法的使用是不受限制的库拉格
另一种方法是将nameAddressArray
作为参数传递给getLabelData
public class MailOrderCallEMH
{
public static void main(String[] args)
{
String nameAddressArray[] = new String[7];
getLabelData(nameAddressArray);
System.out.println(nameAddressArray[0] + " " + nameAddressArray[1] + " " + nameAddressArray[2]);
}
public static void getLabelData(String nameAddressArray[])
{
nameAddressArray[0] = JOptionPane.showInputDialog("Enter title (Mr., Ms., Dr., etc.): ");
// and so on
}
}
需要注意的是,在本例中,getLabelData
能够更新在main
中声明的变量的原因是该变量通过引用传递(而不是通过值传递)。这是您应该确保熟悉的另一个重要概念。您无法从另一个方法访问一个方法(main
)的局部变量。局部变量仅存在于声明它们的块中。您无法访问一个方法(main
)的局部变量局部变量只存在于声明它们的块中。