Java示例代码非静态方法称为无对象

时间:2017-03-27 04:18:30

标签: java

在这里阅读Thinking in Java就是问题所在 如何在没有任何引用的情况下调用这些方法(contents(),to())? 不要注意这个(
(klklklklklklklklklklklklklklklklk)我只有这个问题。我认为这是可以理解的)

    public class Parcel2 {
    class Contents {
    private int i = 11;
    public int value() { return i; }
    }
    class Destination {
    private String label;
    Destination(String whereTo) {
    label = whereTo;
    }
    String readLabel() { return label; }
    }
    public Destination to(String s) {
    return new Destination(s);
    }
    public Contents contents() {
    return new Contents();
    }
    public void ship(String dest) {
    Contents c = contents();
    Destination d = to(dest);
    System.out.println(d.readLabel());
    }
    public static void main(String[] args) {
    Parcel2 p = new Parcel2();
    p.ship("Tasmania");
    Parcel2 q = new Parcel2();
    // Defining references to inner classes:
    Parcel2.Contents c = q.contents();
    Parcel2.Destination d = q.to("Borneo");
    }
    }

2 个答案:

答案 0 :(得分:1)

您突出显示的方法(发货)是Parcel2类的实例方法, 因此,它们在这个类中是可见的,因此可以 从同一个类中的其他实例方法调用。 注意:您隐含地使用引用从发货中调用内容。< / p>

答案 1 :(得分:0)

你没有 在没有引用/对象的情况下调用它们。您正在从另一个实例方法调用实例方法,这是完全可以接受的。