好的,基本上问题是
访问器和Mutator方法假设 班级宠物有一个 名为name的变量/字段 输入字符串>
编写一个访问器方法getName() 返回名称Enter的值 你在这个方框中的答案
我编写了如下代码:
public getName(String name)
{
return name;
}
写一个mutator方法setName(),用 可以使用的返回类型的void 当改变名字的价值时 宠物改变了主人。输入你的答案 在这个方框中
我写道如下:
public void setName(int newName)
{
name = newName;
}
我似乎很困惑,因为我没有得到标记,我得到的错误是
Pet.java:9: invalid method
declaration; return type required
public getName(String name)
^ 1 error The output should have been:
getName() works as expected
setName() works
This is what was actually produced:
Exception in thread "main" java.lang.NoClassDefFoundError: Pet
任何想法有什么问题吗?
答案 0 :(得分:4)
您的方法签名都不正确:
String
,但你的mutator方法需要int
,这意味着 integer 作为输入。将其切换为String,它应该可以工作。哦,只是为了澄清,方法签名表示方法的整个声明,基本上你编写的所有声明方法:
它被称为签名的原因当然是这四个一起组成了一个独特的组合,它作为方法的唯一标识符,你需要所有四个都有一个具有唯一签名的完全声明的方法。访问者/变异者的整个想法依赖于某种方法签名模式,使每个人都能以预定义的方式访问它们。
NoClassDefFoundError通常意味着类路径有问题,您需要将类实际添加到类路径中才能运行它。
答案 1 :(得分:3)
仔细阅读错误消息:“return type required public getName(String name)”。
答案 2 :(得分:2)
您的访问者应该是: public String getName(){return name; }
你的变种应该是: public void setName(String newName){name = newName; }
你的数据应该像这样保护
私人字符串名称;
答案 3 :(得分:0)
我的建议是关于所有的评论,在JAVA中使用一些IDE进行开发,例如Eclipse,IDE将明确地改善你的开发时间,并防止陷阱在一些基本的思考上这样做。
答案 4 :(得分:0)
阅读错误消息:return type required public getName(String name)
这意味着您需要该方法的返回类型。您需要在空白之后添加String
,这样您才能拥有:
public String getName(String name)
{
return name;
}
您还需要将setName方法中的int
更改为String
。
您需要确保在代码的开头创建变量名称:
private String name;