什么是类、引用和对象?
我已经在Java上编程了2年,我遇到了一个问题,我无法理解和区分类,引用和对象。
我不确定类或引用是否相同,尽管我知道对象是什么。
有人可以以完整的方式区分类,引用和对象是什么吗?
我所知道的是,类更像是对象的模板(蓝图到房子,其中类是蓝图,房子是对象)。
我已经在Java上编程了2年,我遇到了一个问题,我无法理解和区分类,引用和对象。
我不确定类或引用是否相同,尽管我知道对象是什么。
有人可以以完整的方式区分类,引用和对象是什么吗?
我所知道的是,类更像是对象的模板(蓝图到房子,其中类是蓝图,房子是对象)。
如果你喜欢住房隐喻:
你可以随心所欲地复制这个参考,但只有一个房子 - 你只是复制上面有地址的卡片,而不是房子本身。
在Java中,不能直接访问对象,只能使用引用。Java 不会相互复制或指派对象。但是,您可以复制并分配对变量的引用,以便它们引用同一对象。Java 方法始终是按值传递的,但该值可以是对象的引用。所以,如果我有:
Foo myFoo = new Foo(); // 1
callBar(myFoo); // 2
myFoo.doSomething() // 4
void callBar(Foo foo) {
foo = new Foo(); // 3
}
然后让我们看看发生了什么。
new Foo()
Foo
myFoo
callBar
Foo foo
foo
callBar
myFoo
callBar
callBar
callBar
myFoo
doSomething()
myFoo
callBar
callBar
整个序列将如下所示:
myFoo
callBar
myfoo
callBar
foo
callBar
向 JVM 请求另一个房子。它创建它,并返回新房子的地址。 将此地址复制到我们提供给它的卡上。callBar