1
public class A
{
    private void sub()
    {
        add();
    }

    private void add()
    { 
          -----
    }
}

我可以像上面那样在 sub 中调用 add 方法,我可以像下面那样做

public class A
{
    private void sub()
    {
        A obj_A = new A();
        obj_A.add();
    }
    private void add()
    { 
           -----
    }
}

我想知道它们之间的区别。谢谢你。

4

6 回答 6

4
  • 如果您使用第一个类创建 A 的实例并调用sub(),您将在方法范围内拥有一个 A 的实例。
  • 如果您使用第二个类创建 A 的实例并调用sub(),您将在方法范围内拥有 2 个 A 实例。
于 2012-12-21T07:23:49.213 回答
2

Java 类定义了一个特殊的成员,称为this引用当前对象。

这个答案会给你更多的细节this

于 2012-12-21T09:02:25.710 回答
1

在第一个方法中,您正在调用add该类的同一实例的方法。在第二个示例中,您将创建该类的一个新实例并调用其add方法。

例如:

public class A
    {
        private int num = 3;

        private void sub()
        {
          num = 10;            
          add();
        }
        private void add()
        { 
              system.out.println(num);
        }
    }

public class A
{
    private int num = 3;

    private void sub()
    {
        A obj_A = new A();
        num = 10;      
        obj_A.add();
    }
    private void add()
    { 
           system.out.println(num);
    }
}

在第一个示例中,它将打印 10。在第二个示例中,它将打印 3。这是因为在第一个示例中,您正在打印您之前修改过的实例本身的 num。在第二个示例中,您还修改了 num 值,但由于您正在调用您创建的新类的 add ,它将打印 3。

于 2012-12-21T07:26:53.317 回答
0
private void sub()
{
  add();
}

在调用方法add()的同一对象上调用sub()方法。

private void sub()
{
   A obj_A = new A();
   obj_A.add();
}

创建类型 A 的新对象并add()在其上调用方法。

于 2012-12-21T07:24:16.017 回答
0

通过第二种方法,调用 add 方法将创建两个对象,通过使用方法 1,我们只需创建一个对象即可访问 add 方法

于 2012-12-21T07:24:45.107 回答
0

在第二个方法中,我们正在创建对象。

第一种方法更好。

于 2012-12-21T07:25:06.713 回答