读TIJ -2 一切都是对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读TIJ -2 一切都是对象相关的知识,希望对你有一定的参考价值。
《第2 章一切都是对象》
1.一切都是对象。不是Bruce Eckel说的,而是Alan Kay 总结的Smalltalk 五大基本特征的第一条。
从程序设计者或源码的角度,我觉得:“一切皆对象。X” 。类型type是计算机科学重要概念(类型理论type theory),从对象技术角度看,Java源码中没有不论什么对象,一切皆类型、引用变量或引用,只有没有对象。为了模拟自然(无论唯心或唯物),我杜撰了
柏拉图法则:类的世界独立存在,对象世界由类创建而来
2.杂合语言或多范式编程,是一种临时没有定论的炒作.由于依照托马斯?库恩的范式(paradigm)论。新旧范式是不可通约的、不可比較的。
个人倾向觉得:命令范式和函数范式如同原子级别看待世界,而对象范式在以米为单位(的宏观视角)看待世界。
2.1 用句柄操纵对象 You manipulate objects with references
String s;
But here you’ve created
】——而TIJ不是偶尔,而是全文的混淆。
是的。我再三强调。String s和int i,s和i都是一个变量而已!
。!
可想而知。TIJ无法介绍什么是真正的引用(值)。
假设用遥控板和电视机的样例,TV tv= new TV(); tv即使硬说成遥控板也不行。
tv是你的手!tv握住的东西(tv保存的值)才是“遥控板”,你的手随时能够更换保存的值(遥控板)以控制不同的TV对象。
2.2 全部对象都必须创建
TV tv= new TV(); 无论怎样生活化的介绍,主要的概念还是应该准确。
这里是一个反面样例,我要引以为戒。当然,因为他把(引用)变量s和它的值混为一谈。这段文字(对我而言)必定地显得别扭和错误。
六个地方有些乱。要讨论存储管理策略最好不要把寄存器和持久对象牵扯进来。
1.【不是用new 创建变量,而是创建一个并不是引用的“自己主动”变量。这个变量容纳了详细的值,并置于堆栈中。可以更高效地存取】。
因而,我个人会这样写:
int i的i是一个基本变量,将基本变量保存的简单值5直接置于堆栈中,显然要比使用一个引用变量找到对象再从对象中提取简单值5更高效。
其实。通过API封装的特殊引用类型——包装类(指Boolean、Byte、Character、Short、Integer、Long、Float和Double),程序猿全然能够使源码中不出现不论什么基本类型(通过自己主动装箱将不论什么文字转换成包装类对象),这在Java语言和JVM中很easy实现。
对于方法调用栈上的数据,处理Integer i不如处理int j直截了当。因为全部对象在堆上分配内存,方法调用栈上使用Java基本类型(如进行2+i这样的简单操作时),不应该被迫去创建各种对象。即使非常easy在JVM上进行底层转换而使源码表现得100%面向对象。也没有太大的必要。】
我个人不觉得这是好主意。
2.3 绝对不要清除对象
2.4 创建新的数据类型:类
2.5 方法、自变量和返回值
方法不过一个代码块,假设它“是”类的接口。才决定其对象可以接收该消息,而Help method即private method显然不是接口。
嗯
2.6 构建Java 程序
2.7 我们的第一个Java 程序
2.8 凝视和嵌入文档
以上是关于读TIJ -2 一切都是对象的主要内容,如果未能解决你的问题,请参考以下文章