JAVA如何在Java中使用另一个作用域中的变量创建方法
我在空闲时间开始编写自己的Java程序,称为“订票机”,它是一个没有GUI的Java控制台程序。它会询问您的全名、常客ID、年龄,然后将您与指定的航空公司和航班号进行匹配。当你旅行时,你的燃料会减少,当它着陆时,燃料会充满(我将为此创建一个填充方法)。我在从范围外调用方法时遇到问题 目前我有两个文件:JAVA如何在Java中使用另一个作用域中的变量创建方法,java,string,swing,scope,Java,String,Swing,Scope,我在空闲时间开始编写自己的Java程序,称为“订票机”,它是一个没有GUI的Java控制台程序。它会询问您的全名、常客ID、年龄,然后将您与指定的航空公司和航班号进行匹配。当你旅行时,你的燃料会减少,当它着陆时,燃料会充满(我将为此创建一个填充方法)。我在从范围外调用方法时遇到问题 目前我有两个文件: Flights.java-->启动文件。链接到flightUserDatabase flightUserDatabase.java-->包含所有方法和类/蓝图所有用户名、年龄、frequentFl
Flights.java
-->启动文件。链接到flightUserDatabaseflightUserDatabase.java
-->包含所有方法和类/蓝图所有用户名、年龄、frequentFlyer等import java.io.Console;
public class Flights {
public static void main (String[] args) {
Console console = System.console();
//Book a Ticket Machine
//From Database otherwise Name not found on Database. Put Database in Another Class. Call it flightUserDatabase.
/* firstName: DONE
lastName: DONE
frequentFlyerID: Otherwise Invalid Number parseInt
Age: parseInt
FUEL MINUS AND FUEL ADD WHEN LAND.
*/
flightUserDatabase database = new flightUserDatabase();
System.out.println("Enter Creditials: ");
database.getDatabase();
String airline = console.readLine("ENTER YOUR AIRLINE: ");
String flightNumber = console.readLine("ENTER YOUR FLIGHT NUMBER: ");
String gate = "B7"; /* Declare data type String called "gate" */
//Next Version, Generate Random Number
System.out.println("This is an automated system. Please Wait...");
System.out.printf("%s %s is Departuring @ Gate:%s \n", airline, flightNumber, gate); /* Use printf from java.io.Console library, then output Gate and Flight Number */
/* Notes: Data Types
> String name = "Ohm";
> int age = 42;
> double score = 95.5;
> char group = 'F';
*/
}
}
来自flightUserDatabase.java的代码
import java.io.Console;
//Book a Ticket Machine
class flightUserDatabase {
Console console = System.console();
public String fullName;
public boolean getDatabase() {
boolean namesInDatabase;
do {
fullName = console.readLine("ENTER YOUR FULLNAME: ");
namesInDatabase = (fullName.equals("Ohm Passavudh") || fullName.equals("Matt"));
if (!namesInDatabase) {
console.printf("Sorry, that name is not in our database yet. \n");
}
if (namesInDatabase) {
console.printf("Welcome, Mr. %s \n", fullName);
}
} while(!namesInDatabase);
return namesInDatabase;
}
//If Ohm: FFID = 1234569
//If Matt: FFID = 246810
//FFID == FrequentFlyerID
/* Get name from inside scope fullName namesInDatabase variable */
public boolean frequentFlyerID()
I HAVE PROBLEMS HERE!!! I WANT TO SET Ohm's FFID to 1234569. But how to I determine if the user enters Ohm or Matt. I cannot access the String fullName from the other scope. I hope you understand me. If there is any misunderstanding I can clarify.
}
首先,请做好你的格式化工作,读那些代码太糟糕了 您可以在flightUserDatabase中创建一个类字段和一个getter,以便在确定名称在数据库中后获得该名称 或者可以使用getDatabase()返回它 像这样
public String getDatabase()
{
String fullName;
...
return fullName;
}
毕竟,您没有使用布尔值
。。。或者这个
class flightUserDatabase
{
private String fullName = "";
...
public String getName()
{
return this.fullName;
}
}
公共字符串fullName代码>->公共字符串fullName=“”代码>
不可读的代码。我建议作为初学者,你应该更多地考虑风格、可读性和分解。对象应该做好一件事。FlightDatabase不应执行I/O操作或提示用户输入。乘客舱在哪?你需要一个。