JAVA语言程序设计

JAVA语言程序设计

李金双 主讲教师
李金双 主讲教师
TEST 主讲教师
测试老师 主讲教师
  东北大学   2018-08-05 ~ 2019-09-01   汉语
  12   4/   925

¥0.00¥ 0.00

      Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮安全的,结构中立的,可移植的,性能很优异的多线程的,动态的语言。Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言。权威统计机构统计——在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。

    本课程主要目的是培养学生掌握Java语言的基本特点和基本语法,进行简单的程序设计, 能够使用Java语言编写小型的应用程序和applet,重点掌握Java语言的面向对象特性。

  本课程的学习目标是掌握Java语言的基本特点和基本语法,能够进行简单的基础程序设计, 能够使用Java语言编写小型的应用程序和applet,重点掌握面向对象语言的特征,为进一步学习java语言高级应用打好基础。


学时数:48学时


适用对象:计算机软件相关专业学生

:学习本门课程之前需要先学习哪些课程或知识呢?

:只要有一定的计算机基础就可以学习本课程,当然如果学过C语言编程就会更好更快地理解本课程的知识。


:学习Java使用的计算机需要什么档次的计算机以及什么样的操作系统呢?

:我们学习的是Java基础编程,所以一般的通用计算机都可以,不需要最新的高端计算机。另外因为Java是一门跨平台的语言,所以无论是使用Windows系统、Linux系统还是苹果机的系统都可以。


:学习过程中遇到不懂的问题应该怎么办?

:首先可以反复观看视频中老师讲解的相关知识点,如果依然无法理解可以使用互联网搜索引擎寻找答案,还可以在学习论坛发帖求助,老师会及时回复你的问题。此外,在每周的网上讨论时也可以集中提问。


:本门课程学习完毕Java编程会达到一个什么样的标准?

:首先要强调的是,Java包含的内容十分丰富,我们的课程仅仅学习最基础的编程知识,所以学习结束后我们应该掌握了Java的编程基础。在此基础上,同学们可以继续学习Java的其他内容,如网页编程JSP、Struts、Hibernate、Spring等框架以及数据库编程等等。


一、教学日程

第1周         Java概述

1.1    Java的发展及其特点

1.2    Java程序开发过程

1.3    整数类型和实数类型

1.4    运算符和表达式

1.5    实验

1.5.1 安装Java开发环境

1.5.2 编写“HelloWorld”程序

1.5.3 输入小写字母,输出其所对应的大写字母

1.5.4 输入两个整数a和b,输出它们的商和余数

第2周         程序控制语句:分支结构

2.1    上期实验内容讲解

2.2    双分支结构:输出两个数中较大的数

2.3    多分支结构:根据输入要求计算两个数的和差积商,,switch语句

2.4    嵌套If语句:输出三个数中较大的数

2.5    实验:

2.5.1 判断某年是否是闰年:如果某年能被4整除并且不能被100整除,或者能被400整除,那么这年是闰年。

2.5.2 判断某5位整数是否为回文数。回文数:正读反读数字都一样的数,如12321、43434是回文数,12345、12323不是回文数。

2.5.3 输入一个成绩,输出其对应的分数等级:优秀、良好、中、及格、不及格,分别用if和switch两种语句来完成。

第3周         程序控制语句:循环结构

3.1    上期实验内容讲解

3.2    while循环:求从整数1到整数100的和,输出10个数中最大的数

3.3    do…while循环:输入一个整数,判断它的位数

3.4    for循环和跳转语句:输出一个数的所有约数,判断一个数是否是质数,输出1000内的所有的质数

3.5    实验

3.5.1 输入10个数,求这10个数的和及平均值

3.5.2 输入一个整数,判断其是否是回文数

3.5.3 输出9*9乘法表

3.5.4 输出1000以内最大的10个质数及其和

第4周     类和对象

4.1    上期实验内容讲解

4.2    基本数据类型和类Point类

4.3    方法重载:Fushu类

4.4    构造方法:Fushu类

4.5    类变量与类方法:Point类

4.6    实验

4.6.1 建立复数类,显示复数时如果虚部为0时只显示实部,实部为0时只显示实部,实部虚部同时为0时显示0并为复数类增加减法功能。

4.6.2 建立Line类:实际上是线段,包含两个端点;颜色为彩虹色;粗细是类变量,包含show方法。

第5周         常用实用类:数组

5.1    上期实验内容讲解

5.2    一维数组:输入10个数字,输出高于平均值的数字

5.3    数组应用:查找、删除和排序。数组中存放10个数字,按有小到大的次序输出这10个数

5.4    二维数组:矩阵交换最大值与最小值所在的行

5.5    实验

5.5.1 数组中存放10个同学的学号和成绩,按成绩降序输出学号及成绩

5.5.2 在有序数组中插入一个数字,插入后保持数组仍有序。

5.5.3 计算n*n数组中副对角线上数字之和。

5.5.4 将9*9乘法表存放在二维数组中并输出

第6周     常用实用类:String类

6.1    上期实验内容讲解

6.2    字符串String类:判断用户名、密码,密码不区分大小写;

6.3    String类常用方法:统计段落中单词出现的次数。

6.4    StringBuffer类:编辑和修改字符串内容

6.5    实验

6.5.1 输出一个字符在字符串中出现的次数

6.5.2 做一个字符串替换程序,将一个字符串中的某个子字符串替换为新串

6.5.3 将9*9乘法表存放在二维字符串数组中并输出

6.5.4 统计英文句子中单词出现的次数

第7周         常用实用类:Math类和Date类等

7.1    上期实验内容讲解

7.2    Math类:输入三角形三条边的长度abc,求三角形的面积S

7.3    Date类和Calendar类:输出本月的日历效果

7.4    Random类:

7.5    实验

7.5.1 求出π的值

7.5.2 输入将来的一个日期,程序输出其是星期几,距今天有多少天

7.5.3 从52张扑克牌中随机选出五张牌,注意扑克牌不能重复。

第8周     子类与继承

8.1    上期实验内容讲解

8.2    创建子类:Shape类、Square类、Rectangle类

8.3    方法的覆盖与重载:super关键字

8.4    继承与多态性

8.5    抽象类和final类:Shape类

8.6    实验

8.6.1 扩充Shape类族,创建椭圆Elipse类,它是抽象类Shape的子类,属性包括圆心、长轴和短轴;求椭圆面积方法为不可更改的方法,公式为PI*长轴*短轴/4。

8.6.2 创建椭圆类的子类Circle类。编写程序测试Ellipse类和Circle类。

第9周     包和接口

9.1    上期实验内容讲解

9.2    类的封装性:包、访问权限

9.3    接口:CanFight等

9.4    接口与多态

9.5    接口与抽象类的比较

9.6    实验

9.6.1 CompareObject

第10周   内部类与异常类

10.1  上期实验内容讲解

10.2  内部类和匿名类

10.3  异常及异常类

10.4  异常处理

10.5  自定义异常类

10.6  实验

        10.6.1   TooShortException、TooTallException异常处理

第11周   图形用户界面1

11.1  上期实验内容讲解

11.2  Java Swing概述

11.3  窗口JFrame

11.4  菜单条、菜单、菜单项

11.5  常用组件

11.6  布局管理器

11.7  常用容器

11.8  实验

11.8.1   计算器图形界面

第12周   图形用户界面2

12.1  上期实验内容讲解

12.2  事件处理模式

12.3  常用事件接口

12.4  对话框

12.5  发布Java GUI程序

12.6  实验

        12.6.1   计算器程序实现


二、教学方式

    每周视频讲解配合相应的实验和作业,并讲解上一周的实验内容。


三、在线辅导安排

    每周三、周五的下午进行课程集中讨论,另外学生可在任意时间发布问题,教师于两日内回复问题。

一、课程的地位、性质和任务

课程性质:专业课

课程目的:本课程主要目的是培养学生掌握Java语言的基本特点和基本语法,进行简单的程序设计, 能够使用Java语言编写小型的应用程序和applet,掌握Java数据库编程。

教学要求:要求学生熟练掌握Java语言的基本特点和基本语法,了解Java语言图形界面组件的基本用法,进行简单的程序设计。掌握Java语言编写applet的方法;掌握Java数据库编程;掌握Java语言的基本语法。对重要知识采取知识讲解与程序演示相结合的方法,并选取典型的程序让学生上机实践。

二、课程教学基本要求

课程教学目的、要求:

(1)培养学生建立或巩固面向对象的程序设计思想;

(2)使学生了解Java程序的运行机制及Java虚拟机的体系结构;

(3)使学生掌握Java语言的特点,能够熟练地设计和使用类、接口等面向对象的组件,重点是理解Java语言对封装、继承、多态等面向对象程序设计特性的实现;

(4)使学生掌握Java语言的基本数据类型及对应的数据类型类、运算符、表达式、控制流语句等程序设计的基本要素,能够熟练使用它们解决一般的计算问题;

(5)使学生理解Java语言的异常处理机制,能够利用异常处理提高程序的稳定性和容错性;

(6)使学生理解Java语言的垃圾回收机制,能够利用垃圾回收机制提高程序的性能;

(7)使学生掌握Java语言的各种类型文档注释,使学生学会在程序设计过程中正确书写文档注释的方法,并能够使用相应的工具程序自动创建帮助文件;

(8)使学生掌握Java语言类库中关于输入/输出、集合、各种工具类、系统编程、国际化等部分,使学生能够在程序设计中熟练使用,并能进行扩展。

三、相关课程及关系

本课程的先修课程包括 “C语言程序设计”或者“C++程序设计”。本课程的学习应在学生掌握面向对象编程思想的基础上进行。

四、课程内容及学时分配

总学时:48学时

(一)Java概述 4学时

1.1 Java的发展及其特点

1.2 Java程序开发过程

1.3 整数类型和实数类型

1.4 运算符和表达式

1.5 实验

1.5.1 安装Java开发环境

1.5.2 编写“HelloWorld”程序

1.5.3 输入小写字母,输出其所对应的大写字母

1.5.4 输入两个整数a和b,输出它们的商和余数

(二)程序控制语句:分支结构 4学时

2.1 上期实验内容讲解

2.2 双分支结构:输出两个数中较大的数

2.3 多分支结构:根据输入要求计算两个数的和差积商,,switch语句

2.4 嵌套If语句:输出三个数中较大的数

2.5 实验:

2.5.1 判断某年是否是闰年:如果某年能被4整除并且不能被100整除,或者能被400整除,那么这年是闰年。

2.5.2 判断某5位整数是否为回文数。回文数:正读反读数字都一样的数,如12321、43434是回文数,12345、12323不是回文数。

2.5.3 输入一个成绩,输出其对应的分数等级:优秀、良好、中、及格、不及格,分别用if和switch两种语句来完成。

(三)程序控制语句:循环结构 4学时

3.1 上期实验内容讲解

3.2 while循环:求从整数1到整数100的和,输出10个数中最大的数

3.3 do…while循环:输入一个整数,判断它的位数

3.4 for循环和跳转语句:输出一个数的所有约数,判断一个数是否是质数,输出1000内的所有的质数

3.5 实验

3.5.1 输入10个数,求这10个数的和及平均值

3.5.2 输入一个整数,判断其是否是回文数

3.5.3 输出9*9乘法表

3.5.4 输出1000以内最大的10个质数及其和

(四)类和对象 4学时

4.1 上期实验内容讲解

4.2 基本数据类型和类Point类

4.3 方法重载:Fushu类

4.4 构造方法:Fushu类

4.5 类变量与类方法:Point类

4.6 实验

4.6.1 建立复数类,显示复数时如果虚部为0时只显示实部,实部为0时只显示实部,实部虚部同时为0时显示0并为复数类增加减法功能。

4.6.2 建立Line类:实际上是线段,包含两个端点;颜色为彩虹色;粗细是类变量,包含show方法。

(五)常用实用类:数组 4学时

5.1 上期实验内容讲解

5.2 一维数组:输入10个数字,输出高于平均值的数字

5.3 数组应用:查找、删除和排序。数组中存放10个数字,按有小到大的次序输出这10个数

5.4 二维数组:矩阵交换最大值与最小值所在的行

5.5 实验

5.5.1 数组中存放10个同学的学号和成绩,按成绩降序输出学号及成绩

5.5.2 在有序数组中插入一个数字,插入后保持数组仍有序。

5.5.3 计算n*n数组中副对角线上数字之和。

5.5.4 将9*9乘法表存放在二维数组中并输出

(六)常用实用类:String类 4学时

6.1 上期实验内容讲解

6.2 字符串String类:判断用户名、密码,密码不区分大小写;

6.3 String类常用方法:统计段落中单词出现的次数。

6.4 StringBuffer类:编辑和修改字符串内容

6.5 实验

6.5.1 输出一个字符在字符串中出现的次数

6.5.2 做一个字符串替换程序,将一个字符串中的某个子字符串替换为新串

6.5.3 将9*9乘法表存放在二维字符串数组中并输出

6.5.4 统计英文句子中单词出现的次数

(七)常用实用类:Math类和Date类等 4学时

7.1 上期实验内容讲解

7.2 Math类:输入三角形三条边的长度a、b、c,求三角形的面积S。

7.3 Date类和Calendar类:输出本月的日历效果

7.4 Random类:

7.5 实验

7.5.1 求出π的值

7.5.2 输入将来的一个日期,程序输出其是星期几,距今天有多少天

7.5.3 从52张扑克牌中随机选出五张牌,注意扑克牌不能重复。

(八)子类与继承 4学时

8.1 上期实验内容讲解

8.2 创建子类:Shape类、Square类、Rectangle类

8.3 方法的覆盖与重载:super关键字

8.4 继承与多态性

8.5 抽象类和final类:Shape类

8.6 实验

8.6.1 扩充Shape类族,创建椭圆Elipse类,它是抽象类Shape的子类,属性包括圆心、长轴和短轴;求椭圆面积方法为不可更改的方法,公式为PI*长轴*短轴/4。

8.6.2 创建椭圆类的子类Circle类。编写程序测试Ellipse类和Circle类。

(九)包和接口 4学时

9.1 上期实验内容讲解

9.2 类的封装性:包、访问权限

9.3 接口:CanFight等

9.4 接口与多态

9.5 接口与抽象类的比较

9.6 实验

9.6.1 CompareObject

(十)内部类与异常类 4学时

10.1 上期实验内容讲解

10.2 内部类和匿名类

10.3 异常及异常类

10.4 异常处理

10.5 自定义异常类

10.6 实验

10.6.1 TooShortException、TooTallException异常处理

(十一)图形用户界面1 4学时

11.1 上期实验内容讲解

11.2 Java Swing概述

11.3 窗口JFrame

11.4 菜单条、菜单、菜单项

11.5 常用组件

11.6 布局管理器

11.7 常用容器

11.8 实验

11.8.1 计算器图形界面

(十二)图形用户界面2 4学时

12.1 上期实验内容讲解

12.2 事件处理模式

12.3 用事件接口

12.4 对话框

12.5 发布Java GUI程序

12.6 实验

12.6.1 计算器程序实现


ljs.jpg            李金双,男,东北大学计算中心副教授。主讲《计算机基础》、《高级语言程序设计》、《计算机软件技术基础》、《数据库技术基础》、《面向对象技术》、《Web程序设计》等课程。国家精品课《计算机软件技术基础》主讲教师,教育部-英特尔精品课《高级语言程序设计》主讲教师,获得辽宁省教学成果二等奖两项、东北大学教学成果一等奖四项、东北大学教师讲课竞赛二等奖一项。研究方向网络通信与安全。
           

           
张昱,男,东北大学计算中心讲师。主讲《高级语言程序设计》、《可视化程序设计》等多门课程。曾获辽宁省教学成果奖一项、东北大学教学成果奖两项、主持辽宁省教改立项一项。研究方向为社会网络。
     
       

Java 编程思想:第 3 版 (陈昊鹏等译; 机械工业出版社,2005 年)

Effective Java 中文版 (潘爱民译; 机械工业出版社,2003 年)

Java 编程语言(第 3 版) (虞万荣等译,中国电力出版社,2003 年)

设计模式:可复用面向对象软件的基础 (李英军等译,机械工业出版社 ,2005 年)


计算机基础

程序设计基础(C语言)

获取课程证书需完成如下要求:

1、学习所有课程章节并完成课程作业;

2、积极参与课程讨论;

3、参加期中考试和期末考试并且成绩合格。

http://scjp.home.sohu.com/

http://scjp.myrice.com   

http://java.sun.com/products/jsp/faq.html   

http://www.sun.com.cn/education   

http://java.sun.com   

http://java.sun.com/j2se/1.4/docs/api/index.html

http://java.sun.com/j2se/1.4/docs/   

http://java.sun.com/j2se/1.4/download.html#docs   

http://java.sun.com/docs/windows_format.html  

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 

http://61.140.76.55:8080/index.html 

http://www.cnkapok.com/course/c_bea3.html 

http://www.bea.com.cn/channel/education/index.html   

http://www.servlets.com/docs/index.html