2013-05-11 111 views
1

在下面的问题我没有得到大胆的行。该行是否意味着创建类隔离的数组对象?因为据我所知,Java没有指针的概念。对象阵列

创建一个抽象类隔间来代表铁路教练。在课堂上提供抽象功能通知。从课堂课导出FirstClass,General,Ladies和Luggage课程。覆盖其中每一个的通知功能。 创建一个TestCompartment类。写主要功能做到以下几点: 声明大小10

+1

“参考”和“指针”是一回事。 (它写得很差,写它的人应该得到一个“D”。) – 2013-05-11 11:21:56

+0

(JLS 4.3.1第2行)引用值(通常是引用)是指向这些对象的指针,还有一个特殊的空引用,没有对象。 – johnchen902 2013-05-11 11:28:27

回答

2

一方面,Java没有指针的概念;另一方面,Java以外的所有东西(即所有的Object衍生的东西)都可以作为“指针”,尽管在技术上它们不被称为“指针”。

Java调用它们引用,但既然有这样的东西作为参考null,他们表现得非常像C和C++指针。

无论如何,当你创建的十个非原语的数组,您创建引用数组,每一个组到null

Compartment[] compartments = new Compartment[10]; 

这是从创建10个Compartment对象的不同,在对象当你创建一个数组时,它们本身不会被创建,只有在需要的时候才可以通过它来引用这些对象。

+0

那么,在Java中,*表示空引用:-) – 2013-05-11 11:27:55

+0

@ dasblinkenlight真的很好的解释。 +1 – 2013-05-11 12:34:53

0

这很可能意味着的隔间指针数组:创建引用大小10阵列。

+0

引用究竟意味着什么?我们应该创建对象吗? – Lizzie 2013-05-11 11:22:49

+0

@Lizzie - 如果它说创建数组,大概你只是创建数组 - 值将是'null'。但正如我上面所说,这是一个非常措辞不清的陈述。 – 2013-05-11 11:26:05

+0

引用是'Compartement con;中的var的类型'con是对Compartement对象的引用,但是直到您创建它指向的对象为空 – Joan 2013-05-11 11:26:49

0

Java没有像这样的指针。所有不是原始的东西都是参考。

+0

“参考”和“指针”之间有什么区别? – 2013-05-11 11:23:42

+0

@HotLicks:有一件事存在,另一件不存在。存在的东西和不存在的东西之间有什么区别? – 2013-05-11 11:29:03

+0

@HotLicks添加到Kerrek,如果你需要它,AFAIK的区别是我们不能对引用进行算术运算。我们可以在指针 – 2013-05-11 11:31:04

0

尽管Java中引用的底层实现归结为C类指针(因为它在某些时候确实如此),但我认为引用将是贯穿请求的更好方式。您只需声明一个经典数组。

+0

引用并不总是用java中的指针实现的。来自Oracle的当前64位jvm确实有一种模式,其中引用存储为32位值,然后在使用前将其移位2次。因此,每个参考仅使用32位,但仍允许访问16GB RAM。 – MTilsted 2013-05-11 12:23:09

+0

@MTilsted - 还有一些类似操作的指针实例。 – 2013-05-11 18:20:11