读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 一切都是对象的更多相关文章
- Java编程思想 4th 第2章 一切都是对象
Java是基于C++的,但Java是一种更纯粹的面向对象程序设计语言,和C++不同的是,Java只支持面向对象编程,因此Java的编程风格也是纯OOP风格的,即一切都是类,所有事情通过类对象协作来完成 ...
- 2.JAVA编程思想——一切都是对象
一切都是对象 欢迎转载.转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040221 虽然以C++为基础,但 Java 是一种更纯粹的面 ...
- 程序猿都没对象,JS竟然有对象?
现在做项目基本是套用框架,不论是网上的前端还是后端框架,也会寻找一些封装好的插件拿来即用,但还是希望拿来时最好自己过后再回过头了解里面的原理,学习里面优秀的东西,不论代码封装性,还是小到命名. 好吧, ...
- 深入理解javascript原型和闭包(1)——一切都是对象
“一切都是对象”这句话的重点在于如何去理解“对象”这个概念. ——当然,也不是所有的都是对象,值类型就不是对象. 首先咱们还是先看看javascript中一个常用的函数——typeof().typeo ...
- java编程思想 一切都是对象
java是一种面向对象程序设计语言,一切都是对象,并且用引用操作对象,如一个电视机就是一个对象,而操作电视机的遥控器就是引用,引用可以单独存在,如遥控器可以单独存在. String s; 这里只是创建 ...
- 深入理解javascript原型和闭包(1)---一切都是对象
深入理解javascript原型和闭包(1)---一切都是对象 type函数输出的类型,在此列出: function show (x){ console.log(typeof(x));//undefi ...
- 深入理解js——一切都是对象
"一切皆对象" 当然也不是所有的都是对象,值类型(undefined,number,string,boolean)就不是对象:而函数.对象.数组.null.new Number(1 ...
- Java程序员的日常——《编程思想》一切都是对象
今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思.从第二章开始,真正的开始讲解Java相关的内容,有了一定的开发经验后,再次阅读起来,感觉收获良多 ...
- 【Thinking in Java-CHAPTER 1&&2】对象导论&&一切都是对象
JAVA起源 从JDK诞生到现在已经有11年的时间了.沧海桑田一瞬间.转眼11年过去了,JDK已经发布了6个版本.在这11年里诞生了无数和Java相关的技术和标准.现在让我们进入时间隧道,重新回到19 ...
随机推荐
- scanf 与 cin 的区别
在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41 ...
- Eclipse环境问题集合
1. XDoclet错误:Missing library: xdoclet-1.2.1.jar 从http://sourceforge.net/projects/xdoclet/files/xdocl ...
- poj 2965
http://poj.org/problem?id=2965 本题要结合poj 1753 来看最好...又有了一点搜索的经验..加油... #include <iostream> #inc ...
- IE6不支持<a>标签以外元素的hover的解决方案
IE6以及更低版本的浏览器对“:hover”的支持不理想,对于类似的“p:hover”.“img:hover”.“#header:hover”...,今天给大家介绍一种新的方法,可以完美解决IE6不支 ...
- 关于64位Windows7系统下INF的安装问题
原文 http://bbs.csdn.net/topics/360262492 我的电脑 ——>属性 ——>设备管理器 ——>操作 ——>添加过时硬件 但是,64位系统上报“指 ...
- Android dp和sp的用法汇总
1 > dp 是跟像素密度无关的单位,也就是说在相同尺寸.但不同的分辨率的手机上,用dp标识的东西,显示的大小是一样的. sp是用于标识字体的,它不仅跟屏幕尺寸有关,还跟设置的系统字体大小有关. ...
- CMake学习小结
假定有vegagis工程,工程的目录结构如下: #--vegagis# |--src 源文件目录# |--gui 界面工程,输出类型:dll,依赖于QT的QtCore.QtGui.QtXml ...
- 2-06. 数列求和(20)(ZJUPAT 数学)
题目链接:http://pat.zju.edu.cn/contests/ds/2-06 给定某数字A(1<=A<=9)以及非负整数N(0<=N<=100000).求数列之和S ...
- 最新Android ADT, SDK, SDK_tool等官方下载说明(及时更新)
1.Android SDK starter package SDK starter package http://dl.google.com/android/installer_r08-windows ...
- C与C++ 无参函数的区别
在<C++ 编程思想>:“关于无参函数声明,C与C++有很大的差别.在C语言中,声明int fun1(),意味着一个可以有任意数目和类型的函数:而在C++中,指的却是一个没有参数的函数”. ...