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

packagemypackage;publicclassperson{publicchargender;publicStringname;publicshortage;p... 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型的呢?举个例子吧!
谢谢~
展开
 我来答
zicozhang
2008-04-27 · TA获得超过1621个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:0
展开全部
补充: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);
fqtjb39442430
2008-04-27
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
恩,是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式