2006-10-24
scjp学习笔记之对象基础
关键字: scjp 学习笔记 对象基础
前几天复习了java的一些基本概念和容易出错的细节,今天开始复习一下“对象基础”。
1、OOP语言有三个特征:封装、多态性及继承。
2、在许多程序语言中,一旦一个集合数据类型已经定义,程序员定义应用函数在该类型的变量上运行,该变量在代码和集合类型(除非可能在命名规则中)之间无任何联系。
有些程序语言,包括Java,允许在数据类型的声明和操作该类型变量的代码的声明之间有紧密的联系。这种联系通常被称为抽象数据类型。
Java编程语言中的抽象数据类型概念被认为是class。
3、值传递
Java编程语言只由值传递参数,当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
4、重载方法名称
它可如下所示使用:
public void println(int i)
public void println(float f)
public void println()
参数表必须不同,返回类型可以不同。
5、对于this的任何调用,如果出现,在任何构造函数中必须是第一个语句。
6、如果增加一个带参数的构造函数声明到一个类中,该类以前没有显式构造函数,那么将失去该缺省构造函数。基于这一点,对new Xxx()的调用将会引起编译错误。认识到这一点很重要。
7、每个类都是Object的一个子类,因此,可以用Object数组作为任何对象的容器。唯一不能被增加到Object数组中的唯一的东西就是基本变量(以及包装类,请注意这一点)。比Object数组更好的是向量类,它是设计来贮存异类收集对象的。
8、单继承性
当一个类从一个唯一的类继承时,被称做单继承性。单继承性使代码更可靠。界面提供多继承性的好处,而且没有(多继承的)缺点。java语言是单继承的。
9、构造函数不能被继承
子类从超类(父类)继承所有方法和变量,子类不从超类继承构造函数
包含构造函数的两个办法是
使用缺省构造函数
写一个或多个显式构造函数
10、多态性
有能力拥有有许多不同的格式,就叫做多态性。
一个对象只有一个格式。
一个变量有许多格式,它能指向不同格式的对象。所以变量是多态性的。
11、Object类定义许多有用的方法,包括toString(),它就是为什么Java软件中每样东西都能转换成字符串表示法的原因。(即使这仅具有有限的用途)。
12、多态性是个运行时问题,与重载相反,重载是一个编译时问题。
13、关键字super
super被用在类中引用其超类。
super被用来调用超类的成员变量。
超类行为就被调用,就好象对象是超类的组件。
调用行为不必发生在超类中,它能自动向上层类追溯。
14、Instanceof 运算符
假如能使用引用将对象传递到它们的父类中,那么有时你想知道实际有什么,这就是instanceof运算符的目的。使用instanceof来测试一个对象的类型。
15、对象的类型转换
使用instanceof来测试一个对象的类型。
用类型转换来恢复一个对象的全部功能。
用下述提示来检查类型转换的正确性:
向上的类型转换是隐含地实现的。
向下的类型转换必须针对子类并由编译器检查。
当运行时错误发生时,运行时检查引用类型。
16、覆盖方法
子类可以修改从父类继承来的行为
子类能创建一个与父类方法有不同功能的方法,但具有相同的
名称
返回类型
参数表
17、调用覆盖方法
覆盖方法的规则
必须有一个与它所覆盖的方法相同的返回类型
不能比它所覆盖的方法访问性差
不能比它所覆盖的方法抛出更多的异常。
18、调用父类构造函数
对象的初始化是非常结构化的。
当一个对象被初始化时,下述行为按顺序发生:
存储空间被分配并初始化到0值
层次中的每个类都进行显式初始化
层次中的每个类都调用构造函数
因此,Java编程语言总是在执行子构造函数前调用父类构造函数的版本。
1、OOP语言有三个特征:封装、多态性及继承。
2、在许多程序语言中,一旦一个集合数据类型已经定义,程序员定义应用函数在该类型的变量上运行,该变量在代码和集合类型(除非可能在命名规则中)之间无任何联系。
有些程序语言,包括Java,允许在数据类型的声明和操作该类型变量的代码的声明之间有紧密的联系。这种联系通常被称为抽象数据类型。
Java编程语言中的抽象数据类型概念被认为是class。
3、值传递
Java编程语言只由值传递参数,当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
4、重载方法名称
它可如下所示使用:
public void println(int i)
public void println(float f)
public void println()
参数表必须不同,返回类型可以不同。
5、对于this的任何调用,如果出现,在任何构造函数中必须是第一个语句。
6、如果增加一个带参数的构造函数声明到一个类中,该类以前没有显式构造函数,那么将失去该缺省构造函数。基于这一点,对new Xxx()的调用将会引起编译错误。认识到这一点很重要。
7、每个类都是Object的一个子类,因此,可以用Object数组作为任何对象的容器。唯一不能被增加到Object数组中的唯一的东西就是基本变量(以及包装类,请注意这一点)。比Object数组更好的是向量类,它是设计来贮存异类收集对象的。
8、单继承性
当一个类从一个唯一的类继承时,被称做单继承性。单继承性使代码更可靠。界面提供多继承性的好处,而且没有(多继承的)缺点。java语言是单继承的。
9、构造函数不能被继承
子类从超类(父类)继承所有方法和变量,子类不从超类继承构造函数
包含构造函数的两个办法是
使用缺省构造函数
写一个或多个显式构造函数
10、多态性
有能力拥有有许多不同的格式,就叫做多态性。
一个对象只有一个格式。
一个变量有许多格式,它能指向不同格式的对象。所以变量是多态性的。
11、Object类定义许多有用的方法,包括toString(),它就是为什么Java软件中每样东西都能转换成字符串表示法的原因。(即使这仅具有有限的用途)。
12、多态性是个运行时问题,与重载相反,重载是一个编译时问题。
13、关键字super
super被用在类中引用其超类。
super被用来调用超类的成员变量。
超类行为就被调用,就好象对象是超类的组件。
调用行为不必发生在超类中,它能自动向上层类追溯。
14、Instanceof 运算符
假如能使用引用将对象传递到它们的父类中,那么有时你想知道实际有什么,这就是instanceof运算符的目的。使用instanceof来测试一个对象的类型。
15、对象的类型转换
使用instanceof来测试一个对象的类型。
用类型转换来恢复一个对象的全部功能。
用下述提示来检查类型转换的正确性:
向上的类型转换是隐含地实现的。
向下的类型转换必须针对子类并由编译器检查。
当运行时错误发生时,运行时检查引用类型。
16、覆盖方法
子类可以修改从父类继承来的行为
子类能创建一个与父类方法有不同功能的方法,但具有相同的
名称
返回类型
参数表
17、调用覆盖方法
覆盖方法的规则
必须有一个与它所覆盖的方法相同的返回类型
不能比它所覆盖的方法访问性差
不能比它所覆盖的方法抛出更多的异常。
18、调用父类构造函数
对象的初始化是非常结构化的。
当一个对象被初始化时,下述行为按顺序发生:
存储空间被分配并初始化到0值
层次中的每个类都进行显式初始化
层次中的每个类都调用构造函数
因此,Java编程语言总是在执行子构造函数前调用父类构造函数的版本。
发表评论
- 浏览: 28857 次
- 性别:

- 来自: 珠海

- 详细资料
搜索本博客
我的相册
codeGen
共 1 张
共 1 张
链接
最新评论
-
基于Ant+Velocity的简单代 ...
楼主的思想不错。建议多看看 RATIONAL ROSE 等根据设计而生成代码的工 ...
-- by sg552 -
基于Ant+Velocity的简单代 ...
可以用freemaker来做
-- by davexin -
基于Ant+Velocity的简单代 ...
呵呵,个人感觉不如使用类继承来解决代码重复,基类使用类名来进行规则处理。代码生成 ...
-- by cherami -
[Hibernae+Spring]压力测 ...
50个用户同时并发 ------------------ 请教楼主用什么测试软件 ...
-- by denghan -
[Hibernae+Spring]压力测 ...
Readonly 写道string类型PK改到数字类型PK只能减少page lo ...
-- by lzzzl






评论排行榜