码迷,mamicode.com
首页 > 编程语言 > 详细

Java编程思想 4th 第2章 一切都是对象

时间:2017-07-26 23:46:14      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:java编程   匿名   span   理解   控制   java语言   分享   hello   enc   

Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情在类对象中完成。

在Java中,使用引用来操纵对象,在Java编程思想的第四版中,使用的术语是“引用(reference)”,之前有读过Java编程思想第三版,在第三版中,使用的术语是“句柄(handle)”,事实上,我觉得第三版的术语“句柄”更加形象传神,就像你用一个门的把柄来开门关门一样,不用管门是什么门,总之你用门把柄就能控制操作这扇门。当然,使用“引用”这个术语对于C++出身的人来说更方便理解,因为在C++中,底层一般使用指针来实现引用,也即通过指针来间接操纵对象。更合拍的是,在C++中,使用new动态分配的对象是匿名的,没有任何办法能够操纵该对象,除了起初new表达式返回的指针,在Java中,对象都是new出来的,是存放于动态内存中的,要想使用对象,就要通过对象的句柄(引用)来操作,这无形中把Java和C++联系了起来,因为二者本质都是一种类似指针的东西。

在Java中,引用可以单独存在,就像在C++中,指针也是一个独立的存在。我们可以把引用关联到对象上,也可以令指针指向对象,因此引用(指针)是独立于对象存在的。同指针一样,不能够随意使用没有关联对象的引用。在Java中,使用未关联对象的引用会导致编译报错;在C++中,这通常会导致内存越界,进而收到操作系统的segmentfault信号,如果未捕捉处理该信号,默认是程序coredump。如下图所示:

C++:

技术分享

 

Java:

技术分享

 

此处还隐式说明了一个Java语言的特性:String字符串可以用带引号的字面值进行初始化(字面值一词是我从C++中拿过来的术语),示例如下:

String str = "Hello";

一旦创建了引用,除了用上述特性直接进行初始化,通常情况下引用必须管理到一个对象,而Java中对象的创建只能通过new来进行。对于上述例子,可以写成:

String str = new String("Hello");

 

Java编程思想 4th 第2章 一切都是对象

标签:java编程   匿名   span   理解   控制   java语言   分享   hello   enc   

原文地址:http://www.cnblogs.com/pluse/p/7242212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!