2.1用句柄操纵对象

尽管一切都看作是对象,但是操纵的标识符实际上是指向一个对象的“句柄”(handdle);

拥有一个句柄并不表示必须有一个对象同他连接;

String  s;   这里创建的只是句柄,并不是对象。若此时向s发送一则消息,就会获得一个错误。

由于s并未与任何东西相连接。

因此创建一个句柄时,无论如何都进行初始化。

2.2所有对象都必须创建

创建句柄时,我们希望它同一个新的对象进行连接。使用new关键字达到这个目的。

2.2.1保存到什么地方

(1)寄存器。最快的保存区域,因为它位于处理器内部,因为数量有限,必须有编译器分配,因此没有直接的控制权,也不可能在自己的程序里找到寄存器存在的任何踪迹

(2)堆栈。在RAM(随机访问存储器)中,可以通过它的堆栈指针获得处理的直接支持。堆栈指针下移则创建新的内容,若上移则释放哪些内存。对象句柄一般方法堆栈里,但是Java对象并不会放在其中

(3)堆。RAM 堆最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长时间,因此,用堆保存数据有很大的灵活性。

(4)静态存储。RAM   程序运行时,静态存储的数据将随时等候调用。可以static关键字指出一个对象的特定元素是静态的。但Java本身永远不会置入静态存储空间

(5)常数存储。ROM

(6)非RAM,若数据完全独立与一个程序之外,则程序不运行是仍可以村子啊,并在程序 的控制范围之外。  两个例子:流式对象和固定对象。

流式对象:对象会变成字节流,通常发给另一台机器,而对于固定对象,对象保存在磁盘中。

2.3.1

C能将一个变量隐藏在一个更大的作用域力。但是这种做法在Java里是不允许的

2.3.2对象的作用域

Java对象和主类型的存在时间不一样。用new关键字创建一个Java对象时,它会超出作用域的范围之外。所以假若使用下面这段代码

{

String  s=new String (“a    string”);

}//作用域的终点

句柄s会在作用域的终点处消失,然而s指向string对象依然占据着内存空间,所有引入垃圾收集器。

2.4新建数据类型:类

2.4.1字段和方法

一个类包括:数据成员(字段)和成员函数(方法)。

其中数据成员是一种对象(通过它的句柄与其通信),可以为任何类型。

即主类型(并不是句柄)之一,如果是指向对象的一个句柄,则必须初始化那个句柄,用一个名为构建器的特殊函数将其与一个实际对象链接起来(new);

若是一种主类型,则可以在类定义位置直接初始化

学会引用对象成员:对象句柄.成员

一个对象可能包含了另一个对象,而另一个对象里则包含了我们想要修改的数据。此时只需要爆出“连接句点”即可:myplane.leftTank.capacity=100;

1.主成员的默认值

Boolean false      char  ‘\u000’(null)

对于类中的成员函数中的变量 如果没有赋初值,那么Java会提示错误

2.5方法=函数

2.6.3static关键字

一但将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系在一起。对于函数来说,static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法,即省略了new的过程。

2.8.3嵌入HTML

@see;引用其他类@see;类名@see;完整类名 @see:完整类名#方法名

2.8.5类文档标记

@version ;版本信息

@author:作者信息

2.8.7方法文档标记

@param  参数名 说明

@return 说明

@exception  违例

@deprecated  指出旧功能已经由新功能代替

Java编程思想(二)一切都是对象的更多相关文章

  1. 《java编程思想》一切都是对象

    1. 用引用操纵对象 在Java中一切皆对象,我们平常在对java中的类进行操作时,其实操作的不是对象本身而是对象的引用.我们可以将这想象成用遥控器(引用)操作电视机(对象),只要握住这个遥控器,就能 ...

  2. JAVA编程思想(1) - 一切都是对象

     -"假设我们说还有一种不用的语言,那么我们就会发觉一个有些不同的世界" 1. 用引用操纵对象        每种编程语言都有自己的数据处理方式. 有些时候,程序猿必须时刻留意准备 ...

  3. 阅读java编程思想之一切都是对象

    温故而知新--- 1. 用句柄操作对象 现实生活中,我们可以把遥控器当作句柄,电视机当作对象.当我们拿到句柄(遥控器)的时候,我们是可以控制对象的(电视机).比如说调节音量大小,色彩等.那么在程序里, ...

  4. Java程序员的日常——《编程思想》一切都是对象

    今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思.从第二章开始,真正的开始讲解Java相关的内容,有了一定的开发经验后,再次阅读起来,感觉收获良多 ...

  5. Java编程思想 4th 第1章 对象导论

    所有编程语言都提供抽象机制. 面向对象编程似乎是一种很好的编程思想和方式,面向对象编程中的对象简洁描述是:对象具有状态.行为和标识.状态指的是数据存储,存储的数据能反应状态:行为指的是方法,方法表示对 ...

  6. 《Java编程思想》笔记 第一章 对象导论

    1.抽象过程 Q:什么是对象??? A:   1) 万物皆对象 --- 对象具有状态,行为和标识 2)程序是对象的集合,他们通过发送消息来告诉彼此要做的 3)通过创建包含现有对象的包的方式来创建新类型 ...

  7. JAVA 编程思想二

    1: java  单根继承的优点? 方便垃圾回收: 垃圾回收的设计会方便实现.   多重继承的函数重名的问题. 2: 向下转型和向上转型?    向下转型不安全,向上转型安全. 3: system.g ...

  8. Java编程思想 - 第11章 持有对象

    · 大量笔记存放在Github Java文件中,请移步查看:https://github.com/iGuure/AndroidCodeHub/tree/master/Java%20pratice/Th ...

  9. Java编程思想读书笔记 第一章 对象导论

    抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...

  10. 浅谈《think in java》:二 一切都是对象

    清晨坐在图书馆,今天聊聊早晨的“果实”. 清单1. 引用操作:对象创建:存储地方:基本类型:数组 “reference”:引用[操作对象的标识符] 例子:创建String类型的引用,并不是对象. St ...

随机推荐

  1. java获取web项目下文件夹的路径方法

    方法一: String realPath=request.getSession().getServletContext() .getRealPath("upload"); 方法二: ...

  2. codeforces392B

    CF392B Tower of Hanoi 题意翻译 河内塔是一个众所周知的数学难题.它由三根杆和一些可以滑动到任何杆上的不同尺寸的圆盘组成.难题从一个整齐的杆中开始,按照尺寸从小到大的顺序排列,最小 ...

  3. MySQL数据分析-(11)表补充:数据类型

    大家好,我是jacky,很高兴继续跟大家学习<Mysql 数据分析实战系列教程>,上次课程jacky讲解了表层面的增删改查,jacky说最重要的是增,增就是创建表,作为一个严谨的MySQL ...

  4. Robot Framework(十九) 附录

    6附录 6.1测试数据中的所有可用设置 6.1.1设置表 Setting表用于导入测试库,资源文件和变量文件,以及定义测试套件和测试用例的元数据.它可以包含在测试用例文件和资源文件中.请注意,在资源文 ...

  5. Memcached 之在win10上的安装

    一.下载 http://static.runoob.com/download/memcached-win64-1.4.4-14.zip 二.安装 memcached <1.4.5 版本安装 1. ...

  6. Java并发指南1:并发基础与Java多线程

    本文转载自互联网,侵删 什么是并发 在过去单CPU时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是 ...

  7. 关于mysql数据库远程访问

    mysql数据库安装默认为只能本地访问,若需远程连接需根据不同的操作系统做一些操作 Windows: 新装的mysql本地无法登录,显示为1045错误 mysql#1045(1045Access de ...

  8. ArcGIS超级工具SPTOOLS-SHP转数据库,批量数据库转数据库,栅格彩色转黑白

    1.1  SHP转数据库 把一个文件夹的数据,转到数据库,或者另一个文件夹,不含字文件夹 1.2  批量数据库转数据库 把一个文件夹下GDB或者MDB,转到另一个文件夹为MDB,GDB,并实现版本的转 ...

  9. Python 类中__init__()方法中的形参与如何修改类中属性的值

    一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...

  10. Ajax提交之后,Method从POST变成GET

    https://developer.aliyun.com/ask/68268?spm=a2c6h.13159736 https://blog.csdn.net/uzizi/article/detail ...