【发布时间】:2014-03-16 09:54:18
【问题描述】:
我有这种情况:
public class Number {
int num;
private TakeNumber take = null;
public Number() {
num = 5;
}
public void print() {
take.doSomething();
}
public int getNumber() {
return num;
}
public static void main(String[] args) {
new Number();
}
}
public class TakeNumber {
private Number number = new Number();
public void doSomething() {
System.out.println(number.getNumber());
}
}
现在,谁能解释一下这些情况:
我想知道编译器在这里解释了什么:
private Number number = new Number();初始化有问题的对象并传递所需的方法
将一个对象初始化为null然后对该对象调用函数是正确的,如图
简述
我想知道你是否可以调用另一个类的一个类的方法:
不需要静态函数
-
重要不要继承类,因为我想使用这些类的方法,例如:
- 我的类在概念上与 Tomato 和 machine 不同,我会将 Machine 的方法称为 Tomato
【问题讨论】:
-
您在一个问题中要问的东西太多,而且它们分散在您的问题中。我建议您重新措辞和重新格式化您的问题,使其更易于理解并获得更多答案。
-
我知道,但是我想非常清楚我的观点,为同样的问题提出更多的问题,会让我更加自信,我理解回答者的困难。
-
至少,把你问题底部的所有问题都收集起来,让回答者更容易理解你想知道的内容。
-
"现在,谁能解释一下为什么因为这些情况没有给出错误但不打印数字?" - 因为在所有三种情况下都不会调用 print() 方法。如果你调用它,你会得到 NullPointerException 因为 take 变量没有被初始化。
-
我忘记在 main 中插入 print() 的调用,是的,但主要问题是另一个问题。