Java中的引用和对象有什么区别?
我有类GUI,所以我可以创建这样的对象:
GUI g1 = new GUI();
和一个类似如下的引用变量:
GUI g2;
据我所知,g2是一个引用变量,它引用GUI类,g1是GUI类的对象。g1 和 g2 有什么区别?我可以将 GUI 类的属性与对象一起使用,但是 g2 的可能用法是什么?
我有类GUI,所以我可以创建这样的对象:
GUI g1 = new GUI();
和一个类似如下的引用变量:
GUI g2;
据我所知,g2是一个引用变量,它引用GUI类,g1是GUI类的对象。g1 和 g2 有什么区别?我可以将 GUI 类的属性与对象一起使用,但是 g2 的可能用法是什么?
引用是名称。物体就是东西。你可以为东西使用不同的名称,即使对于实际上不存在的东西也是如此。
你可以声明名称,而不实际赋予它们任何“真实”的含义,如下所示:
GUI g1;
您可以使用 = 运算符为名称分配含义(要引用的真实内容):
GUI g1 = some_gui;
名称可以随着时间的推移而改变其含义。同一个名字可以指历史上不同时期的不同事物。
GUI g1 = some_gui;
doSomething();
g1 = some_other_gui;
还有同义词:多个名称可以指同一件事:
GUI g2 = g1;
这几乎就是参考文献的作用。它们的名字意在指代东西。
可以创建内容:
new GUI();
可以当场创建和命名内容以供以后参考(字面意思!
GUI g1 = new GUI();
可以使用它的名字(或任何名字!)来引用东西:
g1.doSomething();
g2.doSomethingAgain();
可以创建相同种类(类)的不同内容,并以不同的方式命名:
GUI g1 = new GUI();
GUI g2 = new GUI();
GUI g3 = new GUI();
GUI g1_synonym = g1;
:)
Java中的引用和对象有什么区别?
引用是一个实体,它提供了一种访问其类型对象的方法。对象是一个实体,它提供了一种访问其类或类型成员的方法。
通常,如果没有对对象的引用,则无法访问该对象。
class GUI
{
void aMethod()
{
// some business logic.
}
}
可以使用或不带引用进行调用。但你肯定需要一个对象。aMethod
无参考:
new GUI().aMethod();
// you can't reuse the object
// bad way to code.
参考:
GUI aGUIReference = new GUI();
aGUIReference.aMethod();
// Now, the object can be reused.
// Preferred way to code
现在对代码行进行一些解释:
GUI g1 = new GUI();
// g1 is a reference to an object of GUI class.
GUI g2;
// g2 is a reference that can point to an object of GUI class
// but currently not pointing to any.
b/w 的唯一区别是使用对象初始化,但指向g1
g2
g1
g2
null
g2 = g1;
// it means g2 will point to the same object g1 is pointing to
// only one object but two references.