《Java编程思想》笔记

第一部分 对象

2018-01-22  本文已影响8人  落水木木

[TOC]
这部分内容很多很杂,简单整理主线。

一 广义的对象

很难定义。将事物的属性抽象出来形成的一个概念。
比如鱼抽象出生活在水里,外形类似梭型的生物。一个事物可以称为一个对象,符合这个特征的对象可以称为鱼,或者说该对象的类型是鱼。又比如四边形的定义:

由不在同一直线上的不交叉的四条线段依次首尾相接围成的封闭的平面图形或立体图形叫四边形,由凸四边形和凹四边形组成.

符合上边特征的对象可以称为四边形。

类型,也可以称为类,描述了具有相同特性(数据元素)和行为(功能)的对象的集合


二 java中的对象

只关注两点:

比如电灯Light具有开灯和关灯的功能,那么它就具有on和off两个接口。
对于灯的使用者而言,只需要了解灯的这两个功能就可以了,而不需要知道灯开关的原理。

三 设计对象的类

3.1 类的构成方式

3.2 在恰当的地方使用对象

像这样忽略类型的具体细节的代码编写方式更为简单,也更易于理解,差不多就是面向对象的大部分意义。
概念:将子类看做基类的过程称为向上转型(upcasting)


四 创建对象

4.1 用引用操作对象

java中操作的标识符(比如String str;里的str)实际上是对象的一个“引用”。

引用相当于遥控器,拥有遥控器就可以保持与空调的联系。当希望降低温度时,实际操作的是遥控器(引用),遥控器调整空调(对象)温度。

在代码中分析:

String str;//这里创建的是引用而不是对象,它并未和任何事物关联,此时操作str会报空指针异常

str=new String("lsmm");//此时str与字符串对象关联

4.2 对象存储的位置

更详细的分析可以看《深入理解Java虚拟机》读书笔记
1.寄存器
位于处理器内部,不可操作。

2.栈
存储基本类型、方法出口、对象引用等,分本地方法栈和虚拟机栈。

3.堆
存储对象实例,是GC(垃圾管理器)管理的主要区域,所有线程共享,JVM启动时创建。

4.常量
存储在方法区(可以理解为堆的一部分)中。

5.数据库、硬盘等

6.基本类型具有确定的大小,存储在栈中

数组

Java中创建数组对象实际上是创建引用数组,并且每个引用赋初始值null
cc++ 中使用的数组是内存块,应用访问自身之外的内存或者在数组初始化前使用内存会产生难以预料的后果,而在java中会抛出空指针错误。

4.3 对象的作用域

注意区分引用的作用域对象的作用域。

4.5 创建新的数据类型:类

字段。
方法(返回值、参数列表)。
作用域。

上一篇 下一篇

猜你喜欢

热点阅读