JAVA 实例化对象构造方法的流程是怎么走的?

问:实例化对象构造方法的流程是怎么走的?
我输入DrawIcon icon = new DrawIcon(800,800);
这段程序不是应该只会自动调用DrawIcon的构造方法吗?
为何还会实现其他方法?
为何输出结果是
4231231

package gui;
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon{

private int widht;
private int height;

public void paintIcon(Component c, Graphics g, int x, int y) {
// TODO 自动生成的方法存根
g.fillOval(x, y, widht, height);
System.out.print(1);
}
public int getIconWidth() {
// TODO 自动生成的方法存根
System.out.print(2);
return this.widht;
}
public int getIconHeight() {
// TODO 自动生成的方法存根
System.out.print(3);
return this.height;
}
public DrawIcon(int widht,int height){
// TODO 自动生成的方法存根
this.height=height;
this.widht=widht;
System.out.print(4);
}

public static void main(String[] args) {
DrawIcon icon = new DrawIcon(800,800);
}
}

第1个回答  2015-10-09
为何我把你的代码运行的输出的是4。。。追问

先出来4,然後马上又变成4231231,你仔细管擦一下

追答

一直是4,没有改变,你这程序很明显啊,不可能出现别的数,你new了一个对象,调用了有参的构造方法,设置了对象的属性,height和width,然后输出了4,你从上到下没有任何地方输出了4231231,不可能会输出这个的,除非是你的代码不只这些

追问

public static void main(String[] args) {
DrawIcon icon = new DrawIcon(800,800);
JLabel jl = new JLabel(icon);
jf.add(jl);
jf.setVisible(true);
jf.setSize(900,900);
}
这是main方法

相似回答