/*
在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注释的一些标签示例,请参考本类的开始处。
*/
在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注释的一些标签示例,请参考本类的开始处。
*/