在字段中声明对象有什么好处?

时间:2012-12-17 04:37:43

标签: java object field

如何输入:

public class Example  
{  
    private Cat whiskers;  

    public void makeCat()  
    {  
        whiskers = new Cat();  
    }  
}  

不同于:

public class Example  
{  
    public void makeCat()  
    {  
        Cat whiskers = new Cat();  
    }  
}

似乎第一个例子是更多的工作,因为你现在只能从它创建名为whiskers的Cat对象。为什么要申报呢?

4 个答案:

答案 0 :(得分:2)

在第一个中,您声明可以通过其他方法(或属性)在同一实例中使用的私有变量。但是,在第二个示例中,您只是声明一个具有局部范围的变量,换句话说,此变量仅在makeCat()中可见。

答案 1 :(得分:1)

看起来你需要一本关于面向对象编程基础知识的好书。

在第一种情况下,您要声明一个"私有成员变量"。现在这是课程的一部分,可以在其他成员函数中使用,甚至可以在外部使用。

在第二种情况下,您要声明一个"局部变量"。这是一个仅在定义它的函数内有效的变量,它仅用于函数内的计算。它不能从外部/从该类的其他功能访问。

答案 2 :(得分:0)

当第一个对象是其中一部分时,在另一个对象的字段中声明一个Object 第二个对象。 实施例 - :

class Product
  {
    int productId;
    ProductDetail detail;
  }

class ProductDetail
   {
     string brand;
     int price;
     string description;
   }

在上面的示例中,product类的一个对象对应于一个Product,每个产品都有一些details.o每当创建Product类对象时,ProductDetail类对象由JVM创建。

如果是第一个场景,则在任何地方创建Example类对象时,JVM会创建Cat类对象。 在第二种情况下,它只是该方法中的局部变量。创建Example类对象时没有Cat对象。

答案 3 :(得分:0)

不同之处在于第一个示例使用字段(又名“实例变量”),其他方法也可以在没有它的情况下引用(即“使用”)它传递给方法。

第二个例子是一个局部变量 - 它只能在该方法中使用(或者传递的其他方法)。