Thinking in Java学习笔记1(英文第二版) :: 草色天涯

来源: BlogBus 原始链接: http://dear.blogbus.com:80/logs/2004/03/109790.html 存档链接: https://web.archive.org/web/20060214162139id_/http://dear.blogbus.com:80/logs/2004/03/109790.html


草色天涯 逝者已逝,众恶徒已正法,然天下居庙堂者与处江湖者,当以此为鉴,牢记生命之重,人权之重,民主之重,法治之重,无使天下善良百姓,徒为鱼肉。

——孙志刚墓志铭 << 段誉到底会不会娶木婉清? | 首页 | Thinking in Java学习笔记2(英文第二版) >> Thinking in Java学习笔记1(英文第二版) 时间:2004-03-04 一、继承( P38) 1. A base type contains all of the characteristics and behaviors that are shared among the types derived from it. 2. 基本原则—— 子类必须可以替代父类对象,不能添加父类没有的附加约束。 3. 创建子类有两种方法: 第一种 ,是向子类中添加新的功能; 第二种 ,也是更重要的一种,是重写父类的方法。( 注意期末考试的错误,声明为父类的对象不能调用子类的新方法 !如果要访问的话,必须要先向下转型,如果类型正确,操作就会成功,如果类型不正确,就会产生异常: ClassCastException。[参见P343] ) 二、数据的存储空间( P103) 1. 对象的引用存放在堆栈中,但是对象本身并不是存放在其中。 2. Java中所有的对象都存放在堆中,创建对象所需的内存从堆中分配。 3. 基本类型的变量是存放在堆栈中的。除了八种简单类型以外,其他指向对象的变量都是引用变量。 三、方法( P112) 1. Java与C++的区别:方法必须在类中创建,只能由类来调用。 2. 静态方法可以通过类来调用,不需要创建一个对象的实例——对于普通的非静态数据和方法而言,必须创建一个对象,然后通过这个对象来访问这些数据或者方法。 静态方法不能直接调用非静态的数据成员或方法。 3. Java只支持参数按值传递,即不能通过方法调用来改变参数的值。 Java在传对象的时候,实际上传递的是对象的引用。 当对象作为参数传递的时候,传递的是对象的地址值,在方法里只能改变对象的内容(属性变量),不能改变对象的引用。 四、赋值( P134) 1. 当在两个对象之间赋值的时候,实际上是在拷贝对象的引用。也就是说两个对象都指向同一个内存地址。对一个对象的修改会引起另外一个对象的变化。这种现象也叫做别名( alias ) 五、关系运算符( P142) 1. = = 和!

运算符比较的是对象的引用,而不是对象的内容。 要比较对象的内容,需要使用 equals方法。但是equals方法默认也是比较对象的引用,只不过是java中自带的类大多都重写了这个方法而已。 dearwolf 发表于 2004-03-04 01:26 引用Trackback(1) | 编辑 评论 发表评论 最后更新