[已注销]对《Head First Java(第二版·中文版)》的笔记(1)

Head First Java(第二版·中文版)
  • 书名: Head First Java(第二版·中文版)
  • 作者: Kathy Sierra,Bert Bates 著/杨尊一 编译 张然等 改编
  • 页数: 600
  • 出版社: 中国电力出版社
  • 出版年: 2007-2
  • 第231页
    遥控器是大概我见过对“引用(reference)”最有爱的比喻了。
    下面这句语句包含了三个动作:
    Dog dog = new Dog();
    
    1.new Dog()在托管堆上创造一个Dog对象的实例,但此时它是游离在程序外的,因为没有任何东西可以引用到它。
    2.Dog dog声明了一个Dog类型的引用。
    3.“=”将引用和对象勾连起来,这样下面的程序就可以拿着dog这个遥控器,对堆上的实例进行远程控制了,如果想让狗叫的话,只要按Bark按钮就可以了(dog.bark())。
    同时,Object dog = new Dog()也是没错的,相当于换了一个遥控器,但因为Dog继承自Object时扩充了很多功能,因此Object类型的遥控器可以遥控的功能自然比Dog类型的遥控器西少很多。
    这时使用dog.Bark()编译器就会报错!因为编译器做静态检查的时候只认得你之前的声明,而不会管你实际操控的对象是什么,这也是java和动态语言之间最大的区别。
    动态语言没有引用的概念,而是通过一个变量动态绑定一个对象。
    p.s. 在c语言中遥控器就是指针,只是这个遥控器更为灵活,除了可以访问遥控器指向的那个数据,还可以改变遥控器本身,来修改其它遥控器所对应的数据区域。
    2011-07-24 16:09:28 1人喜欢 回应

[已注销]的其他笔记  · · · · · ·  ( 全部295条 )

The Design of Everyday Things
1
About Face 3
6
Engineering a Compiler
1
人有人的用处
8
Understanding the Linux Kernel
4
计算机程序设计艺术
1
公正
1
The Art of Doing Science and Engineering: Learning to Learn
1
科学革命的结构
7
罗素论教育
3
三十六大
1
娱乐至死
3
Real World Haskell
2
Writing Analytically
1
Is Parallel Programming Hard, And, If So, What Can You Do About It?
1
计算机与人脑
1
组合数学
2
菊与刀
1
Rework
5
翻译新究
4
计算机程序的构造和解释(原书第2版)
5
The Laws of Simplicity
4
计算机组成与设计硬件/软件接口
6
写给无神论者
2
放任自流的时光
3
哥德尔、艾舍尔、巴赫
2
树上的男爵
2
C++语言的设计与演化
1
Land of LISP
7
C陷阱与缺陷
2
CUDA by Example
3
C++沉思录
1
世界尽头与冷酷仙境
4
Head First C
2
刀锋
1
并行编程模式
2
The Ph.D. Grind
2
计算机系统结构
2
禅与摩托车维修艺术
14
流浪的面包树
2
翻译研究
18
An Introduction to Programming in Emacs Lisp
1
GNU Emacs Lisp 编程入门
1
计算机系统概论
1
编码
3
拖延心理学
1
古今数学思想(一)
1
挪威的森林
9
奇特的一生
7
GPU高性能运算之CUDA
5
那些年,我们一起追的女孩
8
十八岁给我一个姑娘
2
C++编程思想(第1卷)
9
多核计算与程序设计
8
少有人走的路
5
忧伤的情欲
3
Hackers & Painters
7
哲学的慰藉
9
男人来自火星 女人来自金星
8
旅行的艺术
14
活着活着就老了
1
如何阅读一本书
7
Data-intensive Text Processing With Mapreduce
1
学习GNU Emacs
1
给研究生的学术建议
3
C专家编程
2
Spring揭秘
2
自私的基因
1
C程序设计语言
2
计算机网络
3
自由在高处
2
大话设计模式
16
计算机网络
12