People p1=new People("jack",16,'M',156,70);//楼主等待你定义的构造函数,第三个是char,你用的是“M”表示的是String,所以会报错
p1.printValues();//其次这里应该是p1,不是P1
构造函数的重载,其实就是一种经典的方法的重载。
方法的重载,有以下要求
方法名相同。参数的个数或参数的类型不同(必须满足其中的一个)
我用ih demo举例
public int add (int num1,num2){//参数类型是两个int
return num1+num2;
}
public float add (float num1,num2){//参数是float
return num1+num2;
}
public int add (int num1,int num2,int num3){//参数是三个int
return num1+num2+num3;
}
以上三种都是方法的重载
重载有如下几个常见的误区:
1,参数名不一样,叫重载
public int add (int num1,int num2){
return num1+num2;
}
public int add (int a ,int b){
return a+b;
}
这两个不叫重载,因为它们参数没有不同
2.返回类型不同,也不是重载
public int add (int num1,int num2){
return num1+num2;
}
public float add (int num1,int num2){
return num1+num2;
}
参数相同 ,返回值类型不同也不是重载。
好了,构造方法重载只是一种特殊的方法重载,性质和方法的重载一模一样
比如这题
public People(){}//无参
public Perple(String name){
this.name=name;
}
.....
等等等
希望对楼主有所帮助