Java已经丢手一年了,很遗憾。今年想转Android,所以想把Java再捡起来,首先想到的就是这本TIJ了。话说当年还买过纸质第三版的,拿在手上真的有种砖头的感觉,呵呵。现在习惯了看电子版了,方便,而且公司和家里都能很好的同步阅读,做笔记也比较方便点。
进度——41/913。
第一章,对象导论。
看到现在,整理一下几个比较重要的知识点。
组合:使用现有类组合新类,聚合:动态发生的组合,通常视为has-a关系,比如汽车拥有引擎。
组合中新类的成员对象通常声明为private,可以有极大的灵活性。
要注意区分使用组合和继承的场合。
继承:当创建了一个类后,另一个类与其具有相似的功能,但又不完全相同,可以使用继承。继承需要注意的是,当父类改变时,子类也会跟着改变。继承用关键字extends。子类也不可以使用父类的private变量和方法。
继承最经典的例子:几何形是父类,圆形、长方形、三角形是子类。
替代原则:一个子类可以完全替代父类,称为is-a关系(纯粹替代)。子类添加了新的变量或者方法,称为is-like-a关系。判断是否继承关系,就是要确定是否可以用is-a来描述类之间的关系,并使之具有实际意义。
继承的重要体现:overload,overriding。
重载(Overload):每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。只能重载构造函数
规则:1.被重载的方法必须改变参数列表;2.被重载的方法可以改变返回类型;3.被重载的方法可以改变访问修饰符;4.被重载的方法可以声明新的或更广的检查异常;5.方法能够在同一个类中或者在一个子类中被重载。
重写(Override):(注意::覆盖是子类对父类的接口abstract方法进行重新定义)能够在需要新的子类特有行为时重新在子类中定义方法。
规则:1.参数列表必须完全与被重写方法的相同;2.返回类型必须完全与被重写方法的返回类型相同;3.访问级别的限制性一定不能比被重写方法的强;4.访问级别的限制性可以比被重写方法的弱;5.重写方法一定不能抛出新的检查异常或比被重写的方法声明的检查异常更广泛的检查异常。6.重写的方法能够抛出更少或更有限的异常(也就是说,被重写的方法声明了异常,但重写的方法可以什么也不声明)。7.不能重写被标示为final的方法;8.如果不能继承一个方法,则不能重写这个方法。
区别:
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更高的限制(可以降低限制)
调用:
重载方法:
参数类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍是发生在运行时期的虚拟方法调用。但是编译器已经知道所调用的方法的签名。因此,在运行时期,参数匹配已经明确,只是还不知道该方法所在的实际类。
重写方法:
对象类型(即:堆上实际实例的类型决定调用选择哪个方法,这发生在运行时期)
进度——41/913。
第一章,对象导论。
看到现在,整理一下几个比较重要的知识点。
组合:使用现有类组合新类,聚合:动态发生的组合,通常视为has-a关系,比如汽车拥有引擎。
组合中新类的成员对象通常声明为private,可以有极大的灵活性。
要注意区分使用组合和继承的场合。
继承:当创建了一个类后,另一个类与其具有相似的功能,但又不完全相同,可以使用继承。继承需要注意的是,当父类改变时,子类也会跟着改变。继承用关键字extends。子类也不可以使用父类的private变量和方法。
继承最经典的例子:几何形是父类,圆形、长方形、三角形是子类。
替代原则:一个子类可以完全替代父类,称为is-a关系(纯粹替代)。子类添加了新的变量或者方法,称为is-like-a关系。判断是否继承关系,就是要确定是否可以用is-a来描述类之间的关系,并使之具有实际意义。
继承的重要体现:overload,overriding。
重载(Overload):每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。只能重载构造函数
规则:1.被重载的方法必须改变参数列表;2.被重载的方法可以改变返回类型;3.被重载的方法可以改变访问修饰符;4.被重载的方法可以声明新的或更广的检查异常;5.方法能够在同一个类中或者在一个子类中被重载。
重写(Override):(注意::覆盖是子类对父类的接口abstract方法进行重新定义)能够在需要新的子类特有行为时重新在子类中定义方法。
规则:1.参数列表必须完全与被重写方法的相同;2.返回类型必须完全与被重写方法的返回类型相同;3.访问级别的限制性一定不能比被重写方法的强;4.访问级别的限制性可以比被重写方法的弱;5.重写方法一定不能抛出新的检查异常或比被重写的方法声明的检查异常更广泛的检查异常。6.重写的方法能够抛出更少或更有限的异常(也就是说,被重写的方法声明了异常,但重写的方法可以什么也不声明)。7.不能重写被标示为final的方法;8.如果不能继承一个方法,则不能重写这个方法。
区别:
区别点 重载方法 重写方法
参数列表 必须修改 一定不能修改
返回类型 可以修改 一定不能修改
异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
访问 可以修改 一定不能做更高的限制(可以降低限制)
调用:
重载方法:
参数类型决定选择哪个重载版本(根据声明的参数类型),这发生在编译时。被调用的实际方法仍是发生在运行时期的虚拟方法调用。但是编译器已经知道所调用的方法的签名。因此,在运行时期,参数匹配已经明确,只是还不知道该方法所在的实际类。
重写方法:
对象类型(即:堆上实际实例的类型决定调用选择哪个方法,这发生在运行时期)
发表评论
-
Java编程思想第四版——第二十一天
2012-05-04 12:56 5452012-05-04 163-170/913 Java编 ... -
Java编程思想第四版——第二十天
2012-05-03 13:45 6542012-05-03 158-163/913 Java编程思 ... -
Java编程思想第四版——第十九天
2012-05-02 11:08 7782012-05-02 149-158/913 Java编程思 ... -
Java编程思想第四版——第十八天
2012-04-27 13:12 9662012-04-27 142-149/913 Java编 ... -
Java编程思想第四版——第十七天
2012-04-25 11:18 7142012-04-25 138-142/913 Java编程思 ... -
Java编程思想第四版——第十六天
2012-04-24 13:50 7142012-04-24 131-138/913 Java编 ... -
Java编程思想第四版——第十五天
2012-04-23 17:14 7202012-04-23 121-131/913 Java编程思 ... -
Java编程思想第四版——第十四天
2012-04-19 11:28 5942012-04-19 118-121/913 Java编程思 ... -
Java编程思想第四版——第十三天
2012-04-18 12:08 6402012-04-18 108-118/913 Java编 ... -
Java编程思想第四版——第十二天
2012-04-09 10:58 6952012-04-09 102-108/913 Java编 ... -
Java编程思想第四版——第十一天
2012-04-05 12:21 7832012-04-05 Java编程思想第四版——第十一天 ... -
Java编程思想第四版——第十天
2012-03-31 12:03 5302012-03-31 97-102/913 Java编程思想 ... -
Java编程思想第四版——第九天
2012-03-30 14:59 5982012-03-30 80-97/913 Java编程思想第 ... -
Java编程思想第四版——第八天
2012-03-29 12:09 4552012-03-29 76-80/913 3.6 自动递增和 ... -
Java编程思想第四版——第七天
2012-03-28 12:24 6312012-03-28 70-76/913 昨天找 ... -
Java编程思想第四版——第六天
2012-03-27 13:02 5002012-03-27 66-70/913 最近两 ... -
Java编程思想第四版——第五天
2012-03-23 15:09 9182012-03-23 60-66/913 2.5 方法、参数 ... -
Java编程思想第四版——第四天
2012-03-22 12:41 5582012-03-22 54-60/913 第二章 ... -
Java编程思想第四版——第三天
2012-03-21 12:40 5402012-03-21 47-54/913 1.12 并 ... -
Java编程思想第四版——第二天
2012-03-20 13:54 711今天本来以为进度可以 ...
相关推荐
Java编程思想(第4版)读书笔记by CZFJava编程思想(第4版)读书笔记by CZFJava编程思想(第4版)读书笔记by CZF
基于java编程思想(Thinking in java, TIJ)的教学课件,教学设计请见http://blog.csdn.net/Florianjin
我制作的java编程思想的教学课件,紧跟着“java编程思想教学材料——开端”
很有名的一本书—————Java编程思想【第4版】习题答案
实训项目八:JAVA网络编程(csdn)————程序
买这本书的人一定会想办法弄到书中源代码和课后习题答案,网上关于第四版的还真不多,所以就拿出来共享一下。 其实我也是从别人那里下载下来的,那个课后习题答案我还没有验证是不是正确,不过源代码是没有问题的。...
基于java编程思想(Thinking in java, TIJ)的教学PPT,教学设计请见http://blog.csdn.net/Florianjin
Java之SSH深入浅出——精简剖析
java8函数式编程(csdn)————程序
Java 基本语法(四)——字串和数组 Java 基本语法(四)——字串和数组
java 面向对象编程(csdn)————程序
非常全面的java教程,包含了java的基础技术,还有数据库,网络,GUI方面的知识,非常好的一个教程
计算机软件开发的Java编程语言及应用——评《Java编程方法论》.pdf
做坦克游戏,学Java编程(四)——添加炮弹类.pdf
Java开发的第一步——安装JDK
——————————————————————————————————————————————
《Java 工程师的编程逻辑》——用 java 看计算机世界。