java构造函数

esc_ai
领域专家: 后端开发技术领域
2016-10-02 01:34:44

package cn.yaopand.springhello;

public class Car {

private String Brand;
private String City;
private int Price;
private int Maxspeed;
public Car(String brand, String city, int price) {
Brand = brand;
City = city;
Price = price;
}
public Car(String brand, String city, int maxspeed) {
Brand = brand;
City = city;
Maxspeed = maxspeed;
}
@Override
public String toString() {
return "Car [Brand=" + Brand + ", City=" + City + ", Price=" + Price + ", Maxspeed=" + Maxspeed + "]";
}


}



这两个构造函数是不可以同时存在的,原因是什么?
...全文
904 25 打赏 收藏 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
要有留白 2016-10-11
  • 打赏
  • 举报
回复
我是来学习的! 在一个类的构造方法可以有多个,默认有一个无参构造,有参构造可以有很多,但是他们的参数个数、参数类型不能都相同。
  • 打赏
  • 举报
回复
这样弄有什么意义,简直就是无用功
Higher_I_jump 2016-10-10
  • 打赏
  • 举报
回复
两个构造方法的三个参数顺序都为String,String,int,事实上两个方法一模一样了!
xingfeng_coder 2016-10-10
  • 打赏
  • 举报
回复
方法签名。构造器中参数列表的顺序不能一样,不然Java知道帮你调用哪个构造器?
a1411473204 2016-10-09
  • 打赏
  • 举报
回复
楼主你这是要函数重载吧,函数重载的要求是方法名相同,参数个数或参数类型不一样,但楼主这里面两个函数的个数和类型都一样,实质是同一个方法了,不能重载,编译会产生错误,这属于语法错误
Asen0713a 2016-10-09
  • 打赏
  • 举报
回复
可以同时存在的,所谓构造函数时方法名相同,参数列表不同,只要参数列表有任何一点不同都不算同一个构造函数,所以这两个构造函数时可以同时存在的
肃穆丶 2016-10-09
  • 打赏
  • 举报
回复
两个构造函数的参数数量、类型完全一致 不能构成重载 方法的重载是,方法名相同,参数的个数或者参数的类型不同。
hersing 2016-10-08
  • 打赏
  • 举报
回复
构造方法可存在多个,属于方法的重载,方法名可以相同,但是参数个数以及参数类型不可相同
Be_nurturing 2016-10-08
  • 打赏
  • 举报
回复
学习了,受益了
小灰狼 2016-10-08
  • 打赏
  • 举报
回复
两个构造函数的参数数量、类型完全一致 别说构造函数这样不行,一般的方法这样写也不行
tomaot123 2016-10-08
  • 打赏
  • 举报
回复
可以啊参数不一样啊
「已注销」 2016-10-07
  • 打赏
  • 举报
回复
方法的重载是,方法名相同,参数的个数或者参数的类型不同。
  • 打赏
  • 举报
回复
Java中个构造器是可以重载的,重载就是方法名称相同,但是方法参数里的个数和参数类型不一样,如果一样是不能构成重载的,那是方法的重复
byTheWayOfSr 2016-10-07
  • 打赏
  • 举报
回复
你这属于函数同名了,即使不是构造函数方法也不能同名的。函数可以重载,形参的个数与类型可以不一样,修饰符也可以不一样。与返回值类型无关。 构造函数重载是为了满足不同的对象完成初始化的。 函数名不可以一样啊,这是规则。
hei面书生 2016-10-06
  • 打赏
  • 举报
回复
把第二个构造器里面的任意一个String类型的参数int参数换个顺序就行了,这样就完成了重载。函数重载和参数类型,参数个数,参数顺序有关,和参数名无关,参数名只是一个变量,取什么都可以,编译器自然无法区分啦。
浪迹天涯-Jason 2016-10-06
  • 打赏
  • 举报
回复
构造函数是以重载的方式存在的,你这两个构造函数是一样的。 重载:函数名相同,参数列表不同(长度、参数类型不同),与返回值类型无关。 你的函数名相同、参数列表长度、类型相同,当然报错
AAlAAzCCj 2016-10-05
  • 打赏
  • 举报
回复
会出现方法调用歧义,程序根本不知道要调用哪个方法。
  • 打赏
  • 举报
回复
楼主构造函数名相同比如 public Car(){} 只要里面的参数不一样就可了。
Josonlo 2016-10-05
  • 打赏
  • 举报
回复
你三个参数的类型都一样,当你创建对象时,虚拟机怎么判断你用哪个
网络咖啡 2016-10-04
  • 打赏
  • 举报
回复
不可以,参数列表中区分按照参数个数、参数类型以及参数类型的顺序,参数名无所谓,所以这2个构造方法,编译器认为是一样的
加载更多回复(4)

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧