[英]Accessor and Mutator Methods confusion
好,基本上问题是
Accessor和Mutator方法假设Pet类具有一个名为name的变量/字段,其类型为String>
编写一个访问器方法getName()返回name的值在此框中输入答案
我写的代码如下:
public getName(String name)
{
return name;
}
编写一个变幅方法setName(),其返回类型为void,当宠物更改所有者时,可用于更改name的值。 在此框中输入答案
我写如下:
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
任何想法有什么问题吗?
您的方法签名都不正确:
String
,但是您的mutator方法采用一个int
,即整数作为其输入。 将其切换为字符串,它应该可以工作。 哦,为了澄清一下, 方法签名是方法的整个声明,基本上是您为声明方法而编写的所有内容:
之所以称其为签名,是因为这四个一起形成一个唯一的组合,该组合充当该方法的唯一标识符,并且您需要所有四个都具有一个具有唯一签名的完全声明的方法。 访问器/更改器的整个思想依赖于方法签名的某种模式,该模式使每个人都可以以预先定义的便捷方式访问它们。
NoClassDefFoundError通常意味着类路径出了点问题,您实际上需要将您的类添加到类路径中才能运行它。
仔细阅读错误消息:“返回类型为必需的公共getName(String name)”。
您的访问器应为:public String getName(){返回名称; }
您的更改器应为:public void setName(String newName){name = newName; }
并且您的数据应该像这样被保护
私有字符串名称;
我的建议是考虑所有注释,在JAVA中使用某些IDE进行开发,例如Eclipse ,IDE将最终改善您的开发时间,并避免坑洼。
读取错误消息: return type required public getName(String name)
这意味着您需要该方法的返回类型。 您需要在void之后添加String
,这样您将拥有:
public String getName(String name)
{
return name;
}
您还需要将setName方法中的int
更改为String
。
并且您需要确保在代码的开头创建变量名:
private String name;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.