Java 如果我在类1中创建类2的对象,然后访问类2';s的数据…有什么区别?

Java 如果我在类1中创建类2的对象,然后访问类2';s的数据…有什么区别?,java,Java,在这个对象关系的代码片段中,我引用了类1中的类2,并通过它访问类2的成员 如果我在类1中创建类2的对象,然后访问它的方法,会怎么样?这样做有什么区别 我知道我在这里遗漏了一些概念,但我不明白 // Object Relation Using References package Object_Relation; class One { // Instance Variables int x; Two t; public One(Two t) {

在这个对象关系的代码片段中,我引用了类1中的类2,并通过它访问类2的成员

如果我在类1中创建类2的对象,然后访问它的方法,会怎么样?这样做有什么区别

我知道我在这里遗漏了一些概念,但我不明白

// Object Relation Using References

 package Object_Relation;
 class One {
    // Instance Variables
    int x;
    Two t;
    public One(Two t) {
        this.t = t;
        x=10;
    }

    void display() {
        System.out.println("Class One Members : ");
        System.out.println("x = "+x);
        System.out.println("Displaying Class Two Members using its Method");
        t.display();
   System.out.println("Displaying Class Two Members using its reference :");
        System.out.println("y = "+t.y);
    }
}

class Two {

    //  Instance Variables
    int y;
    public Two(int y) {
        this.y = y;
    }

    public void display() {
        System.out.println("y = "+y);
    }

}

public class UsingReference {
    public static void main(String[] args) {
        Two t2 = new Two(20);
        One o = new One(t2);
        o.display();
    }
}

我不确定问题到底是什么

但是在这个例子中,一和二都是不同的类。为了访问非静态成员变量,需要一个类2的对象

您是否在寻找有关java内部类的一些概念:- 范例


PS:这里InnerClass是OuterClass的成员。

这是一个真正的问题吗?你在问什么?看看下面是否有帮助:@TimBiegeleisen我的问题是,我可以从两种方法中获得相同的输出,我对这两种方法都感到困惑。区别在于你需要遵循两个指针,而不是一个。1和2的内存位置没有关系,可以在任何地方。我可以从这两种方法中获得相同的输出,我对这两种方法都感到困惑。我想你在寻找依赖注入的概念。
public class OuterClass {

  int i;

  public void method1() {
    System.out.println("Inside Method 1");
  }

  class InnerClass {
    int j;

    public void method2() {
      System.out.println("Inside Method 2");
    }
  }

  public static void main(String[] args) {
    // To instantiate an inner class, you must first instantiate the outer class
    OuterClass outerObject = new OuterClass();
    outerObject.method1();

    // Then, create the inner object within the outer object
    OuterClass.InnerClass innerObject = outerObject.new InnerClass();
    innerObject.method2();
  }

}