我是java初学者,写了个代码有问题。不知道怎么回事

来源:百度知道 编辑:UC知道 时间:2024/06/13 09:37:49
package mypackage;

public class person {
public char gender ;
public String name ;
public short age ;
person(String name,char gender,short age){
this.name= name;
this.gender= gender;
this.age= age;
}

void putout(){
System.out.println("the person of name: "+name);
System.out.println("the person of gender: "+gender);
System.out.println("the person of age: "+age);
}

public static void main(String[] args){
person person=new person("pzn",'m',1);--【//编译时,提示:找不到符号
符号: 构造函数 person(java.lang.String,char,int)
位置: 类 mypackage.person
person person=new person("pzn",'m',1);】

person.putout();
}
}
short 也属于int的啊
只不过int(4位)的范围大于short(2位)
我说的对吗?
为什么1是int而不是short
那什么是short型的呢?举个例子吧!
谢谢~

补充:java是向上兼容的,如果你的定义是int,传入一个short是没有问题的。反之则不行。
short的取值范围:-32768 - 32767
int的取值范围:-2147483648 - 2147483647。
另外java有默认常用类型,比如你的1,它默认为int。
---------------
由于你的构造方法person(String name,char gender,short age)中的参数类型分别为:String,char,short,
而你调用它时用的person person=new person("pzn",'m',1);其参数类型为String,char,int。int和short类型是不匹配的,所以会报错,建议改成(两者取其一):
public int age ;
public person(String name,char gender,int age){
this.name= name;
this.gender= gender;
this.age= age;
} 或者
person person=new person("pzn",'m',(short)1);

恩,是的