类及其对象

时间:2012-12-21 07:21:48

标签: java oop

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()
    { 
           -----
    }
}

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

6 个答案:

答案 0 :(得分:4)

  • 如果您使用第一个类创建A的实例并调用sub(),您将获得1 方法范围内的A实例。
  • 如果您使用第二个类创建A的实例并调用sub(),您将拥有 A方法范围的2个实例。

答案 1 :(得分:2)

Java类有一个名为this的特殊成员,它引用当前对象。

This answer会为您提供有关this的详细信息。

答案 2 :(得分: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值,但由于您要调用已创建的新类的添加,因此将打印3。

答案 3 :(得分:0)

private void sub()
{
  add();
}

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

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

在第二种方法中,我们不必要地创建了对象。

第一个approch更好。