我在Pets类中调用makeNoise方法时遇到问题。我通过另一个具有makePetMakeNoise方法的类Humans调用makeNoise方法:
public class Pets
{
String name;
String noise;
boolean canMakeNoise;
public Pets(String pname, String pnoise, boolean pcanmakenoise)
{
name = pname;
noise = pnoise;
pcanmakenoise = canMakeNoise;
}
public void makeNoise(int number)
{
if(canMakeNoise==true)
{
for(int i=0; i<number; i++)
{
System.out.println(noise + " " + name);
}
}
else if(canMakeNoise==false)
{
System.out.println(name + " *remains silent*");
}
}
public void eat()
{
System.out.println(name + " is eating...");
}
当我创建它时,我设置了宠物'canMakeNoise布尔值:猫a =新猫(“小动物”,“喵”,真);
当我调用人类的makePetMakeNoise方法时,我只得到这样的打印输出:Critter 保持沉默而不是:Meow Critter。为什么会这样,我该如何解决?感谢。
"<b>" & Fields!PRODNAME.Value "</b>" & vbcrl
Fields!ADDRESS.Value & vbcrlf &
Fields!CITY.Value + " ," + Fields!STATE.Value & vbcrlf &
Fields!PINCODE.Value & vbcrlf &
}
答案 0 :(得分:3)
看起来像&#34; canMakeNoise&#34;在构造函数中反转,即分配canmakenoise = pcanmakenoise
。
答案 1 :(得分:0)
从
更改此行 pcanmakenoise = canMakeNoise;
到
canMakeNoise = pcanmakenoise;
答案 2 :(得分:0)
您为构造函数参数pcanmakenoise分配了canMakeNoise的值,该值当前为null。
pcanmakenoise = canMakeNoise;
答案 3 :(得分:0)
默认布尔值为false。
canMakeNoise总是假的;因此,总是调用以下条件。
否则if(canMakeNoise == false)
参考::
https://msdn.microsoft.com/en-us/library/83fhsxwc.aspx
https://www.google.com/search?q=c%23+default+boolean+value&ie=utf-8&oe=utf-8