我的任务是为程序创建几种方法。我似乎最困在这两个。
规格如下:如果n,则需要使用声明 name:setZipCode 参数:1 int 返回:布尔值
它的作用:将其参数存储为地址'邮政编码。如果 邮政编码不是90000到92000之间的数字(含) 洛杉矶的范围'邮政编码)返回false,否则返回true。
name:getZipCode 参数:无 返回:int 它的作用:返回地址的值'邮政编码
到目前为止我的代码:
public int setZipCode(int zipCode){ //argument has to be type int zipCode and this method has to return a boolean
if(zipCode >90000 && zipCode <92000){ //zipCode is between 90000 and 92000
return true;
}else{
return false;
}
public int getZipCode(){//no argument
return zipCode; //returns type int and return the value of the address zipcode
}
}
当我运行此代码时,它会为二元运算符提供错误的错误操作数类型。 不兼容的类型:意外的返回值。
我声明了int zipCode;在早期,我不明白如何让boolean和int一起工作。
如果有人能给我提供帮助,关于我做错了什么,我们将不胜感激,谢谢。
我根据你们给我的建议进行了更改,它现在编译,但由于某种原因它仍然在命令提示符下显示getZipCode和setZipCode失败! 实际拉链:0 预期的邮编:2
public int getZipCode(){
return zipCode;
}
public boolean setZipCode(int zipCode) {
if(zipCode >90000 && zipCode <92000){
this.zipCode = zipCode;
return true;
}
else{
return false;
}
}
}
答案 0 :(得分:2)
正如您所写,setZipCode
应该返回一个布尔值,并且应该设置邮政编码,顾名思义:
public boolean setZipCode(int zipCode) {
if(zipCode >90000 && zipCode <92000){
this.zipCode = zipCode;
return true;
}else{
return false;
}
}
除此之外,您应该将getZipCode()
方法移到setZipCode()
的正文之外:
public int getZipCode() {
return zipCode;
}
答案 1 :(得分:1)
这是一种可能的解决方案
public class Address {
private int zipCode;
public boolean setZipCode(int zipCode){
this.zipCode = zipCode;
return zipCode > 90000 && zipCode < 92000;
}
}
但请注意,setZipCode
有两项工作:
所以你应该分开它们。此外,请谨慎使用boolean
错误代码(see here)
答案 2 :(得分:0)
您的代码将setZipCode声明为int,但您返回布尔值(true或false)。将setZipCode声明为布尔值。
答案 3 :(得分:0)
我认为您的问题取决于您的方法:
public int setZipCode(int zipCode){...}
你说你的方法会返回一个int,但是在代码中你试图返回一个布尔值(true / false)。
要解决此问题,您应该将方法更新为:
public boolean setZipCode(int zipCode) {
if(zipCode >90000 && zipCode <92000){ //zipCode is between 90000 and 92000
return true;
}else{
return false;
}
}
另外我认为你错过了setZipCode方法和getZipCode方法之间的大括号。
答案 4 :(得分:0)
setZipCode 方法的返回类型应为 boolean ,因为您正在尝试返回布尔值。这是一行代码片段,您应该做:
public boolean setZipCode(int zipCode){
return zipCode > 90000 && zipCode < 92000;
}