java构造方法重载问题。

class BirthDate
{
private int day;
private int month;
private int year;
private double time;

public BirthDate(int d,int m,int y)
{
day=d;
month=m;
year=y;
}

public BirthDate(int d,int m,int y,int t)
{
day=d;
month=m;
year=y;
time=t;
}

public void setDay(int d)
{
day=d;
}

public void setMonth(int m)
{
month=m;
}

public void setYear(int y)
{
year=y;
}

public int getDay()
{
return day;
}

public int getMonth()
{
return month;
}

public int getYear()
{
return year;
}

public void display()
{
System.out.println(day+ "-" + month+ "-" + year);
}
public void show()
{
System.out.println(day+ "-" + month+ "-" + year+"-" +time);
}
}

public class Test{
public static void main(String[] args)
{
Test test=new Test();
int date=9;
BirthDate d1=new BirthDate(7,7,1970);
BirthDate d2=new BirthDate(1,1,2000);
BirthDate d3=new BirthDate(1,1,2000,18.00);
test.change1(date);
test.change2(d1);
test.change3(d2);
System.out.println("date="+date);
d1.display();
d2.display();
d3.show();
}

public void change1(int i)
{
i=1234;
}

public void change2(BirthDate b)
{
b=new BirthDate(22,2,2004);
}

public void change3(BirthDate b)
{
b.setDay(22);
}
}
哪里错了?有一个错误,出现在BirthDate d3=new BirthDate(1,1,2000,18.00);这里。指向new。

public BirthDate(int d,int m,int y,int t)
{
day=d;
month=m;
year=y;
time=t;
}
你的构造函数中是4个int型参数
而你调用时BirthDate d3=new BirthDate(1,1,2000,18.00);
传进去的最后一个参数18.00是double型的,int型要小于double,不能自动转型,所以要报错
要么修改构造方法,改成接受一个String类型的,将18.00改成“18.00”
要么改成一个接收double类型的
或者修改18.00为18
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-25
下面一楼的答案 正解 verygood

java 构造方法重载
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,非方法重载,因为他们的参数类型顺序一样是int,String,int 2.方法重载与访问权限修饰符和方法返回值无关 调用:1.当调用的时候,填好方法参数时,它会自动判断参...

java构造函数重载错误…求问
构造函数都没有返回值,参数数量一样,类型一样,那么这就是同一个函数,一个类中,一个函数被定义两次是不行的,不能通过编译。构造函数当然可以重载,这种问题你自己可以试试看。

java中关于构造器构造函数构造方法重载方法的困惑
比如说你要将一个字符串和一个整形的数据加起来形成一个字符串.(假设+号默认只能连接两个字符串).这时你就要对+号声明方法:public String +(String s ,int i){}.又如果你想把两个整形的数据连接起来.就要进行方法重载:public String +(inti ,int j){}.方法一:--- public String +(String s...

java语言中构造方法和方法重载在什么时候使用?有什么作用?请详细说明一...
第二个,方法重载,overload,是同名不同参数的方法。用于方法功能相同或基本相近,参数类型不同的。比如计算面积,计算圆和计算矩形功能类似,可以通过相同名称和不同参数来实现。一楼的哥们说的是重写,override,子类继承父类同名方法,用于多态的。

关于一个构造方法重载的报错,初学者简单问题
第1个构造的地方,没有print出来,自然是没有输出了

java中方法的重载的什么意思,最好举个例子
1)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数\/类型。重载Overloading是一个类中多态性的一种表现。(2)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数...

java题,做一个学生类,用构造方法和重载方法,
public class Student {private String name;private String id; \/\/下面2个是构造器,也是重载public Student(){this.name="张三";this.id="111111";}public Student(String name,String id){this.name=name;this.id=id;} \/\/下面2个是重载方法public String getName(){return this.name;}pu...

关于Java中的重载
方法重载,在JAVA中,也叫: 编译时多态。(由编译的时候来确定调用哪个方法)重载的原则: 向上就近匹配原则 注意: 如果只有print( double d ) 方法,而要调用 print(int) ,则编译器会自动地就近向上匹配 print(double) 方法。但是反过来就不行,因为从大到小会丢失精度, 所以,没有就近向下匹配...

方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。以java为例,我们编写一个方法重载的例子。参数列表的不同体现在以下两点:1、参数的类型不同 2、参数的个数不同 具体例子如下:\/iknow-pic.cdn.bcebos.com\/54fbb2fb43166d22e1985e864a2309f79052d231"...

java构造函数 重载的问题!大神进
System.out.println(p2.setName());这句话有问题,应该为System.out.println(p2.getName());setName是要设置name,要传参数,不传肯定出错。

相似回答
大家正在搜