北理工《Java程序设计》

课程教学资源索引(2013版,含《Android开发基础》)

说明:

“Java程序设计”是北京理工大学计算机学院开设的选修课程,主讲教师是金旭亮。

本教学资源主要包括上课所使用之PPT(己转为PDF格式)和范例源码,以RAR格式打包上传至CSDN下载频道请点击每讲标题下载)。

2013版的课件是我经重新调整并设计的,大大增强了编程技能训练的内容,同时在内容安排上更加注重循序渐进。

这些课件在设计时力图同时支持课堂教学及课后学生自学,基本模式是:我在课堂上只讲授重点内容,并现场展示编程开发的过程和技术关键点,以及与之相关的计算机理论知识和内部运作机理,学生在课后应该完成以下几件事:

(1)运行并仔细阅读每个示例,通过修改示例代码扎实掌握Java面向对象编程的语法与相关知识。

(2)完成课件中所布置的作业(非常重要!),这些作业都经过了仔细的设计与安排,完成它们是培养Java编程基本技能所必需。除非你打算随意地在计算机专业混个毕业拉倒,否则,请一定要动手完成这些编程练习。遇到困难,一是找同学讨论交流,二是使用搜索引擎,最后一招,找老师。

本课件适用对象:学过C语言,对编程有兴趣,打算日后从事软件开发工作,不要求有面向对象编程经验。

由于这些课件还在不断地完善过程中,因此会随着课程的进展而陆续发布。想迅速学习JavaSE技术的同学,可以参看我2011年发布的老版课件,新版课件是在老版课件的基础上扩展、修改和完善而来的,80%的内容一致。

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

本课件所有代码基于JDK7,在Eclipse 4.X和Netbeans 7.X中测试通过

第1部分 Java编程起步

Note:本部分内容极为基础,主要是介绍Java结构化编程的相关语法,涉及到一点面向对象知识,有C语言基础的同学会学得很多。

对于编程基础不扎实的同学,请认真地完成本部份中所有的编程练习。

这部分上课是一带而过,只讲其中的一些要点,完整内容同学们需自学。

第1讲  Java导论与Java开发环境

包括两个PPT:

(1)Java导论与Java开发环境:介绍Java开发的基础知识,学会安装相应的软件并正确地配置好它们。

(2)Eclipse初步:学会使用Eclipse编写Java应用程序。

第2讲 Java应用程序与Applet

包括两个PPT:

(1)Java Application基础:这是最简单的Java程序类型,本课程大部分实例是此类型,用它来学习Java非常合适。

(2)Java Applet基础:Java Applet是运行在浏览器环境中的Java应用程序,不过此技术在实际中很少用,此讲同学们只需浏览一下,只要知道Applet是怎么回事,如何运行它就够了。

第3讲 Java语法基础

包括两个PPT:

(1)Java语法基础,介绍数据类型、变量、运算符等基础知识,注意与C的区别。

(2)控制结构:Java分支与循环语法。

第4讲 方法

这一讲的重点是Java方法重载的语法特性,以乃训练递归的编程技巧。另外,本讲还介绍了Java中日期相关的类型、如何处理大数字以及浮点数比较等内容。本讲包容不少的编程练习,主要目的是训练最基本的编程技能。

第2部分 Java面向对象编程基础

本部分主要介绍Java实现面向对象编程(OOP)的基本方法,其中所介绍的OOP思想其实是独立于Java语言的,是现代软件工程师的基本功。需要下功夫扎实掌握,打好OOP基础非常关键,不然,在Java技术领域将行之不远。

第5讲 类和对象

本讲主要介绍如何在Java中设计一个类的基础知识,包括类的初始化方法,“==”的含义,this的用法,装箱与拆箱等,其中,理解对象变量的含义是关键。本讲还介绍了javap反汇编.class文件的基本方法。

本讲属于Java面向对象编程最为基础的内容,必须牢固掌握。

第6讲 包

包类似于C++的namespace,主要用于解决同名冲突和实现代码重用,这部分的关键是要掌握如何定义包,如何使用包,包与文件系统的路径有何关系,请务必在命令行程序中实验成功如何运行放在包中的某个Java类中的main()方法。另外,本讲还介绍了Jar包的用途和制作方法。

Java的可复用组件多以Jar包的形式提供,因此,把握本节内容,对于实际开发很重要。

第7讲 字符串与正则表达式

本讲包括两部份内容:

(1)字符串。在开发中,String算是最常用的数据类型了,它的最重要特点是String对象内容只读,另外,施加于两个String对象的“==”和"equas()",其含义是不同的。在比较大的循环中应该避免进行过多的字符串拼接操作,的确需要时,可以考虑使用StringBuffer或StringBuilder类取代。这些是String部分应该掌握的重点内容。

(2)正则表达式。本讲PPT只是介绍了正则表达式的基础知识,有专门介绍正则表达式的技术书籍,感兴趣的同学们可以在课外进一步地深入学习。强调一下,正则表达式在开发中非常有用,同学们必须具备基本的编写正则表达式的能力

第8讲 数组

本讲的重点是理解对象数组,特别要注意在课上介绍过的它的内存分配模型。

第9讲 继承、接口与多态

这一讲是经典的面向对象编程内容,包容相当多的且非常重要而基础的知识与技能,难点也不少:

(1)重点注意子类父类字段与方法同名时出现的种种现象,并能解释其原因。

(2)不可变的类有什么好处?思索:为何String类要设计成只读的?

(3)理解多态这一概念,并体会多态给开发所带来的正面与负面影响。

请注意教师在课堂上现场编程演示和分析的那些代码示例。

第10讲 异常处理

本讲介绍了Java异常处理的基础知识。初学者往往对异常处理重视不够,事实上,在开发中带来麻烦的往往就是未经处理的各种异常,另外,用户往往也会因为你的程序中有未捕获的异常而对程序产生不满甚至立即卸载它。要想开发出健壮的应用,就必须认真掌握这部份知识。本讲中介绍了“捕获JDK异常转换为业务逻辑异常”的异常处理策略,这在多层应用中很有用,需要特别注意一下。

第11讲 泛型程序设计

Java最初在设计时是没有考虑要支持泛型的,只是后来随着Java应用越来越广,开发者有这个需求,才加入了泛型特性,但由于JVM不好改,所以javac编译器对泛型代码采用了“擦除”的方式进行编译,这是Java泛型技术的重要特点。本讲介绍了Java泛型编程语法特性,JDK中广泛使用了泛型,泛型知识对掌握Java技术很重要。

第12讲 内部类

本讲介绍Java内部类语法,学习时注意其应用场景。

第13讲《面向对象编程基本技能》

这部分重点介绍了Java编程实现对象比较、对象组合和对象复制的基本方式,是面向对象编程必须掌握的基础知识。

第14讲 数据结构与算法的Java实现

数据结构与算法对于开发而言属“内功”,很重要,也是许多公司面试题的重要内容。计算机专业学生都学过《数据结构》,因此本讲的重点在于如何用Java实现它们,并给出不少编程练习,许多练习进一步扩充就可以作为本课程大作业的内容。动手完成本讲所布置的编程作业,有助于培养同学们基本的Java面向对象编程技能。

第15讲 对象集合

JDK中包容数十种各种类型的对象集合,还有一堆的各种接口,给人的感觉相当混乱。在实际开发中,一定要花点时间依据具体应用场景选择合适的对象集合,并且要注意避开这些对象集合中隐藏的一些陷阱,因此,在使用它们之间进行充分的测试是有必要的,确保你真正地把握了要用的这些集合的特性。本讲内容较多,对JDK中最主要的一些集合类型进行了介绍,并提供了数十个实例展示它们的用法。本讲最后还给出了一些编程题目,同学们应动手完成它们。

第3部分 深入探索Java技术领域

在本部分中,将集中探讨一些JDK中的特定技术领域。这些技术领域在实际开发中被频繁地应用。

第16讲  文件与流

文件可用于存储应用程序数据,而流则是Java读取文件的基本方式。本讲介绍了JDK中与文件相关的类和组件的用法,包容大量实例,许多能直接应用于开发中。

第17讲 序列化

序列化技术主要用于两个场景:(1)将对象当前状态保存到文件等持久介质中(2)在网络中远程传输对象到另一台机器上。在实际开发中,把对象进行序列化是非常常见的。本PPT主要介绍了Java中如何把对象以二进制形式序列化到文件中的方法,仅仅只涉及Java序列化技术领域的一部分。

第18讲 反射

所谓反射,就是在程序运行时通过动态查询Java组件的类型信息,完成对象创建、方法调用等功能。反射为设计开发支持插件的软件系统所必需。有大量的Java框架使用了反射技术。本讲分为三部分:

(1)反射:介绍Java反射的基础知识

(2)JavaBean:JavaBean其实可以看成是一种“遵循标准”而实现的类,Java平台为访问它们提供了额外的支持,JavaBean在Java EE中应用得比较多。

(3)注解:Java中的“注解(annotation)”指一些附加在代码之上的,以“@”打头的“小标签”,比如“@Override”,通过使用它们,能够在不更改类源代码的前提下,给类附加特定的功能或信息。各种Java框架和技术,比如JUnit之类,都大量地应用了它们。

第19讲 GUI界面设计与事件处理

本讲包容相当丰富的内容,共分为5个子部分:

(1) Java GUI设计基础:介绍了Java GUI设计中的一些基础知识和术语,本部分需重点注意“GUI程序设计的基本步骤”,理解“容器”、“控件”、“布局管理器”、“事件”几个重要概念。

(2) 使用GUI控件:包容大量的例子,介绍各个具体控件的使用方法。

(3) 容器布局管理器:介绍Swing界面设计中常用的几种布局管理器的用法,包容相应实例。

(4) Java事件处理模型:此部分极为重要,是Java GUI界面设计技术的核心所在,其所介绍的内容许多都可以用在Android上,此部分还包容大量的实例,可供同学们进行课程设计时参考。请同学们务必扎实掌握本部分内容。

(5)Java GUI编程技能训练:提供了一些编程场景,完成这些编程任务,能让你的Java开发能力提升一截。

第20讲 Java图形程序设计

本讲介绍JDK中所包容的2D绘图功能,包括各种绘图对象及绘图方法的介绍,还介绍了分形。本讲设计了丰富的编程练习。

第21讲 多线程

在多核CPU大行于世的时代,多线程编程是每一个软件开发者的必备技能。经过多年的持续完善,JDK中包容了丰富的多线程组件,能满足绝大多数开发需求。本讲分为三部分,每部分都包容着重要的内容:

(1)多线程技术基础:介绍了进程、线程的基础知识,如何编写多线程代码,如何控制线程的执行过程,线程组,Thread Executor Framework以及GUI程序中的多线程等重要内容。

(2)线程同步:本部分介绍了Java同步方法、同步代码块的使用方法,如何协调线程之间的协作关系,锁,还有JDK所提供的各种线程同步对象和线程安全的集合对象。

(3)多线程部分练习手册:提供了多道由浅入深的编程训练题,完成它们能帮助同学们提升自己的开发能力。

Java多线程技术是Java学习中的难点,也是各公司面试题中经常出现的技术领域。

此部分请同学们务必下功夫掌握。

第四部分 Android开发技术基础

Android可以说是当前非常引人注目的一个技术领域,并且由于它的开放性造就了一个红火的社区,成为移动互联网时代最重要的智能手机操作系统之一。

Android应用主要采用Java开发,并且Google为其提供的组件库也与Java SE的JDK高度一致,因此,大家通常把它划归到Java这一技术阵营。

鉴于Android技术的实用性,我在《Java程序设计》这门课的教学内容中加入了Android的内容,其目的有二:

(1)激发学生学习Java的兴趣,倡导“学以致用”的理念

(2)掌握Android技术于学生具有很强的实用性,对其就业有直接帮助。

由于学时有限,因此,我计划只讲授Android中最为关键的技术点,其目的是为学生进一步深入学习和探索Android技术打下一个基础,引导他们进入Android开发的大门。至于学生能否成长为一名优秀的手机软件开发工程师,那就看他们自己的努力了。

“师傅领进门,修行靠个人”。

第1讲 Android开发平台概述

这一讲从零开始,介绍Android平台的基础知识,包容三部分:

(1)Android概述:介绍Android是什么,包容哪些东西,……

(2)搭建Android开发环境:如何基于JavaSE和Eclipse构建开发Android应用的环境。

(3)Eclipse开发Android应用全过程:展示典型的使用Eclipse开发Android应用的步骤和相关基础知识。

第2讲 Activity编程基础

在手机上,你所看到的每一个应用界面都是Activity,本讲极为重要,是开发Android应用基础中的基础,能否掌握好它们,决定了你能否迈入Android开发的大门。

(1)Activity基础:此讲中最重要的是后半部分有关Activity状态、生命周期的内容,务必认真理解。

(2)多Activity开发:只有一个Activity的应用并不常见,本讲介绍了多Activity开发中最基础的编程技巧,重点放在各Activity间如何交换信息上,其中有关Back stack和Activity启动模式的内容是难点,初学不易把握,请同学们仔细阅读课件并运行示例,这个难点必须突破。

(3)Intent初步:灵活用好Intent是Android开发中的重要技巧。本部分重点解析Android中Intent的各个组成部分及作用,是进一步深入学习的基础。

第3讲  界面布局与常见界面元素

对于Android智能手机应用而言,UI界面的重要性怎么强调也不过份,本讲介绍了以下内容:

(1)基础布局控件:View和ViewGroup的关系,各种布局控件的使用方法,控件的隐藏与显示,……
(2)常见界面元素:各种菜单,对话框,状态栏提示的实现技巧。
(3)动态界面切换:介绍如何依据具体运行场景,动态地更换UI界面元素的基本技巧。
(4)复合控件:介绍如何把多个基本控件组合起来以实现代码复用。
(5)手势操作:介绍使用手指点按、拖动、缩放的实现方法

这些内容在实际开发中天天要打交道,为Android应用开发所必须。

提示:建议学习本部分前先掌握《Java程序设计》课程的第19讲内容。

第4讲 Android多线程

本讲介绍了Android多线程领域中的实用技术,包括以下内容:

(1)如果推送数据到UI线程

(2)定时调用

(3)AsyncTask组件的使用方法

(4)Looper和Handler

每个主题都关联着一个可运行的Android项目,帮助同学们掌握技术关键点。

提示:学习本部分前,先掌握《Java程序设计》课程的第21讲内容。

(other ppt ,coming soon……)

北理工《Java程序设计》课程教学资源索引(2013版)——第21讲及Android第4讲发布相关推荐

  1. java是所有资源文件的索引_《Java程序设计》课程教学资源索引

    <Java程序设计>课程教学资源索引 说明: 本课程针对零Java编程基础的计算机专业学生,前提是学过C语言. 课程主要讲授J2SE,教学目的是带领学生迈入Java开发的大门,初步理解和把 ...

  2. Java程序设计课程教学实践

    0 引 言 众所周知,Java既是一种编程语言,又是一个跨系统的运行平台,在软件工业界得到广泛的应用,成为众多程序员的首选编程语言.事实上,在软件工业历届的程序设计语言排名榜中,Java语言始终名列前 ...

  3. c语言cdio案例,基于CDIO-OBE工程教育模式的C语言程序设计课程教学改革研究

    任顺 摘 要:针对物联网工程专业C语言程序设计课程教学中存在的不足,结合CDIO工程教育和OBE教育模式,开展教学改革研究.从夯实基础能力和激发创新能力两方面着手,重点阐述了C语言程序设计课程教学改革 ...

  4. 2015-2016-2 《Java程序设计》教学进程

    2015-2016-2 <Java程序设计>教学进程 目录 考核方式 寒假准备 教学进程 第00周学习任务和要求 第01周学习任务和要求 第02周学习任务和要求 第03周学习任务和要求 第 ...

  5. c语言程序设计 葛日波,C语言程序设计课程教学改革的探索

    人才培养质量是院校的生命线,课程教学质量是关系人才培养质量的重要内容,深入扎实地搞好课程教学改革是提高教学质量的重要手段,是落实人才质量的根本保证.独立学院成立的时间短,可借鉴的经验少,课程教学又有自 ...

  6. c语言课程教学的建议,C语言程序设计课程教学思考.doc

    C语言程序设计课程教学思考 C语言程序设计课程教学思考 摘要:"C++语言程序设计"是理工科大学生未来科研或工作中一种实用的工具,也可以成为学习其他语言的基础.本文从对学生综合能力 ...

  7. 基于Java毕业设计高校教学资源系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计高校教学资源系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计高校教学资源系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开 ...

  8. 苏大JAVA题库_苏州大学Java程序设计课程试卷含答案(B)

    苏州大学Java程序设计课程试卷(B)卷及参考答案共6页 一.选择题(2分*25= 50分) 1.Java语言的最大优点是:它是一种( C )的程序设计语言. A) 安全性 B) 多线性 C) 跨平台 ...

  9. python教学研究_Python程序设计课程教学研究

    Python 程序设计课程教学研究 * 陈剑雪 [摘 要] 文章针对自动化专业人工智能方向 Python 程序设计课程的教学问题, 分析了 Python 语言的优势和特点,针对人工智能方向学生的实际需 ...

最新文章

  1. 越秀人民币夹层二期完成首轮关账 首期募集近10亿元...
  2. Mybatis的selectKey使用
  3. ASP.NET中的状态管理
  4. [知识图谱实战篇] 二.Json+Seaborn可视化展示电影实体
  5. 【js监听报错】页面监听js报错问题
  6. 多元分类SVM(多类别SVM)程序使用说明
  7. 详解CSS position属性
  8. ‘sort’命令的14个有用的范例
  9. 眼底图像血管增强与分割--(3)基于PCA的增强算法原理及实现
  10. python 句子中没有中文_使用python进行汉语分词
  11. gdt描述_GDT形位公差详解.ppt
  12. 微信小店 没有服务器,微信小店商家后台配置说明
  13. JS设计模式-单例模式
  14. c++编写函数判断整数的位数
  15. 软件工程(3)微信抢票应用个人总结
  16. word 插入脚注尾注和删除页眉页脚
  17. 寺庙公众号开发:vue实现祈福牌位的前端部分
  18. Annotation(注解)是什么?
  19. 手把手教你做树莓派魔镜-MagicMirror(七)-接下来
  20. Xcode配置开发分组development team

热门文章

  1. vivado高层次综合(high-level synthesis,HLS)学习日记
  2. 南京·六合首届创业大赛复赛圆满结束,30个项目晋级决赛!
  3. ORACLE基本的sql语句
  4. Say goodbye to my loveness
  5. npm修改或切换镜像地址
  6. B树的代码实现和解析
  7. 读深入理解计算机系统 - 第一章 计算机系统漫游 - 1.1 信息 = 位 + 上下文
  8. 创弘星鹏科技:开抖音小店如何去选畅销类目
  9. 训练软件类项目投标文件示例
  10. 联想yoga710评测_YOGA系列高性能大作:联想YOGA 710 14