1

私は ATM を構築しており、2 番目のクラスに、ログイン PIN をチェックしてArrayList. 私はJavaが初めてで、これを行う方法がわかりませんか? 使ってみましarraylistname.containsたが、それが正しいかどうかわかりません。両方のクラスを投稿します。

import java.util.ArrayList;
import java.util.Scanner;

public class BankMain {
    ArrayList<Integer> cardNum = new ArrayList<Integer>();
    public static void main(String[] args) {
         // TODO Auto-generated method stub
         BankMain main = new BankMain();
         main.menu();
    }

    public void cardNumbers(){
        Scanner cards = new Scanner(System.in);
        Scanner input = new Scanner(System.in);
        Scanner keyboard = new Scanner(System.in);

    System.out.println("Please select a 5 digit card number");
        cardNum.add(input.nextInt());

        System.out.println("Thank you! You're card number is " +cardNum);
        System.out.println("Type 'c' to go back to main menu.");
        String value  = keyboard.next();
        if(value.equalsIgnoreCase("c")){
            menu();
        }else if (!keyboard.equals('c')){
            System.out.println("Invalid Entry!");
        }
    }

    public void menu(){
        System.out.println("What Would you like to do today?");
        System.out.println();
        System.out.println("Create Account = 1");
        System.out.println("Login = 2");
        System.out.println("Exit = 3");
        query();
    }

    public void query(){
        Scanner keyboard = new Scanner(System.in);
        double input = keyboard.nextInt();  

        if (input == 2){
            BankMainPart2 main2 = new BankMainPart2();
            System.out.println("Please enter your 5 digit card number.");
            main2.loginCard(cardNum);
        }else if (input == 1){
            cardNumbers();
        }else if (input == 3){
            System.out.println("Thank you, have a nice day!");
            System.exit(0);
        }
   }
}

そして、ログイン メソッドを使用した 2 番目のクラスを次に示します。

import java.util.ArrayList;

public class BankMainPart2 {
    public static void loginCard(ArrayList<Integer> cardNum){
        if (cardNum.contains(0)) {
        }
    }
}
4

3 に答える 3

4

はい、うまくいきますが、ここでカーテンの後ろにいる男を明らかにしましょう.

何が起こっているかはautoboxingと呼ばれます。使用するメソッドには、オブジェクト タイプが必要です。 intはオブジェクト タイプではありませんが、Integer です。実際、すべてのプリミティブ型には、ボックス化されたオブジェクトが関連付けられています。

Java は、プリミティブをボックス化されたオブジェクトに自動的に変換します。Java の一部の内部は高速でルーズに動作する可能性があり、Shortオートボクシングは単純に奇妙であるため、これを使用する場所とタイミングに注意してください。

于 2012-09-22T04:23:02.820 に答える
0

intはい、 (プリミティブ型)を参照している場合は問題なく動作します。

hashcode()メソッドをオーバーライドしない限り、変更可能なオブジェクトを渡してルックアップを行うと、間違った結果が生じる可能性がありequals()ます。

于 2012-09-22T04:15:03.400 に答える
0
  cardNum.contains(0)
                   ^^^^   //It should be Card number entered by user.

回答autoboxingに記載されているため、機能します。Makoto's

于 2012-09-22T04:28:02.140 に答える