刚学到创建类和类的对象引用有问题请教

cxg2003 2011-09-06 11:29:39
class Man{
int age;
int name;
int hobby;
void speak(){
System.out.println("他站起来说");
}
}
创建这个类的时候我用的是int,好!没问题!但是类的引用出问题了!
public class ManWorld{
public static void main(String args []){
Man m = new Man();
m.name ="小云";
m.age ="18";
m.hobby ="电脑";
m.speak();
System.out.println("我名字是"+m.name);
System.out.println("年龄是"+m.age);
System.out.println("爱好是"+m.hobby);
}
}
ManWorld.java编译后运行时,
出现:
G:\src>java Manworld
Exception in thred "main" java.lang.NosuchFieldError:name
at ManWorld.main<ManWorld.java:4>
然后把int改成String后:
class Man{
String age;
String name;
String hobby;
void speak(){
System.out.println("他站起来说");
}
}运行正常!
很困惑,我是个菜鸟求教下在这个代码中类的属性在这里为什么要用"String"创建属性而不是"int"?他们具体有什么区别?
...全文
72 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mourinho 2011-09-06
  • 打赏
  • 举报
回复
类型啊~~
yaganblw 2011-09-06
  • 打赏
  • 举报
回复
嗯,名字不要用int
完美灬缺陷 2011-09-06
  • 打赏
  • 举报
回复
int name;

Man m = new Man();
m.name ="小云";

int类型赋值string当然会编译不过。
cxg2003 2011-09-06
  • 打赏
  • 举报
回复
谢谢受教了
台城柳月 2011-09-06
  • 打赏
  • 举报
回复
int age; //你定义的age属性是int
m.age ="18"; // 这里应该写成m.age =18;

String age; //这里age改成了String
m.age ="18"; // 给属性所赋值的类型必须与定义类型一致
cxg2003 2011-09-06
  • 打赏
  • 举报
回复
谢谢!本人菜鸟一个!受教了!
djvfe 2011-09-06
  • 打赏
  • 举报
回复
废话,那么当然要是用String定义了,名称不是一个字符串吗
AndsionLee 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 djvfe 的回复:]
废话,那么当然要是用String定义了,名称不是一个字符串吗
[/Quote]
感觉2楼有种恨铁不成钢的味道。

62,614

社区成员

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

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