该Java的程序是如何实现的?……急啊!!各位朋友,帮帮忙啊!

[复制链接]
查看11 | 回复3 | 2009-7-4 03:05:26 | 显示全部楼层 |阅读模式
public class EqualsDemo
{
public static void main(String[] args)
{
new EqualsDemo(3L);
}
public EqualsDemo(long x)
{
this((int)x);
System.out.println("a");
}
public EqualsDemo(int x)
{
this();

System.out.println("b");

}
public EqualsDemo()
{
System.out.println("c");
}
}
答案是cba
但不懂啊……

回复

使用道具 举报

千问 | 2009-7-4 03:05:26 | 显示全部楼层
这个很简单呀。首先说明,一个类的构造方法,是一个类实例化得重要途径。还有方法的重载,所谓重载,就是方法名相同,而参数不同。 这个类声明了三个构造函数EqualsDemo(long x),这个只能接受long型数据和比long型范围小的数据,比如int、char、short等等,但是,他会寻找最适合得数据,想你的这个里面,有接受int和long参数的,你输入一个3,本来两个方法都可以接受这个参数,但是3是int型,含有int构造方法的最适合;EqualsDemo(int x),同样只能接受范围比int小的数据,public EqualsDemo()不接受任何数据。 main()方法是所有程序的入口点,也就是从main()方法开始执行,首先,new...
回复

使用道具 举报

千问 | 2009-7-4 03:05:26 | 显示全部楼层
你只要顺着方法的调用往下看,就会找到规律了,在一个类中构造方法是除了静态方法外首先被执行的。所以顺序就是c b a。...
回复

使用道具 举报

千问 | 2009-7-4 03:05:26 | 显示全部楼层
肯定是CBA了。。这是方法的重载问题。。在main函数调用的是Long类型参数的构造函数。然后在Long类型构造函数体里调用了int型参数的构造函数。。然后调用了无参构造函数。。最后打印了C。。然后回到之前调用的int参数的构造函数。。打印B。。然后回到Long类型参数的构造函数打印了A...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行