日期:2014-05-20  浏览次数:20711 次

大家帮我看看这个class
最近学习jsp碰到这么一个bean的例子,突然发现自己对基础还不是很了解.import   java.util.Map;
import   java.util.HashMap;
import   java.util.TreeMap;
public   class   Questions{
private   String   topic;
private   int   numQuestions;
private   Map   questions   =   new   HashMap();
public   String   getTopic(){
return   topic;
}
public   void   setTopic(String   t){
topic   =   t;
setNumQuestions(getQuestions().size());
}
public   int   getNumQuestions(){
return   numQuestions;
}
public   void   setNumQuestions(int   n){
numQuestions   =   n;
}
public   Map   getQuestions(){
return   (Map)questions.get(topic);
}
public   void   setQuestions(Map   m){
questions   =   m;
}
public   Questions(){
Map   topic     =   new   TreeMap();
topic.put( "EL_1 ", "EL_1...... ");
topic.put( "EL_2 ", "EL_2...... ");
topic.put( "EL_3 ", "EL_3...... ");
questions.put( "EL ",topic);
}
}
就上面这个class,我的问题是:
1在类constructor中的定义一个变量(如topic),和private   private   int   numQuestions这样在类中定义的变量,他们的作用域是一样的吗?都是整个类吗?
2还有就是这个例子,constructor里边和前面定义的变量基本没有关系,是不是为了达到这样的目的:程序可以无参数初始化实例,然后先赋值再取值(如string   topic)?
3就是感觉这个类有点怪,不知道这个例子是不是好的程序习惯?



------解决方案--------------------
1.constructor不是,类中定义的变量是
2.不是给questions值了么?
3.不好,类变量最好不要和local变量重名,容易缺乏可读性