首先,感谢所有阅读该主题的人。
if语句如何在测试类中成为现实?我找不到任何解决方案。我无法在这些方法中编写任何代码。我试图从Room类numberOfTiger发送到类问题的方法,但我没有实现。
这个问题,如何将int变量(numberofTiger)更改为Cat.Tiger变量。之后if语句变为true to invoke(getNumberOfTiger)方法。
public class Test {
public static void main(String[] args) {
Animal an = new Animal();
Animal.Cat an1 = an.new Cat();
Animal.Cat.Tiger an2 = an1.new Tiger(3, 900, 2);
if (Animal.Question.getnumberOfTiger(an2) == 3) {
System.out.println("True");
}
}
}
public class Animal {
Cat[] c;
// inner class
class Cat {
Tiger[] t;
// inner class
class Tiger {
private int numberOfTiger;
private int averageOfTigerWeigth;
private int youngTiger;
public Tiger(int numberOfTiger, int averageOfTigerWeigth, int youngTiger) {
super();
this.numberOfTiger = numberOfTiger;
this.averageOfTigerWeigth = averageOfTigerWeigth;
this.youngTiger = youngTiger;
}
static class Question {
static int getnumberOfTiger(Cat.Tiger a) {
return 0;
}
}
}
答案 0 :(得分:1)
除了使Cat成为静态类或使用其实例外,
你还需要a.numberOfTiger的getter,因为它是私有的,在Tiger类中:
public getNumberOfTiger() {
return numberOfTiger;
}
然后:
return a.getNumberOfTiger();
答案 1 :(得分:0)
在getNumberOfTiger()中,您需要返回与该对象关联的老虎数。您目前只返回0,因此它将始终评估为false。
答案 2 :(得分:0)
我看到了这个问题。 $('input[name="c[]"]').on('keydown', function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if(keycode == 13){
//Enter
event.preventDefault();
// function to focus next a[] textbox
$(this).closest('.row').next(".row").find('input[name="a[]"]').focus();
}
});
班级和Tiger
班级必须为Cat
。原因是,非静态内部类可以调用其外部类(例如static
)。非静态内部类型的调用方式如下:
Cat.this.something
而静态内部类型的调用方式如下:
instanceOfOuterClass.innerClass
调用非静态内部类型的最简单方法是outerClassName.innerClass
Java中初学者的主要问题是他们尝试这样做:
new Outer().new Inner();
但实际的调用方式是
new (new Outer()).Inner()
此外,您的方法总是返回new Outer().new Inner()
来计算老虎数。