I am trying to create a class. Let’s call it Questionnaire. In Questionnaire, I want to instantiate a number of classes called Question. The constructor for Questionnaire accepts a string array of words, and for each word, there should be a Question class to accept it as an argument for its constructor. In other words, for every string that is passed as an argument, I want to create a Question.
I need to be able to put Questionnaire within a bigger class and still call the methods of the Question classes. The size of the array passed to Questionnaire varies as well. I don’t know how I can put multiple classes within another class when I don’t know how many classes there will be, and how to reference them from an outer class. If the array was a fixed length I’d just create Questions as question1, question2, question3… but since this is not the case I am not sure anymore. I do know there is a maximum number of Question classes I want to create though.
edit: I’m using J2ME CDLC 1.1 MIDP 2.0 for this (it’s part of a mobile phone app) so my solutions are constrained by what it offers.
You don’t want to have a separate variable per question – use a
List<Question>to have one variable which refers to a collection of questions:EDIT: If you’re in an environment without generics, you could use the non-generic form, like this:
or like this if you don’t have List/ArrayList:
In either case you’ll need to cast on every access. Alternatively, you could use an array: