如何输入:
public class Example
{
private Cat whiskers;
public void makeCat()
{
whiskers = new Cat();
}
}
不同于:
public class Example
{
public void makeCat()
{
Cat whiskers = new Cat();
}
}
似乎第一个例子是更多的工作,因为你现在只能从它创建名为whiskers的Cat对象。为什么要申报呢?
答案 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)
不同之处在于第一个示例使用字段(又名“实例变量”),其他方法也可以在没有它的情况下引用(即“使用”)它传递给方法。
第二个例子是一个局部变量 - 它只能在该方法中使用(或者传递的其他方法)。