JAVA实验报告_第1页
JAVA实验报告_第2页
JAVA实验报告_第3页
JAVA实验报告_第4页
JAVA实验报告_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、附件2:实验报告封皮20 15 20 16 学年第 1 学期 Java应用程序设计 课程实 验 报 告学 院: 计算机科学技术 专 业: 软件工程 班 级: 14402 姓 名: 邵磊 学 号: 041440230 任课教师: 王薇 实验日期:2015年 11 月 02 日实验题目Java简介及开发环境搭建实验内容1熟悉Java开发环境2Java程序的编辑和运行实验目的1熟悉Java开发环境(1)熟悉JDK工具包的下载及安装过程。(2)掌握JAVA_HOME、CLASSPATH及Path的配置内容。(3)掌握Java程序运行原理及javac、java命令的使用。2Java程序的编辑和运行(1)

2、熟悉用记事本编写Java程序的过程。(2)了解Java程序的基本结构。(3)掌握javac及java命令的使用。(4)熟悉MyEclipse集成开发环境的使用。实验步骤1熟悉Java开发环境(1)登录Oracle官方网站Java首页(2)将JDK工具包安装在D:javajdk1.6.0_18文件夹中。(3)完成JDK环境配置。创建JAVA_HOME变量并设置其值为”D:javajdkl1.6.0_18”,创建CLASSPATH变量并设置其值为”D:javajdkl1.6.0_18lib”文件夹中的dt.jar、tools.jar及当前目录,在Path变量原有值的基础上增加”D:javajdk1

3、.6.0_18bin”。(4)验证JDK是否配置正确。2Java程序的编辑和运行(1)创建D:javaExecise文件夹。(2)设置显示已知文件夹类型的扩展名。(3)利用记事本完成Java程序的编写。(4)利用命令编译运行Javs程序(5)在MyEclipse中编译并运行Java程序实验结果1熟悉Java开发环境单击【开始】|【运行】命令打开【运行】对话框。在该对话框的【打开】文本框中输入”cmd”命令,进入【命令提示符】窗口。在命令提示符后面输入”javac”命令。出现相关与javac命令相关的参数说明,也可以在命令提示符后面输入”java-version”,如果配置成功会显示当前JDK版

4、本。2 Java程序的编辑和运行在【我的电脑】的D盘创建了【javaExecise】文件夹,并且取消【隐藏已知文件夹类型的扩展名】复选框的勾选状态。在【开始】里的所有程序中选择【附件】|【记事本】命令,打开【无标题-记事本】窗口。在记事本中书写代码。写完保存代码并存在D:javaExecise路径把文本名字改为Start.java。在【开始】|【运行】命令中,输入cmd命令进入【命令提示符】窗口完成java Start,解释执行。在MyEclipse中实现了第一个程序。遇到问题及解决方法1熟悉Java开发环境在网上搜索官方网站,因为官网都是英文版所以应用起来不是很方便,下载后把软件安装在D盘,

5、在安装JDK时,步骤不再是一直按“下一步”,而是要在【我的电脑】里的【属性】中找到【系统属性】对话框,单击【高级】选项卡,打开【环境变量】。在里面新添加两个系统变量和更改一个系统变量。在添加和修改时,要注意不要打错,否则还是找不到配置路径。还有一点就是要在【工具】|【文件夹选项】菜单命令打开【文件夹选项】对话框,选择【查看】选项卡,取消【隐藏已知文件类型的扩展名】复选框的勾选状态,要不在后续的编译和运行改不了文件的后缀名。2. Java程序的编辑和运行在记事本中敲写程序的时候,要注意字母不要写错。在MyEclipse中最大的好处就是在创建class时有可选项,这样可降低主函数等的敲写错误。在创

6、建类的时候,Name与主函数的名字是一致的,一个程序只有一个主函数。-1-实验日期:2015年 11 月 06 日实验题目Java语法基础实验内容1常量与变量的声明与使用2运算符与表达式实验目的1 常量与变量的声明与使用(1) 掌握类的定义,明确类的组成。(2) 掌握Java的变量与常量的声明方法。(3) 掌握Java中各种基本数据类型的使用。2 运算符与表达式(1) 掌握常用运算符的基本方法。(2) 掌握表达式的使用。(3) 了解位移运算符的使用方法。(4) 掌握算术运算,关系运算及逻辑运算的优先关系。实验步骤1常量与变量的声明与使用(1) 设置MyEclipse的工作空间为D:javaEx

7、ecise。(2) 创建项目MyProject2并在该项目下创建AreaAndLength,并创建3个类:Triangle、Ladder和Circle,分别用来描述“三角形”、“梯形”和“圆形”。Triangle类具有类型为double的三个边,以及周长、面积属性,Triangle类具有返回周长、面积以及修改三个边的功能。另外,Triangle类还具有一个boolean类型的属性,该属性用来判断三个边能否构成一个三角形。Ladder类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。(3)

8、 在项目MyProject2中创建DataTypeDemo类,并分别定义整型、长整形、字符型、浮点型、字符串型等变量,然后依次输出各变量的默认值。2. 运算符与表达式(1) 在项目MyEclipse2中创建DivModDemo类,定义两个整型变量a和b,对这两个变量进行除法、取模和自加运算。(2) 在项目MyEclipse2中创建BitShiftDemo类,实现数值的位移运算。(3) 在项目MyEclipse2中创建OperationDemo类,分析关系运算与逻辑运算的优先关系。实验结果遇到问题及解决方法Java中有一些规则来定义,命名。常量要全用大写字母来写,定义变量时要用Unicode字母

9、(国际字符集标准,包括_和$开头。接下来的是任意数量的Unicode字母和数字)同时要指明变量的作用范围,而且必须要有一个数据类型且不能与Java语言中的关键字相同或命名成布尔值。在同一作用范围内,不能有相同名字的两个变量。Java的基本数据类型中整数类型的表达方式有八进制、十进制、十六进制。浮点数据需要在后面加上f因为MyEclipse的默认类型是double。所以float的字节为4。布尔类型一般作为判断条件。与C和C+语言不同的是,Java的布尔类型只能是真和假,不能代表整数(0或1)。还有一类是转义字符与C语言不同的是”ddd”的含义是ddd为3为八进制数,值在00000377之间;“

10、uxxxx”4位十六进制数所代表的字符。在各类型数据间的相互转换时,低数据可以转换成高数据。高数据转换为低数据是需要强制转换,但是这种强制转换可能会使变量的信息丢失。在运算符与表达式中,要注意运算符的优先级。算术运算符不能用在布尔值上,但是可以用在char类型上,因为实质上在Java中,char类型是int类型的一个子集。Java的算数运算符分为一元运算符和二元运算符两种。一元运算符运算一次只对一个变量进行操作,二元运算符运算一次对两个变量进行操作。一元运算符要注意自加的算法,是先+(-)1还是运算后+(-)1。算数运算符适用于所有数值型数据类型。但注意,如果操作数全为整数,那么,只要其中一个

11、为long型,则表达结果也为long型;其他情况下,即使两个操作数全是byte型或者short型,表达式结果也为int型;如果操作数为浮点型,那么,只要其中有一个为double型,表达式结果就是double型;只有两个操作数全是float型或者其中有一个是float型而另外一个是整数型时,表达式的结果才是float型。另外,当“/”运算和“%”运算中除数为0时,会产生异常。赋值表达式的组成是这样的:在赋值运算符的左边变量,右边是表达式。赋值运算符“=”把一个表达式的值赋给一个变量,在赋值运算符两侧的类型不一致的情况下,如果左边的变量类型级别高,则右侧的数据被准换为与左侧相同的高级数据类型后赋给

12、左侧变量;否则,需要使用强制转换运算符。关系运算符用来比较两个数,由两个操作数和关系运算符构成一个关系表达式。关系表达式的操作结果是布尔类型的,即结果为真或为假。逻辑表达式的结果值也是非真即假。这一章中还有三目运算符。其中,三目运算符可以代替ifelse语句。-6-实验日期:2015年 11 月 09 日实验题目程序的流程控制实验内容1字符串操作2三种基本程序结构实验目的 1字符串操作 2.三种基本程序结构(1) 掌握Java中顺序语句、选择语句的使用。(2) 熟悉掌握用这两种基本程序结构及相关的变量、表达式、运算符及有关类的方法来解决问题的思想。实验步骤(1) 设置MyEclipse的当前工

13、作空间为D:javaExecise。(2) 在MyEclipse3项目中创建ScoreChange类,用if-else结构实现百分制成绩,能根据输入的百分制成绩输出“优”、“良”、“中”、“及格”、“不及格”。90分以上为“优”,8090分为“良”,7079分为“中”,6069分为“及格”,60分以下为“不及格”。(3) 在MyEclipse3项目中创建ScoreChange2类,用switch-case结构实现百分制成绩的交换。(4) 在MyEclipse3项目中创建MaxMinDemo类,并求三个数中的最大数与最小数。(5) 在MyEclipse3项目中创建LeapYearDemo类,使用

14、if=else语句构造多分支,判断一年是否为闰年。闰年的条件是符合下面两者之一:能被4整除,但不能被100整除;能被4整除,又能被100整除。(6) 在MyEclipse3项目中创建DegreeDemo类,在不同温度时显示不同的解释说明。(7) 在MyEclipse3项目中创建PresentDemo类,运行程序后从键盘上输入数字1、2、3后,显示抽奖得到的奖品;如果输入其他数字或字符显示“没有奖品给你!”实验结果遇到问题及解决方法Java中三种基本程序结构有判断,循环和选择结构。在Java的选择结构中,它根据条件值或表达式值的不同,选择执行不同的语句序列,其他与条件值或表达式值不匹配的语句序列

15、则被跳过不执行。选择结构分为条件结构和多分支结构。If-else定义的形式和方法。需要注意的是,else语句一定要和if语句配对使用,不可单独使用,if或else语句体的语句若多于一条,外面需要用大括号括起来。但是必须在多个备选方案中处理多项选择时,再用if-else结构就显得很繁琐,这个时候就要使用switch语句来实习同样的功能。Switch语句需要搭配break一起使用且每个case后要紧跟break。语句中的表达式的返回值只能有int、byte、short和char。循环结构有四部分组成第一部分是初始化部分,用来设置循环控制的一些初始条件,如设置计数器等。第二部分是循环体部分,这是反复

16、执行的一段代码,可以是单一的一条语句,也可以是复合语句(代码块),第三部分是迭代部分用来修改循环控制条件常常在本次循环结束,下一次循环开始前执行,例如,使计数器递增或递减,第四部分是判断部分,也成为终止部分,是一个关系表达式或布尔逻辑表达式,其值用来判断是否满足循环终止条件。每执行一次循环都要对该表达式求值。在使用do-while时要注意在while后的“;”。在选择循环语句时,知道循环次数的用for,如果不知道的话则用while,do-while,两者的区分是是否先执行一次。在循环语句中与其对应相配的是跳出语句,3个跳出语句分别为:break,continue,return。Break是跳出

17、循环且只能跳出一层,continue则是跳出本次循环,执行下一次循环。在一个函数体中只能有一个出口,所以不能在一个函数中多次定义return,return有且只有一个。-10-实验日期:2015年 11 月 13 日实验题目数组实验内容1一维数组2二维数组及多维数组实验目的1一维数组(1)掌握一维数组的定义及初始化方法。(2)掌握循环结构与数组相结合解决问题的方法(3)理解数组下标和数组元素之间的关系。2二维数组及多维数组(1)掌握二维数组的定义及初始化方法。(2)掌握多维数组的定义及初始化方法。(3)掌握foreach循环与数组的遍历。实验步骤1. 一维数组 2 二维数组及多维数组实验结果第

18、一个程序成功的进行了冒泡排序。顺序为从小到大的输出。第二个程序实现了五子棋的下法。遇到问题及解决方法数组的声明包括两部分:数组类型和数字名字。要注意数组名字要是合法的Java标示符。在Java中数组定义时只是建立了一种数组的引用,并没有对数组的元素分配内存,生成实例,数组元素内存分配有new 语句或静态初始化完成;对数组元素进行初始化后,才能引用数组的元素。在多维数组中,因为分配空间可在定义数组的同时进行,也可以用new操作符为数组元素分配内存。这就是造成多维数组中的每维数组的长度可以不同,数组空间也不是连续分配的,但是一维空间仍然是连续分配。数组的使用过程分为声明、创建、初始化和访问。数组的

19、声明只是对数组的定义过程,并不分配任何空间。-13-实验日期:2015年 11 月 16 日实验题目类和对象1实验内容1类和对象的创建2成员变量与成员方法的设计实验目的 1类和对象的创建(1) 熟练掌握类的定义。(2) 掌握类中方法的定义。(3) 明确类与对象的关系,掌握关键字new的使用。(4) 掌握对象的引用。2 成员变量与成员方法的设计(1) 掌握static变量与static方法的使用。(2) 掌握构造方法及一般方法的重载。(3) 掌握关键字this的使用实验步骤1类和对象的创建实验结果实现了类和对象的创建。成功的调用了成员变量与成员遇到问题及解决方法(1) 在声明对象之后,还不能使用

20、对象,必须先用操作符new创建对象实体,之后才可以使用对象。new关键字的作用有一下几点:(1)为对象分配内存空间。(2)调用类的构造方法(3)为对象返回一个引用。(2) 只有使用new操作符创建一个对象后,IVM才会给该对象分配空间。(3) 静态成员只能通过类来调用。(4) 静态变量当全局变量。(5) Static不需要new。(6) 静态方法用于静态变量。(7) 静态属性是被共享的。因此当某个对象修改了静态属性的值之后,所有对象都将使用修改的静态属性值。(8) This的使用时指向当前对象本身。(9) This调用本类中的属性,也就是类中的成员变量。Return this返回某个类的引用,

21、此时这个this关键字就代表类的名称。还可以作为类的返回值。-16-实验日期:2015年 11 月 20 日实验题目类和对象2实验内容1访问修饰符与静态变量及静态方法2方法的重载实验目的1 访问修饰符与静态变量及静态方法(1) 掌握访问修饰符的使用。(2) 掌握静态变量的使用。(3) 掌握静态方法的使用。2 方法的重载(1) 掌握成员方法的重载。(2) 掌握构造方法的重载。实验步骤1访问修饰符与静态变量及静态方法2 方法的重载实验结果成功调用静态方法和静态变量。实现了方法的重载。遇到问题及解决方法(1) 方法的重载是方法名一样,参数的个数不一样或是参数的顺序不一样或者是参数类型不一样。(2)

22、在Java中,每个类至少需要一个构造方法(可以有多个),它用于构造类的对象。在Java中构造方法必须与类名相同。构造方法可以不带有参数,也可以带有参数,不带参的构造方法被称为无参构造方法。如果我们不给类提供构造方法,编译器会自动提供一个无参构造方法。换句话说。一个类至少要有一个构造方法,而且默认的构造方法程序员可以不写,但是最好的习惯加上默认构造方法。(3) 当构造方法的形参与成员变量同名是,成员变量一定要加上this强调当前对象,如果没有,并没有对成员变量赋值,只是形参的赋值运算而已,输出的成员变量也只是系统赋予的默认值为0,所以构造方法中的初始化都要加上this强调当前对象。-19-实验日

23、期:2015年 11 月 23 日实验题目类和对象3实验内容1类的继承2多态与接口实验目的1 类的继承(1) 掌握父类及子类的关系及创建方法。(2) 掌握上转型对象的使用方法。(3) 掌握子类对象创建过程中与父类构造方法的关系。2 多态与接口(1) 掌握抽象类与抽象方法的概念。(2) 掌握多态的实现原理及方法。(3) 了解成员变量的隐藏。(4) 掌握接口的设计方法。(5) 掌握包的设计以及使用方法。实验步骤1类的继承2多态与接口实验结果实现类的接口的调用。实现了类的继承。遇到问题及解决方法(1) 在Java中一个子类只能有一个父类,只支持单重继承。(2) 一个派生类对象总是包含完整的基类对象,

24、包括所有未继承的成员域或方法。(3) 而父类对子类烦人私有成员不可以访问,默认的也只可以在同一个包里才可以访问。(4) 在接口中写声明抽象方法就可以了不可以填写具体文件的方法,在编写class文件时要在后面添加接口,接口里的抽象类必须在class文件里全部实现。(5) 抽象方法必须要用抽象类来调用。(6) 继承时,调用父类默认的构造方法。(7) 抽象方法不可以设置成私有方法。(8) 当继承接口时,参数列表要相同,返回值要相同,名字要相同。(9) 超类是抽象类子类必须要给出声明。(10) 程序是根据参数的个数、类型、顺序判定选择抽象类的。-23-实验日期:2015年 11 月 27 日实验题目类

25、和对象的扩展实验内容1内部类与外部类2异常操作实验目的1 内部类与外部类(1) 掌握内部类的定义方法。(2) 掌握内部类与外部类间的关系。(3) 重点掌握内部类、外部类、父类、子类之间的方法重写时调用的次序。2 异常操作(1) 理解系统异常处理的机制。(2) 掌握try-catch-finally。(3) 创建自定义的异常类型。实验步骤1 内部类与外部类2.异常操作实验结果实现了内部类与外部类的相互调用,访问。了解基本的异常操作。遇到问题及解决方法(1) 在Java中,允许在一个类的内部定义另外一个类,这种类称为嵌套类,分为两个类型:静态嵌套类和非静态嵌套类。(2) 对于那些类定义不嵌套在其他

26、类定义中的类,称为顶层类。(3) 虚拟机错误,装载错误,动态链接错误只能抛出。(4) Exception类是Throwable的一个子类。(5) Try-catch-finally中可以有多个catch,throws只能抛出异常。但是无论是哪一种抛出异常都要执行finally语句。(6) 最低级的子类放在第一个,最高级的超类放在最后则无法计算。(7) 如果该块内的代码没有出现异常,后面的各catch块不起任何作用。(8) Exception这个异类的根类一定要放在最后一个catch里。(9) Finally一般用于释放资源、关闭文件等。-26-实验日期:2015年 11 月 30 日实验题目J

27、ava常用系统类实验内容1字符串类2Math类3Data类与Calendar类实验目的1 字符串类(1) 掌握字符串的建立及初始化方法。(2) 掌握字符串常用方法的使用。2 Math类(1) 掌握Math类常用方法的使用。(2) 掌握Random类常用方法的使用。3 Data类与Calendar类(1) 掌握Data类常用方法的使用。(2) 掌握Calendar类常用方法的使用。实验步骤1 字符串类2 Math类3 Data类与Calendar类实验结果实现了字符串类的调用。实现了Math类的调用。实现了Data类与Calendar类的调用。遇到问题及解决方法(1) String类不是原始的数

28、据类型,在Java中,字符串是一个对象。Java中,字符串是一个对象。Java程序用字符串池管理字符串,建立字符串时,程序在字符串缓冲池中寻找相同值的对象表达式,如果有该字符串时,在字符串缓冲池中不会创建新的字符串值,而是将要创建字符串变量对象指向已有的字符串值。(2) 字符串引用变量s1与s2,s1=s2是判断s1与s2所引用的字符串是否相同,而s1.equal(s2)是判断s1指向的字符串内容是否与s2所指向的字符串内容是否相同。当调用intern方法时,如果字符串池中已经包含一个等于此String对象的字符串(用equals(Object)方法确定),则返回池中的字符串。否则,将此Str

29、ing对象添加到字符到字符池中,并返回此String对象的引用。(3) 进行数学运算时可以考虑用Math类中的方法,产生随机数可以用Math.random()方法也可以使用Random类完成。(4) Date类及Calendar类主要用于日期操作。-29-实验日期:2015年 12 月 04 日实验题目Java IO流操作实验内容1读/写文件2文件和目录管理实验目的1 读/写文件(1) 掌握文本文件的读写方法(2) 掌握随机文件的读写方法。(3) 掌握InputStream、OutputStream抽象类的基本使用。(4) 掌握FileInputStream、FileOutputStream、

30、DataInputStream、DataOutputStream抽象类的基本使用。2 文件和目录管理(1) 掌握文件对象的创建及常用方法。(2) 掌握目录的基本操作方法。实验步骤1.读/写文件2 文件和目录管理实验结果基本掌握了读/写文件的方法。掌握了文件和目录管理的方法。遇到问题及解决方法(1) 字符流和字节流非常的相似,两者除了操作代码上的不同之外,实际上字节流在操作时本身不会用到缓冲区(内容),是文件本身直接操作的,而字节流在操作时使用了缓冲区,通过缓冲区再操作文件。(2) 所有文件在硬盘或在传输时都以字节方式进行的,包括图片等都是按字节的方式存储的,而字符是只有在内存中才会形成的,所以

31、在开发中,字节流使用比较广泛。(3) 对于文件访问主要有顺序和随机两种,可以用File类及RandomAccessFile类实现。-33-实验日期:2015年 12 月 07 日实验题目图形用户界面操作实验内容1常用GUI 界面2布局管理器与事件处理实验目的1 常用GUI 界面(1) 了解Java系统图形用户界面的工作原理和界面设计步骤。(2) 掌握图形用户界面的各种常用组件的使用方法。(3) 掌握图形界面用户界面中的事件处理机制。2 布局管理器与事件处理(1) 掌握GUI各种布局类的使用。(2) 掌握GUI中ActionEvent。实验步骤1 常用GUI 界面2 布局管理器与事件处理实验结果

32、用熟悉的使用常用GUI 界面。熟练的使用布局管理器与事件处理。遇到问题及解决方法(1) 讲解了Swing容器、组件和布局管理器的构造方法和常用方法,以及使用Swing组件创建用户界面过程。在这里,常用容器主要包括JFrame和JPanel。常用Swing组件主要包括JLabel、JTextField、JTextArea、JButton、JCheckBox、JList、JComboBox、JMenu等组件。GUI布局管理器主要包括FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout和BoxLayout 6类。(2) 图形用户界面的操作通常是通过鼠标和键盘操作来实现的。通常一个鼠标或键盘操作会引发一个系统预先定义好的事件,用户程序只需要编制代码,定义每个特定事件发生时程序应作出何种响应即可。-36-实验日期:2015年 12 月 11 日实验题目线程实验内容1利用继承创建线程2利用Runnable接口创建线程实验目的1利用继承创建线程2利用Runnable接口创建线程实验步骤1 利用继承创建线程2 利用Runnable接口创建线程实验结果实现利用继承创建线程。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论