学习完前 3 节后是否感觉似乎学会了一些东西,但是又感觉脑袋里充满了浆糊?
这一节我们来整理一下思路, 算是前一阶段的小结, 为开启新的征程做好准备.
一下吃太多了,消化不良了, 呵呵~
两个办法可以让自己好受点:
(1) 暂时停下脚步,再看一遍前 3 节,自己做一下小结,一个字…… 悟!
(2) 实践,自己做几个小例子,实践一下前面讲过的内容
BUT! 多年的实践证明,说了也等于白说,能停下来悟道的人不多……
所以,作为一个好人,下面我还是带你站高一点,宏观地看看目前学过的这些东西,也许会有帮助。
OK, 走起~
事实上,那些让人晕头转向的语法规定一直致力于通过引入一些机制, 让程序员少干点活, 并引导程序员保持相对清晰的头脑, 干活更有条理.
相对术语化地说, 即是:
尽可能地实现”代码重用“, 而又不失灵活性.
提供一些”开/闭机制“, 让程序员得以在“封闭”与“开放”之间寻找一个最佳的平衡.
- 更高层次来说, 便于实现更加稳固且便于扩展的程序架构.
我们来回顾一下前两节学过的一些东西……
“类” 和 “对象” 概念的提出实现了数据和功能封装,将其聚合为一个相对独立的单元,而“继承”机制的引入最直接地实现了代码重用. 并且, 在继承过程中父类为子类指明了发展的方向.
“重载”实现了一个类内部的”变异”, 而“覆盖” 则体现了继承过程中子类代对父代的”革新”, 这些都为程序员提供了扩展的途径.
虽然, 封闭的”最高境界”是封得密不透风, 但若真如此就没有意义了. 因此, public
, protected
, private
修饰符在不同的范围内提供了开放的可能性, 并把控制权交给了程序员, 即: 可控的开/闭.
static
修饰符的引入在一个方面实现了对象之间的数据共享. 同时将数据和功能从对象层面提到了类层面, 或者说把数据和功能从相对 “动态” 的对象中提到相对 “静态” 的类中.
final
修饰符又封堵了变化可能性, 给程序员一机会做到适时地封闭.
最后, 为那些之前只接触这 C 语言这类”面向过程”的程序设计语言的同学洗个脑……
在使用C这样面向过程的程序设计语言编程时, 我们的工作大致可以分2步:
(1) 功能封装: 定义实现各种功能的函数(过程);
(2) 通过函数间的相互调用, 让程序运行起来……
而使用 Java 这样的面向对象的程序设计语言编程时, 我们首先站在对象的视角去定义类
然后…… 在运行时, 让类实例化成对象, 然后…… 调用对象的方法 ( 函数 ) 以完成所需的工作, 然后…… 然后就没有然后了……
对照之前的实例, 想想是不是这个过程:
首先把自己当做一头猪 ( 小花 (对象) ), 思考做为一头猪应该有些什么数据和功能, 然后定义猪类, 然后……通过 new Pig()
把猪类变成小花 ( 具体的对象 ), 然后…… 调用小花的 eat() 方法让它吃东西, 然后…… 就没有然后了……
最后的最后做个节目预告, 下一节我们将学习 “接口” 和 “抽象类”, 本节就先到这里, 给一点消化的时间……
后面的教程中我们还要继续延伸这个”猪”的例子, 为了保证你的代码与我的例子没太大出入, 现将到目前为止的代码附上……
文件结构:
Pig.java
1 | package com.bailey.study.animal; |
SmallPig.java
1 | package com.bailey.study.animal; |
HelloJava.java
1 | package com.bailey.study.test; |
Revised on 2019/05/11 04:29:43 by Bailey
-
Next PostJava入门精要 (五)
-
Previous PostJava入门精要 (三)