Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA如何在Java中使用另一个作用域中的变量创建方法_Java_String_Swing_Scope - Fatal编程技术网

JAVA如何在Java中使用另一个作用域中的变量创建方法

JAVA如何在Java中使用另一个作用域中的变量创建方法,java,string,swing,scope,Java,String,Swing,Scope,我在空闲时间开始编写自己的Java程序,称为“订票机”,它是一个没有GUI的Java控制台程序。它会询问您的全名、常客ID、年龄,然后将您与指定的航空公司和航班号进行匹配。当你旅行时,你的燃料会减少,当它着陆时,燃料会充满(我将为此创建一个填充方法)。我在从范围外调用方法时遇到问题 目前我有两个文件: Flights.java-->启动文件。链接到flightUserDatabase flightUserDatabase.java-->包含所有方法和类/蓝图所有用户名、年龄、frequentFl

我在空闲时间开始编写自己的Java程序,称为“订票机”,它是一个没有GUI的Java控制台程序。它会询问您的全名、常客ID、年龄,然后将您与指定的航空公司和航班号进行匹配。当你旅行时,你的燃料会减少,当它着陆时,燃料会充满(我将为此创建一个填充方法)。我在从范围外调用方法时遇到问题

目前我有两个文件:

  • Flights.java
    -->启动文件。链接到flightUserDatabase
  • flightUserDatabase.java
    -->包含所有方法和类/蓝图所有用户名、年龄、frequentFlyer等
  • Flights.java中的代码:

    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=“”
  • 格式化代码的工作
  • 名称类在您的案例FlightUserDatabase中从上符号开始
  • 记住封装(私有变量)

  • 不可读的代码。我建议作为初学者,你应该更多地考虑风格、可读性和分解。对象应该做好一件事。FlightDatabase不应执行I/O操作或提示用户输入。乘客舱在哪?你需要一个。