我遇到这样一段代码:
public class A{
public static void main(String args[]){
JFrame mw=new JFrame("我是一个窗口");
mw.setSize(300,300);
Container con=mw.getContentPane();
con.setLayout(new BorderLayout());
}
}
//为什么mw对象创建的时候用new关键字而con对象创建的时候不用new关键字?难道con不是对象?
//Container con=mw.getContentPane();这段代码什么意思请详细说一下,我是初学者,请将的易懂些谢谢各位高手!
public class A{
public static void main(String args[]){
JFrame mw=new JFrame("我是一个窗口");
mw.setSize(300,300);
Container con=mw.getContentPane();
con.setLayout(new BorderLayout());
}
}
//为什么mw对象创建的时候用new关键字而con对象创建的时候不用new关键字?难道con不是对象?
//Container con=mw.getContentPane();这段代码什么意思请详细说一下,我是初学者,请将的易懂些谢谢各位高手!
而con就是创建的Container对象实例
当这些对象在后台已经new出来之后,你就可以直接获得并使用,所以看起来就没有new的过程,正如二楼所说。
举个例子class A {
public static void main(String[] args) {
A a = new A(); //这里相当于 JFrame mv = new JFrame();
String s = a.getString(); //这里相当于 Container con = mv.getContentPane();
System.out.println(s);
} public String getString() { //这个方法相当于 getContantPane()
return "test"; //方法的内部返回了已经new好的对象或者已经存在的对象,
//这样外部直接调用方法就可以获得相应的对象了
}
}
调用这个函数的结果是返回Container 类型的一个对象,
即getContentPane()这个函数里面肯定new Container()了(或者是他的子类)。按住ctrl,然后点击mw.getContentPane();可以跟到源代码中间去看看看。