《Java技术及其应用实验》教案.docx
《《Java技术及其应用实验》教案.docx》由会员分享,可在线阅读,更多相关《《Java技术及其应用实验》教案.docx(30页珍藏版)》请在冰豆网上搜索。
《Java技术及其应用实验》教案
安徽大学
实验课程教案
课程名称
Java技术及其应用
课程属性
专业选修
开课学年
2016年至2017年
开课学期
二
年级专业
软件工程
主讲教师
刘政怡
课程所属院系部
计算机科学与技术
课程所属系(教研室)
软件工程系
实验进度安排表
次数
周次
学时数
教学主要内容
教学方法
1
2
4
实验一Java基础实验
1、掌握JDK的安装和配置;掌握JavaApplication程序的开发过程;
2、熟悉Java语言的数据类型、运算符、表达式、控制语句,使用Java语言进行简单的编程。
实验
2
4
4
实验二Java面向对象编程实验
掌握如何定义类及类成员变量、成员方法,掌握对象的创建、对象属性的引用和方法的调用实现方法与构造方法的重载。
实验
3
6
4
实验三Java面向对象继承性实验
掌握上转型对象的定义,学会方法重写,体验Java继承所带来的多态性。
实验
4
8
4
实验四Java面向抽象和接口编程实验
掌握创建抽象类和接口的方法,并利用上转型对象实现面向抽象和面向接口编程。
实验
5
10
4
实验五数组与字符串实验
1、设计程序,在程序中声明数组、初始化数组元素,引用数组元素;
2、通过实验掌握如何用String和StringBuffer表示字符串,如何访问、修改、比较、转换字符串。
3、学会使用正则表达式处理字符串。
实验
6
12
4
实验六异常处理实验
掌握异常处理机制,学会使用try-catch-finally语句实现异常处理,区分throw和throws关键字,学会自定义异常类,并使用自定义异常类。
7
14
4
实验七输入输出处理实验
实现Java输入/输出程序,掌握文本文件、二进制文件的读写和对象的串行化机制。
实验
8
16
4
实验八图形用户界面的设计实验
综合利用窗口、按钮、文本框、选择框、滚动条等,掌握如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制,要求学生具有一定的综合分析和设计能力。
实验
9
18
4
测试考核
实验
实验一
名称
Java基础实验
一、实验目的
1、掌握JDK的安装和配置;掌握JavaApplication程序的开发过程;
2、熟悉Java语言的数据类型、运算符、表达式、控制语句,使用Java语言进行简单的编程。
二、实验要求
1、编写Java程序在屏幕上打印用星号组成的等腰三角形。
2、编写Java程序打印个人信息,个人信息格式如下所示:
学号:
JT2011023
姓名:
张三
性别:
男
身高:
168cm
体重:
54.3kg
3、classRect{
doublewidth;//矩形的宽
doubleheight;//矩形的高
doublegetArea(){//计算面积的方法
doublearea=width*height;
returnarea;
}
}
模仿Rect类,写一个圆锥类,提供打印体积的方法,在Test类的main()方法中打印某个圆锥对象的体积。
要求:
写两个类Circular和Test,分别保存为2个Java源文件。
4、定义一个三角形类Triangle
属性:
三边
方法:
判断是否为三角形,返回真假。
定义一个测试类Test
主方法:
提供一个三角形对象,赋值三边,判断是否构成三角形。
要求:
写两个类Triangle和Test,保存为1个Java源文件中。
5、从键盘输入两个浮点数,输出他们的四则运算结果。
6、从键盘输入圆柱体的底面半径和高,求该圆柱体的表面积和体积。
(圆柱体抽象成类)
7、水仙花数(一个3位数)是指其个位、十位、百位3个数的立方和等于这个数本身,求所有水仙花数。
8、编写程序输出Fibonacci数列的前20项。
9、打印九九乘法表,格式如下:
三、实验条件
计算机
四、实验原理
涉及知识点包括:
第1章Java概述
1.1Java的历史
Java语言出现的背景WWW需要动态的可交互的功能
Java语言的深远影响:
解决不同平台移植,一处编程,处处运行。
1.2Java语言白皮书
Java是一种简单的、面向对象的、分布式的、解释的、鲁棒的、安全的、体系结构中立的、可移植的、高性能的、多线程的、动态的语言。
1.3Java产品分类
(1)JavaSE
(2)JavaEE
(3)JavaME
1.4JavaSE
Bin下包含主要内容
1.5Java源程序结构
与C/C++在源程序结构方面的区别
1.6第一个Java应用程序
Java开发环境的安装与设置;简单java程序的编写,编译与运行
第2章初识类和对象
2.1一个例子
以矩形类为例引入类和对象的概念
2.2再看一个例子
以圆类为例深入了解类和对象的概念
2.3类和对象的关系
类是Java语言中的一种数据类型,与整型int、单精度浮点型float、双精度浮点型double等一样都是来限定数据的类型的。
2.4类的定义
关键字class
2.5类的使用
new分配空间,再调用构造方法。
2.6Java应用程序的基本结构
2.7从命令行窗口输入、输出数据
介绍Scanner类实现键盘输入、print、printf实现屏幕输出
第3章Java基本语法
3.1标识符
Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。
3.2保留字
53个保留字
3.3数据类型
整型、实型、布尔型、字符型,重点讲述占位个数
3.4基本数据类型的级别与数据转换
低级向高级转换自动转换、高级向低级转换需要强制类型转换
3.5运算符
运算符/%++--===+=-=等的运算规则
3.6控制语句
if语句、if-else语句、if-elseif-else语句、switch语句、循环语句for、while、do-while、与循环有关的语句、return语句,重点强调增强的for循环
●分支语句,if..else..;switch.
if-else语句是控制程序流程最基本的形式。
格式:
if(boolean-expression)
statement1;
[elsestatement2]其中else子句可选
switch语句是另外一种控制程序流的语句,它根据语句中表达式的值传递给多个子语句中的一个。
Switch将控制传递给语句标志case后面的值与表达式的值相同的第一个语句。
否则将控制传递给含有default标志的语句。
如果没有default标志,控制将被传递给switch块后面的第一个语句。
语句格式:
switch(expression){
casevalue1:
statement1;
break;
casevalue2:
statement2
break;
……
[default:
defaultstatement;]
}
注意:
expression表达式的计算结果值应当是short,int,byte,char中任意一种类型,value1,value2等case标号也应是这些类型对应的字面值。
●循环语句while,do..while,for.
While,do..while,for使用方式同c语言。
●与程序转移有关的语句,continue,break,return
continue,break,return使用同c语言。
Continue语句用于结束本次循环,继续下次循环
break语句用于退出循环,或者退出switch语句
return语句用于函数返回
五、实验过程
1、学生复习对应课程内容,自行编写程序代码实现;
2、实验期间教师逐个查看程序完成情况,找出共同问题集中讲解,个别问题个别辅导;
3、实验结束时,要求学生提交电子版实验报告。
六、实验结果提交形式
以word形式提交源程序代码和运行结果截图。
实验二
名称
Java面向对象编程实验
一、实验目的
掌握如何定义类及类成员变量、成员方法,掌握对象的创建、对象属性的引用和方法的调用实现方法与构造方法的重载。
二、实验要求
1、编写一个Point类,有x、y、z三个属性;
编写一个PointDemo类,并提供一个distance(Pointp1,Pointp2)方法用于计算两点之间的空间距离,实例化两个具体的Point对象并显示它们之间的距离。
2、定义员工类Employee
(1)成员变量:
职工号、姓名、性别、工龄、基本工资、交通补贴、午餐补助、奖金
(2)定义一个空构造方法和一个能够初始化所有成员变量的构造方法。
(3)定义统计实发工资总额的方法
(4)利用toString()方法返回员工的所有信息
(5)定义方法输出职工号、姓名、工龄、实发工资。
3、抽象一个复数类
成员变量:
实部real、虚部image;
构造方法:
赋初值;
成员方法:
加法运算
FuShuadd(FuShus1);
成员方法:
打印输出复数
Test类
主方法main:
两个复数相加,输出结果。
4、抽象一个圆类
成员变量:
半径;
成员方法:
求面积;
抽象一个圆锥类
成员变量:
圆锥的底为圆类的对象;
成员变量:
高
成员方法:
求体积。
主类
主方法main:
通过赋值,打印圆锥体积。
三个类放在一个java文件中。
三、实验条件
计算机
四、实验原理
涉及知识点包括:
第4章类和对象
4.1方法重载
方法重载即指多个方法可以享有相同的名字,但是这些方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。
返回类型不能作为区分方法重载的标准。
4.2变量作用域
类的成员变量的作用域在整个类定义体内;方法的参数变量、局部变量的作用域都在方法体内。
举例说明。
4.3构造方法
何时使用构造方法、为什么使用构造方法、如何定义和使用构造方法。
4.4Java内存管理
栈、堆、方法区在Java程序运行过程中存储数据的过程,了解内存管理情况。
4.5参数传递
在了解Java内存管理之后,以内存情况的差异来区分所谓的传值和传地址。
4.7类成员和实例成员
Static修改的成员为类成员,属于类,其与实例成员的差异,以例题以及内存管理方面分别介绍。
4.8包
以例题的形式介绍包的存在的意义,如何定义包,使用包。
4.9import语句
为了能使用不在同一包中的其他类,需要使用import语句来引入所需要的类。
import语句的语法格式如下:
importpackage1[.package2].(classname|*);
4.10访问权限
1、private:
同类。
类中限定为private的成员变量和方法只能被这个类本身的方法访问,不能在类外通过名字来访问。
但是访问保护是控制在类的级别上,同一个类的不同对象可以访问对方的私有成员。
2、default:
同类,同包。
类中不使用任何访问权限修饰符修饰的成员变量和方法可以被这个类本身和同一个包中的类所访问。
3、protected:
同类,同包,子类(不一定要同包)。
类中限定为protected的成员变量和方法可以被这个类本身,他的子类(包括同一个包中以及不同包中的子类)以及同一个包中所有其他的类访问。
处在不同包中的子类可以访问父类中限定为protected的成员。
4、public:
所有。
类中限定为public的成员变量和方法可以被所有的类访问。
4.11基本数据类型的包装类
在java.lang包中提供了基本数据类型byte、int、short、long、float、double、char、boolean对应的包装器类型Byte、Int、Short、Long、Float、Double、Character、Boolean,每个包装器类型都提供了对应的XXXValue()方法返回该对象含有的基本数据类型的值,其中XXX代表对应的基本数据类型。
比如Integer对象调用intValue()方法返回该对象含有的int型数据。
五、实验过程
1、学生复习对应课程内容,自行编写程序代码实现;
2、实验期间教师逐个查看程序完成情况,找出共同问题集中讲解,个别问题个别辅导;
3、实验结束时,要求学生提交电子版实验报告。
六、实验结果提交形式
以word形式提交源程序代码和运行结果截图。
实验三
名称
Java面向对象继承性实验
一、实验目的
掌握上转型对象的定义,学会方法重写,体验Java继承所带来的多态性。
二、实验要求
1、在一个源程序中,定义四个类:
第一个类是图形类(Shape),含有一个成员变量color(字符串类型),一个没有参数的构造方法,以及一个有一个字符串类型参数的构造方法来初始化颜色变量,还有一个打印颜色变量的成员方法show;
第二个类是圆形类(Circle)继承了图形类,自己又含有一个变量半径r,有一个有两个参数的构造方法,来初始化颜色和半径,还有一个打印两个成员变量的成员方法show;其中构造方法实现时,需先调用父类带参的那个构造方法
第三个类是矩形类(Rectangle)继承了图形类,自己又含有两个变量长a和宽b,有一个有三个参数的构造方法,来初始化颜色、长和宽,还有一个打印三个成员变量的成员方法show;其中构造方法实现时,需先调用父类带参的那个构造方法
第四个类是测试类(TestShape),分别定义圆形类和矩形类的实例对象,并用show方法来测试自己的定义。
2、编程实现:
设计一个类,该类有一个方法publicintf(inta,intb),返回a,b的最大公约数
设计一个子类,重写祖先的f方法,且返回a,b的最小公倍数。
要求在子类重写父类方法时,首先调用父类的方法f获得最大公约数m,然后再用公式(a*b)/m获得最小公倍数。
最后写一个测试程序,分别调用父类和子类的方法。
(要用上转型对象调用f()方法)
三、实验条件
计算机
四、实验原理
第5章子类与继承
5.1子类的定义
extends关键字
5.2子类的继承性
子类对父类成员的继承性会根据父类成员的访问权限有所不同。
(1)若子类和父类在同一个包内,子类可以继承父类中访问权限设定为public、protected、default的成员变量和方法。
(2)若子类和父类不在同一个包内,子类可以继承父类中访问权限设定为public、protected的成员变量和方法。
5.3成员变量的隐藏和方法重写
方法重写:
子类方法与父类方法同名,且参数个数类型一致,返回类型相同或是子类;方法重载:
方法名相同,参数个数或类型不同,返回类型相同。
5.4super关键字
当子类新定义的成员变量与从父类继承而来的成员变量同名时,继承而来的成员变量被隐藏,子类不能直接使用这些被隐藏的变量,如果想使用,则需要使用super关键字;当子类新定义的成员方法与从父类继承而来的成员方法同名、同参数,且返回类型相同或是子类时,继承而来的成员方法被隐藏,如果想使用,则需要使用super关键字。
当子类从父类继承而来的成员被隐藏时,可以由super负责调用从父类继承而来的成员。
(1)访问从父类继承而来却被隐藏的成员变量,如:
super.variable
(2)调用从父类继承而来却被重写的成员方法,如:
super.Method([paramlist]);
(3)调用父类的构造函数,如:
super([paramlist]);
5.5面向对象的多态性
多态性分为静态多态性和动态多态性,分别表现为方法重载和方法重写。
(1)方法重载
方法名相同,根据参数个数或类型不同,在编译阶段决定执行不同的方法。
(2)方法重写
方法名相同,参数相同,在运行阶段决定执行不同的方法。
动态多态性得以实现的一个前提条件为:
将子类创建的对象实体的引用赋值给声明为父类的对象。
5.6final关键字
final关键字可以修饰类、成员变量和方法中的局部变量。
(1)final修饰变量,变量就变成了常量,常量需要设初值,且以后不可以再变化。
(2)final修饰方法,方法就不能再重写;
(3)final修饰类,类就不能被继承,即不能再有子类。
五、实验过程
1、学生复习对应课程内容,自行编写程序代码实现;
2、实验期间教师逐个查看程序完成情况,找出共同问题集中讲解,个别问题个别辅导;
3、实验结束时,要求学生提交电子版实验报告。
六、实验结果提交形式
以word形式提交源程序代码和运行结果截图。
实验四
名称
Java面向抽象和接口编程实验
一、实验目的
掌握创建抽象类和接口的方法,并利用上转型对象实现面向抽象和面向接口编程。
二、实验要求
1、面向抽象编程1
定义一个抽象类Figure,具有area()方法;
定义子类Circle,继承Figure,重写area()方法;
定义子类Square,继承Figure,重写area()方法;
定义测试类,计算并输出一个圆和一个正方形的面积。
(要用上转型对象调用area()方法)
在前面的基础上,
2、面向抽象编程2
定义子类Triangle,继承Figure,重写area()方法;
注意:
三角形面积求法:
海伦公式:
设P=(a+b+c)/2,S△=根号下P(P-a)(P-b)(P-c)。
注:
边长分别为a、b、c,三角形的面积S,而公式里的p为半周长(Math.sqrt())
定义测试类,计算并输出一个圆和一个正方形和一个三角形的面积。
(要用上转型对象调用area()方法)
三、实验条件
计算机
四、实验原理
涉及知识点包括:
第5章子类与继承
5.7abstract关键字
用abstract关键字可以修饰类或修饰方法。
(1)用abstract修饰类,类成为抽象类。
如:
abstractclass类名{
成员变量;
成员方法;//可以是抽象的或非抽象的
}
通常不能实例化一个抽象类,即不能用关键字new生成抽象类的实例。
(2)用abstract修饰方法,类成为抽象方法。
如:
abstract返回类型方法名(参数列表);
抽象方法只需声明,无需实现。
抽象方法需要被重写。
注意:
(1)抽象类中可以包含抽象方法,为所有子类定义一个统一的接口,但并不是必须的;
(2)一旦某个类中包含抽象方法,则这个类必须声明为抽象类。
(3)如果子类继承抽象类,可以重写父类中的抽象方法,也可以继承抽象方法,此时子类也是抽象的。
5.8面向抽象编程
面向抽象编程即为设计一个类时,不让该类面向具体的类,而是面向抽象类。
面向抽象编程的核心思想:
将abstract类声明的对象作为其子类的上转型对象,利用它调用子类重写的方法。
举例说明。
5.9接口
接口的定义、使用、接口回调、多态性。
5.10面向接口编程
接口只关心操作,但不关心这些操作的具体实现细节,可以使我们把主要精力放在程序的设计上,而不必拘泥于细节的实现。
也就是说,可以通过在接口中声明若干个抽象方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。
使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量可以回调类实现的接口方法。
5.11abstract与接口类的区别
接口和abstract类的比较如下:
(1)abstract类和接口都可以有abstract方法。
(2)接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。
(3)abstract类中也可以有非abstract方法,接口不可以。
5.12内部类和匿名类
Java支持在一个类中声明另一个类,这样的类称作内部类,而包括内部类的类称为内部类的外嵌类。
由于内部类只在其外嵌类中使用,因此有时候也可以定义为匿名内部类,即没有类名的内部类,当使用运算符new创建对象时,同时给出类体。
这种匿名内部类只能使用一次,可以简化代码,通常使用在继承或接口的应用场合。
五、实验过程
1、学生复习对应课程内容,自行编写程序代码实现;
2、实验期间教师逐个查看程序完成情况,找出共同问题集中讲解,个别问题个别辅导;
3、实验结束时,要求学生提交电子版实验报告。
六、实验结果提交形式
以word形式提交源程序代码和运行结果截图。
实验五
名称
数组与字符串实验
一、实验目的
1、设计程序,在程序中声明数组、初始化数组元素,引用数组元素;
2、通过实验掌握如何用String和StringBuffer表示字符串,如何访问、修改、比较、转换字符串。
3、学会使用正则表达式处理字符串。
二、实验要求
1、键盘输入int类型的数组长度n,再键盘输入n个浮点数,程序将这些数存放到数组中,然后对数组排序,并输出排好序的数组元素
用户从键盘输入一个double类型的数,程序在数组中查找是否有数组元素值与该数相等,若相等,返回索引值;若不相等,输出提示,并提示用户继续输入,直到用户输入q结束循环。
2、对象数组编程实现:
设计一个学生类CStudent,其数据成员是学生的学号、姓名、数学、外语、计算机课程成绩。
建立学生对象的数组并输入相关信息,打印所有学生信息。
查找出学号为n的学生的信息。
学生类增加一个成员方法:
求平均分
测试类中将学生按照平均分排序输出。
3、键盘输入一个浮点数后,程序判断该浮点数由多少位数字,并分别输出整数部分、小数部分以及整数部分共有多少位数字、小数部分共有多少位数字。
注意:
若输入abc,对异常进行处理。
4、编写程序,判断用户输入的若干个数中,是否有四个连续相同的数,如果是,返回true,否则返回false。
5、八皇后问题:
经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能互相攻击。
(即没有两个皇后是在同一行、同一列或者同一对角上)编写程序显示所有的解决方案,并统计有多少种。
三、实验条件
计算机
四、实验原理
涉及知识点包括:
第6章数组、字符串和枚举
6.1数组
●一维数组的定义
Java中的数组是一个对象,具有属性。
一维数组可以采用如下两种定义方式:
type[]arrayName;
typearrayName[];
定义时不需要指定数组的大小。
数组的赋值:
(两种方式)
定义同时赋值:
type[]arrayName={element1,element2,…};
简单数据类型数组的动态初始化:
arrayName=newType[arraySize];
复合类型的数组:
两步
(1)为数组开辟每个元素的引用空间:
arrayName=newType[arraySize];
(2)为每个数组元素开辟空间:
arrayName[0]=newType(paramList);
…
arrayName[arraySize-1]=newtype(paramList);