2017-04-19 1 views
-2

私はフリータイムの間に "Book A Ticket Machine"という独自のJavaプログラムを作成し始めました。これはGUIのない​​Javaコンソールプログラムです。 FullName、FrequentFlyer ID、年齢を尋ね、指定された航空会社とフライト番号にあなたをマッチさせます。旅行中に燃料が減少し、燃料が着陸すると燃料がいっぱいになります(このための充填方法を作成します)。スコープの外からメソッドを呼び出す際に問題があります。 - >発射ファイルJAVA。 Javaの別のスコープの変数を使ってメソッドを作成する方法

  1. Flights.java

    現在、私は2つのファイルを持っています。 flightUserDatabaseにリンクされています。 flightUserDatabase.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'; 
         */ 
        } 
    
    } 
    

    コード:

    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. 
    } 
    
    から
  2. flightUserDatabase.java>は、すべてのメソッドとクラス/青写真すべてのユーザ名、年齢、frequentFlyerなどFlights.javaから

コードが含まれています

+3

コードを読み取れません。私は初心者として、スタイル、読みやすさ、分解についてもっと考えてみることをお勧めします。オブジェクトは一つのことをうまくやるべきです。 FlightDatabaseはI/O操作を実行したり、ユーザーに入力を促したりしてはいけません。乗客用のクラスはどこですか?あなたは1つ必要です。 – duffymo

答えて

0

まず、あなたの書式で作業してください。そのコードはひどいものでした。

flightUserDatabaseにクラスフィールドとゲッターを作成することができます。名前がデータベースにあると判断した後で名前を取得できます。

それとも、getDatabaseでそれを返すことができます()は、このよう

...

public String getDatabase() 
{ 
    String fullName; 
    ... 
    return fullName; 
} 

結局のところ、あなたはそのブール値を使用していません。あなたは、変数public String fullName;初期化する必要があり

...またはこの...

class flightUserDatabase 
{ 
    private String fullName = ""; 
    ... 
    public String getName() 
    { 
    return this.fullName; 
    } 
} 
0
  1. から
  2. 名前のクラスがあなたのケースで上位記号から始まる整形コード上>public String fullName = "";
  3. 作業をFlightUserDatabase
  4. カプセル化について(プライベート変数)
関連する問題