`
webdev2014
  • 浏览: 681059 次
文章分类
社区版块
存档分类
最新评论

第二章----切都是对象

 
阅读更多
/*
在thinking in java第二章 一切都是对象
2.1 用引用操作对象
2.2 必须由你创建所有对象
2.3 永远不需要销毁对象
2.4 创建新的数据类型
2.5 方法、参数、返回值
2.6 构建一个java程序
2.7 注释和嵌入式文档
2.8 编码风格

在第二章,作者依旧是把加深我们对对象这一词的理解,也给出生活中的实例来描述
我们该如何操作对象,也引出了我们学习的核心--类的相关概念,最后简单告诉我们
如何窗口一个java程序和如何编写注释以及编码风格

当我们随着学习的深入的时候,我们对一些需要理解的知识也会加深,记得在学习c语言
的时候,我们为了搞清楚什么是变量,指针而花费大量时间,下面是我在学习c语言时候对变量
以及变量初始化的理解,一年前写的笔记,如今再翻出来看,能够很清晰的看到当初我对变
量的理解,如今,再转换了学习思想后,对于引用这一词,我的理解依然是跟变量,指针的理解类
比于引用,发现,它们于本质上是一样的,变量代表指定内存区域的别名,只是我们内存条中的某一
小段区域的别名,也许是0000000XX32,也许是00000XXXXXX,变量的产生只是简化对内存
的表示,而指针也很类似,只不过是保存的是内存空间的地址表示,而对象归根结底也不过是一块内存
区域,如果了解国c++,也许会发现引用跟指针就是一样的,只是指针那家伙太吓人,换张脸罢了,我们
想对对象进行操作的时候,就会通过引用来进行,何为引用呢?书的作者给了很经典的例子,他把对象比作
电视机,而把引用比作了遥控器,我们想要对象电视操作的时候,可以通过遥控器来进行,有人会说,直接操作
电视也行啊,那你扪心自问,自从有了遥控器,你除了开机关机,真在电视机上操作了嘛?对象也是如此,我们
当然也可以直接操作对象拉,那些直接操作二进制的汇编大神门,它们也许就是拿着对象直接操作。
*/
//如下面这个例子
/*
* 虽然是基本数据类型,但这里的i跟str,能不能理解成是引用呢?我的答案是能,那么我们能不能
* 直接操作100和felayman呢?也能,也许代码很少量的时候,我们乐意于这么做,但是当代码量
* 一多的时候,如果总是写100和felayman的化,你会厌倦的,而且如果你想修改100或felayman
* 的化,你会累到手死(前提是你不许是由IDE来进行重构)
*/
/*
* 这里的Demo是我自定义的类,这里的demo是不是引用呢?当然是了,我们使用demo的目的是想操作
* new Demo()这个玩意。那么难道说,没有了100,str,new Demo()我们就不能叫它们引用了
* 么,原书给出了答案,能的。还是上面的例子,即使没有了电视机,遥控器也依然会独立存在,也就是说
* 我们拥有了一个引用,并不一定需要有一个对象与之关联,如下
*/
/*
* 这些引用依然会独立存在的.如果不给他们一个具体的对象,它们便没有了使用价值,就像你家没有电视机
* 给你一个遥控器,有用嘛?
* 至于为什么作者会说所有对象都是由我们来创建,这个问题需要我觉得作者太看低我们的智商了,就好像
* 我们想买房子,买车子,娶媳妇得靠自己挣钱去买一样,难不成别人会给你嘛?而所谓的永远不需要销毁对象
* 也只不过是相对而言,相对那些古老的语言来说,java确实不要我们去销毁对象,因为有JVM偷偷帮我们干
* 了,只不过我们看不到而已.
* 而下面的内容,则是我们的核心话题----类
* 类是个好东西,也不知道哪个国人在引进java语言的时候,把class翻译成类,我们说了半天对象,其实说白
* 了,就是从类中得到的,我们经常会听到一句话,你是那一类人?或者我们经常会讲我们身边的东西进行分类,这
* 里的类跟java里的类是一个意思,我们在学习数据库的时候会碰到一个词---域,什么是域呢、书上的解释
* 是--一组相同类型的数据的集合,其实这句话也可以用在类的概念上,即,类是一组相同类型事物(对象)的集合.
* 类与对象的关系,就跟域和元组的关系类似,与我们高中时期学习的集合与元素的关系也类似,看你怎么去理解了,
* 所不同的是,类比它们的概念更加广阔,因为类本身是一种模型,而不是容器,而域与集合则更像是容器。我们可以
* 说域中包含某个元组,或者集合中包含某个元素,但是我们却不能去说类中包含某个对象。但是反过来却都说的通,
* 好比某个元素属于某个域,某个元素属于某个集合,某个对象属于某个类。因此我们把类理解成一种模型更好,有了
* 这种模型,我们可以创造出许许多多不同的新模型(新类)。或者我们用更加专业的术语去描述的化,类则可以理解
* 成是一种数据的集合,至于存放什么数据,则看你想放什么数据了.那么一般来讲,类中会存放什么东西呢?官方给出
* 了规范,字段和方法,这是最基本的规范,有人会说,我定义的类里什么都没有,但是依然能运行,就好比我上面的
* Demo类,它的定义如下:
* public class Demo {}
* 的确什么都没有,但不代表就真的没有,因为当你运行这个程序的时候,JVM会帮你生成一个字段和一个方法的.
* 那么是什么字段和什么方法呢?如果看过不少的java源码就会发现
* 第一个是构造方法
* 第二个是 serialVersionUID
* 前者表示你能够使用该类,后者表示该类的序列号。
* 至于如何构建一个java程序,我觉得我没有必要在去写一个Hello,java了。
* 而在本章的最后两节,是大家最容易忽略的内容,但真正深入学习java的人会觉得相当重要,因为他们决定了你的
* 代码质量,你可以问问自己,你是愿意阅读一份注释清晰,命名规范的代码,还是看一段干巴巴的代码呢?有时候在网上
* 看到一段很有技术含量却又么有注释的code块的时候,我总是很怒,因为没有注释,你不得不绞尽脑汁去思考别人写
* 某些语句的含义,为了了解一个变量代表的时候,不得不上下文搜索.有时候我们会无比喜欢那些开源的项目,很大原因
* 就是别人的注释与编码风格是在是太好了.
* 关于javadoc注释的一些标签示例,请参考本类的开始处。
*/
分享到:
评论

相关推荐

    VTK User's Guide(中文完整版)

    第二部分 通过例子学习VTK 第4章 基础 4.1 创建1个简单的模型-------------------------------------------------------------------------24 程序化源对象----------------------------------------------------...

    机器学习实战第二章相关

    资料列表:代码,数字识别数据集,约会对象数据集 代码功能:代码使用kNN方法实现了对约会对象的分类,手写字体的识别,并切定义 了分类错误率的函数。

    EJB3.0 实例教程 -- 切片1

    第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用EJB.....10 第三章开发前的准备............10 3.1 熟悉...

    jQuery权威指南-源代码

    书名:jQuery权威指南(系统介绍jQuery方方面面,囊括118个实例和2个综合案例,实战性强) 作者:陶国荣 著 书号:978-7-111-32543-7 定价:59.00元 出版社:机械工业出版社华章公司 ...第11章 综合案例开发...

    跟我学spring3(1-7)

    【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3 【第二章】 IoC 之 2.2 IoC 容器基本原理 ——跟我学Spring3 【第二章】 IoC 之 2.3 IoC的配置使用——跟我学Spring3 【第三章】 DI 之 3.1 DI的配置使用 ——跟我...

    EJB3.0 实例教程 -- 切片2

    第二章运行环境配置4 2.1 下载与安装........4 2.2 运行一个EJB3例子.......9 2.3 在独立的TOMCAT 中调用EJB....9 2.4 发布在JBOSS集成环境中的WEB应用调用EJB.....10 第三章开发前的准备............10 3.1 熟悉...

    《软件系统架构与开发环境》第二章源代码-by 南邮-陈杨

    从抽象到具体分三个层次介绍相关知识,第一层次为体系结构及其相关概念,第二层次为流行的体系结构(模型)及其构件(协议),第三层次为具体的中间件技术以及基于上述技术的系统开发方法。 内容丰富,详略得当。从...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     第4章 python对象   4.1 python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 none--python的null对象   4.4 内部类型   4.4.1 代码对象   4.4.2 帧...

    图形图像处理源程序-matlab6.5图形图像处理源程序.rar

    第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     第4章 python对象   4.1 python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 none--python的null对象   4.4 内部类型   4.4.1 代码对象   4.4.2 帧...

    Java/JavaEE 学习笔记

    第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六章 高级映射...192 第七章 高级查询...196 ...

    J2EE学习笔记(J2ee初学者必备手册)

    第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六章 高级映射...192 第七章 高级查询...196 ...

    Python核心编程第二版(ok)

    Python核心编程第二版(ok) 第1部分 Python核心  第1章 欢迎来到Python世界   1.1 什么是Python   1.2 起源   1.3 特点   1.3.1 高级   1.3.2 面向对象   1.3.3 可升级   1.3.4 可扩展   ...

    Python核心编程第二版

     第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--Python的Null对象   4.4 内部类型   4.4.1 代码对象   4.4.2 帧...

    Kettle入门基础教程

    这是一本适合初学者入门的书籍,详细切明了的阐述Kettle这个工具 第一章:Kettle资源库管理 第二章:菜单栏介绍 第三章:工具栏介绍 第四章:主对象树 第五章:转换核心对象 第六章:任务Job核心对象

    从抛物线谈起混沌动力学引论第2版 [郝柏林 著] 2013年版

    从抛物线谈起:混沌动力学引论 第二版 出版时间:2013年版 内容简介  《中外物理学精品书系·前沿系列:从抛物线谈起(混沌动力学引论)(第2版)》可以作为理工科大学高年级学生、研究生和青年教师扩展知识的读物...

    2017年最新机器学习入门与实战精品高清全套视频教程附讲义作业(anaconda2 4.3Pytyhon2.7 jupyter) 70课

    第二章Pandas前导课程 2.1、Pandas介绍 2.2、Series 2.3、索引对象 2.4、DataFrame 2.5、Pandas常用操作(1) 2.6、Pandas常用操作(2) 2.7、缺失值处理 2.8、pandas制图 2.9、Matplotlib(1) 2.10、Matplotlib(2...

    C#二维三维图形绘制工程实例宝典

    第二部分 二维图形的基本算法 第4章 二维矩阵和变换 4.1 矩阵基础和变换 4.2 齐次坐标 4.2.1 齐次坐标中的缩放 4.2.2 齐次坐标中的平移 4.2.3 齐次坐标中的旋转 4.2.4 变换组合 4.2.5 C#中矩阵的定义 4.2.6 C#中的...

    Biomedical-Image-Analysis-in-Python-Datacamp

    第二章专门介绍遮罩和滤镜。在这里,我们学习如何探索模式以选择图像的子区域,以及如何使用滤镜检测特征。第三章是关于图像分割,对象标记和形态测量的。最后一章讨论了配准,重采样和图像比较的基础。在该存储库中...

    MATLAB图形图像处理

    第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 ...

Global site tag (gtag.js) - Google Analytics