-3

OOP を使用する課題に取り組んでいます。プログラムは基本的に、ユーザーが入力した内容に基づいて、さまざまな Lemur の束を作成します。これらはすべて、親クラスからの同様の特性と、独自のクラス内の独自の特性を共有します。

このプログラムの一部は、作成するオブジェクト (またはキツネザル) の数をユーザーが決定できるようにすることです。プログレッシブな方法でオブジェクトを作成したいので、L1、L2、L3...など。

これが私がこれまでに持っているものです。したがって、新しいオブジェクトが作成されるたびに、lemCounter を使用して Lemur 番号を追跡し、それをオブジェクト名に付加したいと考えました。

//Main section of code

static int numLems, typeLems, loop, lemCounter;
static String allLems[];
public static void main(String[] args) {
    //Ask for the number of lemurs
    askNL();
    //Initalize the length of the array to the total number of lemurs
    allLems = new String[numLems];
    //Ask which lemurs the user wants to generate
    //Set the lemur counter and the lemur string to nothing
    lemCounter = 0;
    for(int i = 0; i < numLems; i++){
        //Run the method that asks which lemur they want
        askTL();
        //Run the method to check which lemur the user wanted
        checkTL();
        //Use lemCounter to keep track of the lemur number
        lemCounter++;
    }
}


//Method asking how many lemurs, for the sake of cleaniness in the main method

static int askNL(){
    do{
        try{
            String numLemsStr = JOptionPane.showInputDialog("How many Lemurs would you like to generate?");
            numLems = Integer.parseInt(numLemsStr);
            loop = 2;
        }
        catch(NumberFormatException e){
            JOptionPane.showMessageDialog(null, "Not an acceptable input, please try again.");
            loop = 1;
        }
    }while(loop==1);
    return numLems;
}

//Method asking which type of Lemur

static int askTL(){
    do{
        try{
            String typeLemsStr = JOptionPane.showInputDialog("What type of Lemur would you like for Lemur "+ lemCounter+1
                    + "\n1 - Tree Lemur"
                    + "\n2 - Desert Lemur"
                    + "\n3 - Jungle Lemur");
            typeLems = Integer.parseInt(typeLemsStr);
            if(typeLems > 3){
                JOptionPane.showMessageDialog(null, "Not an acceptable input, please try again.");
                loop = 1;
            }
            else{
                loop = 2;
            }
        }
        catch(NumberFormatException e){
            JOptionPane.showMessageDialog(null, "Not an acceptable input, please try again.");
            loop = 1;
        }
    }while(loop==1);
    return typeLems;
}

//Method to decide which lemur the user wanted
static String[] checkTL(){
    if(typeLems==1){
//I'm not sure what I need to put in the name to get it to proceed linearly
        TreeLemur L = new TreeLemur();
    }
    return allLems;
}
4

1 に答える 1

2

存在するが、存在しないオブジェクト「名前」と考えるほど重要ではない変数を混同しないでください。たとえば、数値に基づいて変数名を付けることができ、次のようにするとします。

Lemur lemur1 = new Lemur();
Lemur lemur2 = lemur1;

では、ここで「命名」されている Lemur オブジェクトの「名前」は何ですか? キツネザル1またはキツネザル2?どちらも同じLemur オブジェクトを参照していることに注意してください。

配列を使用するかArrayList<Lemur>、番号でアクセスできる Lemurs の連続したコレクションが必要な場合。Map<String, LemurL>文字列に Lemur を関連付けたい場合は、a を使用します。

于 2013-05-13T02:44:35.303 に答える