北理工《Java程序设计》课程教学资源索引(新增Android基础——课件全套更新完毕)

北理工《Java程序设计》课程教学资源索引


说明:

本资源为北京理工大学计算机学院2011年《Java技术及应用》课程的最新课件,主讲教师金旭亮,随课程的进行而同步发布,可以自由传播,但不得用于商业盈利目的。

本课程针对零Java编程基础的计算机专业学生,前提是学过C语言。

课程主要讲授J2SE,教学目的是带领学生迈入Java开发的大门,初步理解和把握面向对象的思想与理论,为进一步学习J2EE,或者Android开发扫清障碍。

所提供之示例均使用Eclipse Indigo,在JDK 1.6下调试通过。


                                                    金旭亮

                                               2011.9.13


=======================================================================

第一部分  Java开发基础


第一讲:Java导论与开发环境。包括两个PDF文档,主要介绍Java的基础知识、Java开发环境的搭建,以及Java开发工具的选择和使用,是Java学习的第一步。

1 Java导论与Java开发环境  2 Eclipse初步

第二讲 Java应用程序与Applet。包容一个pdf文档及相关示例源码。本讲主要介绍两种最基本的Java程序类型,并介绍Java编程的一些基础知识。

第三讲 Java语法基础。包容两个pdf文档及相关示例源码。

1 Java语法基础  2 程序控制结构

这一讲基本上介绍完了Java最基本的语法,学生已经可以使用Java编写简单的”结构化“程序。另外,为方便学习,资源包中还添加了从Oracle网站上下载的Java语言规范3.0(pdf版本)。

第四讲  数组。

与C不一样,Java中的数组是一个对象,并且拥有一些独特的性质(比如可以定义“不整齐”的多维数组,本质上是以“数组”为“元素类型”的一维数组),另外,数组在实际开发中用得很广泛,本讲介绍了数组排序与查找的示例,并布置了一个作业:将数字转换为”汉字表达“。此作业的参考答案在下次课程中给出。

第五讲 方法

本讲介绍Java编程中与”方法“相关的特性,其中的重点是”方法重载(overload)“的概念。另外,本讲还介绍了JDK中用于处理日期Calenda类的使用方法,同学们将会发现这个类拥有一些比较特殊的行为特性,这些特性可能有点违背“常识”。Calenda类的设计是好是坏,就由同学们自己感悟吧。

第六讲 字符串

Java中字符串是一个对象,它的最大特点是“只读”。同学们需要理解为什么Java要将字符串设置为只读的,字符串赋值的真正含义,如果的确需要一个能修改内容的字符串,应该选用哪个类。除此之外,还简要介绍了另几个与字符串处理相关的类。


到此为止,Java编程基础介绍完毕。后继的课程将系统介绍Java的面向对象特性,这些是重点内容,对同学们参与实际项目开发非常重要,必须扎实掌握。


第二部分  Java面向对象特性


第七讲  面向对象理论基础

本讲以一个小学数学题为例,讲解结构化方法与面向对象方法差异,并介绍了OOA、OOD和OOP的概念,对“愚公移山”这一传统故事从“软件开发”的视角进行重新解释,帮助同学们直观地了解面向对象软件的开发过程。

第八讲 创建与使用类

类和对象是面向对象编程的两个核心概念,本讲介绍了Java面向对象编程中至关重要的内容:类的“模板”,原始数据类型与对象类型变量的内存模式,类的静态成员,类初始化块,包装类,特别地,在本讲的最后介绍了JDK所提供的一个字节码反汇编器javap,向同学们展示了使用javap分析代码的基本技巧 。

第九讲 包

主要介绍如何使用包中的类,如何自定义包,下载的资源中除了本讲相关资料外,还包括第五讲布置的作业参考答案。

第十讲 继承、接口与多态

本讲介绍面向对象的核心特性,以一个“动物园”示例直观展示了多态应用于开发所带来的好处,并通过javap反汇编展示编译器是如何为多态代码生成字节码指令,而这些指令又是如何在运行时实现多态特性的。

第十一讲 内部类

本讲内容比较简单,主要是Java的内部类特性。内部类在实际开发中用得较多,关键点在于了解清楚内部类如何访问外部类中的成员。

第十二讲 异常处理

本讲介绍Java异常处理机制的基础知识,这部分内容比较重要,在实际开发中有广泛的应用。

第十三讲 对象组合与数据结构

本讲集中介绍Java面向对象编程的基本技巧,特别是如何使用Java实现常见的链表、队列、树等数据结构。用面向对象的思想编程实现各种数据结构,是每一名Java软件工程师所必须具备的基本技能

另外,本资源包中还包容了两个课程设计题目

1 设计一个支持多级括号及运算符优先级的“四则运算计算器”

2 设计一个能求解线性方程组的程序

通过完成这两个程序设计题目,能充分锻炼同学们的开发能力,促进对数据结构与算法的学习。有关数据结构与算法的问题经常会成为大公司的面试题。

第十四讲 对象集合

JDK中提供了数十个大大小小的对象集合类型,基本上能满足开发中的实际需求。但由于历史原因,JDK中的这些集合类在设计上存在着一些不合理的地方,包容了一些陷阱。本讲会涉及一些这方面的内容,同时展示如何通过阅读JDK源码理解Java集合类的特性,并帮助同学们“绕开”这些隐藏的陷阱。

第十五讲 泛型程序设计

依稀记得在Java刚出来没多久时,记者采访Java之父——James Gosling,他说Java不打算引入泛型,但形势比人强,当一种语言被广泛使用时,原先觉得并不重要的功能反而突显出来,Java最终还是引入了泛型。但由于最初并未考虑泛型,所以JVM基本上对泛型是“无视”的,这导致javac不得不将泛型代码“翻译”为传统的代码。本讲介绍了Java泛型编程的特点,其中有关编译器翻译泛型代码的“擦除”原理是重点,理解它是把握Java泛型编程特性的关键。

到此为止,有关Java面向对象基本特性介绍完毕,后面将介绍JDK中另外一些比较深入的技术领域。


第三部分 深入Java技术领域


第十六讲 Java GUI界面设计与事件处理

本讲包容4个PDF文档以及数十个代码示例,系统地介绍了Java AWT与Swing开发GUI应用程序的基础知识。虽然由于性能问题,直接使用Java开发桌面应用相当罕见,但本部分所涉及到的知识却相当有用,特别是AWT事件处理模型,在实际开发中有广泛的应用,需仔细理解并把握。另外,有关容器的概念,有关布局管理器的功用,都能自然地延伸到Android应用开发领域。

JDk中有关Java 2D API部分的内容并未介绍,JavaFX和SWT也仅是提了一下,需要用到它们的同学请自学。

第十七讲 文件与流操作

Java中存取文件内容是通过流对象实现的,而在J2EE开发中,很多技术都要应用流来传输与存储信息,因此掌握本讲的内容是进一步学习J2EE技术的前提。JDK中与流相关的类型有数十个,相当地繁杂,本讲选择了一些进行详细介绍,其余的只是提供一些实例供大家自行阅读。

第十八讲 序列化

序列化是一个很重要的技术,它的主要用途是把内存中的对象保存到一个流中。其他领域的技术有很多都应用了序列化,因此,它也是必须掌握的内容。


第十九讲 反射

本讲包容3个内容:1 反射技术基础 2 JavaBean 3 注解。这三个技术在许多Java框架中用得很多。默认情况下,本讲用到的组件Eclipse中都已默认安装,为了方便起见,在资源包中也提供了独立的组件包,可以在Eclipse中添加到项目的Build Path中。


第二十讲 Ant

Ant是Java平台上一个非常优秀的自动化构建工具,简单易用同时又功能强大。本讲介绍Ant的相关知识。为了便于学习,我从Apache网站上下载了Ant 1.8.2的组件包、文档与源码,一并加入到了教学资源包中。


第二十一讲 多线程

在多核时代,多线程是所有Java开发者必须掌握的技能。本讲介绍了Java多线程开发的基础知识,并从JDK中选取典型的常用的组件(比如各种锁和线程安全的数据结构)进行了介绍。我从互联网上搜集到了一些公司面试的真实Java多线程试题,将它们作为教学实例一并加入到了教学资源包中,相信会对同学们顺利通过技术面试有所帮助。

到此为止,本学期有关J2SE部分的基础教学内容讲授完毕。作为Java平台技术的自然延伸,下一讲将介绍Android平发平台的基础知识。


第二十二讲 Android开发技术基础

包容4个PDF文档及若干个示例项目,主要介绍Android开发环境的搭建、Android应用的开发过程及Android编程中的核心概念,其目的主要是帮助学生初步了解Android平台,为其顺利进行Android开发打开大门。


至此,《Java技术及应用》课程全部更新完毕,这套教学资源汇集了我所读过的多本Java技术书籍以及多个在互联网上公开发布的其他网友奉献的技术资源,难于一一列举,特在此对奉献这些免费优质技术资源的人表示感谢。我个人主要完成的工作是,对这些庞杂的技术资源进行了整理与重构,便于教师教学和学生自学,希望我所发布的这些资料能给Java教师提供更丰富的教学资源,也能帮助广大初学者更有效率地学习和掌握软件技术。


谢谢大家!


                                                                            金旭亮

                                                                          2011.11.1

你可能感兴趣的:(北理工《Java程序设计》课程教学资源索引(新增Android基础——课件全套更新完毕))