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

概念性问题~~
小弟研究Java已有一段时间,虽然已渐渐可以做些小程序,但有些概念性的东西尚不能准确解释出来,以致影响编程的技巧,特请高手指点。
以下两个常用的语句,请高手用Java行话准确解释一下,小弟在这里先行谢过!
Container   contentPane=new   Container();
Container   contentPane=getContentPane();  


------解决方案--------------------
Container contentPane=new Container();
应该是构造一个新的Container对象。

Container contentPane=getContentPane();
获取一个Container对象给contentPane?应该不是。。没看懂。。。我也是新学的,呵呵。不对的话请后面的人纠正下,谢谢。
------解决方案--------------------
Container contentPane=new Container();
构造一个新的Container对象,其中Container()是Container的构造函数。
Container contentPane=getContentPane();
getContentPane()是该类一个方法,它的返回值是Container对象。
两个语句都是创建一个Container对象。
------解决方案--------------------
仿佛问题只在于一个是直接使用构造函数,另一个则是间接使用。
当调用构造函数之后还要做比较多的初始化工作的时候,倾向于使用后者。
相当于一个工厂方法,不过工厂方法一般都使用静态方法。
致于取舍,依具体需要而定。
------解决方案--------------------
我觉得LS没回答好第二个问题
是因为Container contentPane=getContentPane();一般是放在一个继承了JFrame类的子类里边的。
getContentPane()不是自己实现的方法,而是JFrame的方法,它返回了该窗体的 contentPane 对象,往里面添加组件就会在这个JFrame里显示出来