实验报告课程名称:Java技术学生姓名:学号:专业班级:指导教师:年月日实验一Java开发环境的安装与配置学院信息工程系专业班级姓名学号成绩课程名称Java技术实验项目名称实验一Java开发环境的安装与配置指导教师教师评语教师签名:年月日一、实验目的1.掌握JDK的安装步骤。2.理解环境变量PATH,CLASSPATH的作用,以及它们的设置方法(WinXP、WIN7、WIN8、WIN10、Linux下的不同设置方法)。3.熟悉TextPad(JCreator或Eclipse)编辑环境,编写简单的Application程序,并编译和解释执行。4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。二、实验原理1.源程序编译:使用Eclipse或者Notepad++2.程序编译:使用JDK中的javac工具3.程序运行:使用java工具或者使用Eclipse直接运行4.掌握安装JDK以及环境变量的设置5.在Notepad++环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序6.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。三、使用硬件、软件环境硬件环境:i5-7200U+8G内存+256G硬盘软件环境:Windows10操作系统开发工具:Eclipse四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)1.从下载最新版本的JDK,并安装。(或者用已有文件安装)安装过程:安装Jdk集成环境,安装成功后,配置path,classpath路径,让用户在任何目录下均可用到Java的系统资源①先配置%JAVA_HOME%环境变量,路径为jdk的目录;②配置path环境变量,路径为%JAVA_HOME%\bin;③再配置classpath环境变量路径为;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar2.设置环境变量PATH,CLASSPATH,使得Java程序能正确编译和执行。3.在Textpad(JCreator或Eclipse)环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。实验过程:在Notepad++中写出如下代码,并保存为HelloWorld.java:源代码:publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);}}在命令行中进入到该文件路径,并输入javacHelloWorld.java完成编译,再输入javaHelloWorld完成运行运行结果:4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。实验过程:用Eclipse编写包a包b的程序,并用DOS命令行运行。源代码:A:packagea;publicclassA{publicvoidOUT(){System.out.println(thisisa!);}}B:packageb;importa.*;publicclassB{publicstaticvoidmain(String[]args){Aa=newA();a.OUT();}}运行结果:五、实验结论、分析、思考题与心得体会心得体会通过本次实验,我对于Java的一些基本知识有所了解,下面我将进行总结:1.我学习了如何安装JDK,以及配置JAVA环境2.我学习了使用Notepad++记事本环境下编写Java程序,并使用命令行来编译执行程序3.我学会了在Eclipse环境下编写与运行Java程序。4.我对于Java的一些基本语法与使用有所了解,包括:①文件名必须与public类的类名相同,一个Java应用程序最多只允许有一个public类,并且有且只允许有一个主类,②Java对于大小写敏感,同时支持中文标识符③开发一个Java程序需要经过三个步骤:编写源程序、编译源文件生成字节码、加载运行字节码④在用DOS命令运行包中的Java文件时,要先编译A.Java,再编译B.Java,同时注意运行有包名的主类时,要使用包名.主类名,即javab.B思考题1.什么是JVM,它的作用是什么?JVM是Java虚拟机。它是一个虚构出来的计算机。可在实际的计算机上模拟各种计算机功能。作用:将.class字节码文件编译成机器语言,以便机器识别。2.如何理解PATH和CLASSPATH,如何设置它们。path是系统用来指定可执行文件的完整路径java的各种操作命令是在其安装路径中的bin目录下,所以在path中设置了JDK的安装目录后就不用再把java文件的完整路径写出来了,它会自动去path中设置的路径中去找;classpath是指定你在程序中所使用的类(.class)文件所在的位置在引入一个类时:importjavax.swing.JTable这句话是告诉编译器要引入javax.swing这个包下的JTable类,而classpath就是告诉编译器该到哪里去找到这个类假设JDK安装路径:E:\ProgramFiles\Java\jdk变量名:PATH变量值:E:\ProgramFiles\Java\jdk\bin变量名:CLASSPATH变量值:E:\ProgramFiles\Java\jdk1\lib\tools.jar;E:\ProgramFiles\Java\jdk1\jre\lib\dt.jar实验二类的封装、继承、多态学院信息工程系专业班级姓名学号成绩课程名称Java技术实验项目名称实验二类的封装、继承、多态指导教师教师评语教师签名:年月日一、实验目的1.复习、理解OOP的三大特征——封装、继承和多态。2.学会使用Java编写简单的类。理解类的属性和方法。3.掌握关键字private,protected,public的作用,掌握静态类,内部类的概念。4.掌握多态的概念。二、实验原理1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1)Point2D有两个整型成员变量x,y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。(2)Point2D有一个void型成员方法offset(inta,intb),它可以实现Point2D的平移。(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),两者均可实现对Point3D的成员变量x,y,z的初始化。(4)Point3D有一个void型成员方法offset(inta,intb,intc),该方法可以实现Point3D的平移。(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。2.创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法”,显示数组中存储的对象是什么。提示:java.lang.Math.random()方法或者java.util.Random类三、使用硬件、软件环境硬件环境:i5-7200U+8G内存+256G硬盘软件环境:Windows10操作系统开发工具:Eclipse四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点:(1)Point2D有两个整型成员变量x,y(分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x,y的初始化。(2)Point2D有一个void型成员方法offset(inta,intb),它可以实现Point2D的平移。(3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z(分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),两者均可实现对Point3D的成员变量x,y,z的初始化。(4)Point3D有一个void型成员方法offset(inta,intb,intc),该方法可以实现Point3D的平移。(5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。利用类的继承写一个point2D类,其子类是point3D。子类Point3D的构造函数调用了父类的构造函数;计算平面两点的距离函数和计算空间两点的距离函数写在父类Point2D中,并且他们是静态方法,在子类继承后,在其主方法(主方法是静态的)中可以直接调用(或者通过类名调用);另外平移函数可以对点进行平移源代码:importjava.util.*;importjava.lang.Math;classPoint2D{intX,Y;publicPoint2D(){//无形参的构造方法,一定要有}publicPoint2D(intx,inty){this.X=x;this.Y=y;}publicvoidoffset(inta,intb)//2D平移方法{this.X+=a;this.Y+=b;}publicvoidprintInfo(){System.out.println(X=+this.X+\nY=+this.Y);}publicvoiddistance(Point2Dp){doubleDT=1;DT*=(this.X-p.X)*(this.X-p.X)+(this.Y-p.Y)*(this.Y-p.Y);System.out.println(2D距离:+Math.sqrt(DT));}}classPoint3DextendsPoint2D{intZ;publicPoint3D(){//无形参的构造方法,一定要有}publicPoint3D(intx,inty,intz){this.X=x;this.Y=y;this.Z=z;}Point3D(Point2Dp,intz){this.X=p.X;this.Y=p.Y;this.Z=z;}publicvoidoffset(inta,intb,intc)//3D平移方法{this.X+=a;this.Y+=b;this.Z+=c;}publicvoidprintInfo(){System.out.println(X=+this.X+\nY=+this.Y+\nZ=+this.Z);}publicvoiddistance(Point3Dp){doubleDT=1;DT*=(this.X-p.X)*(this.X-p.X)+(this.Y-p.Y)*(this.Y-p.Y)+(this.Z-p.Z)*(this.Z-p.Z);System.out.println(3D距离:+Math.sqrt(DT));}}publicclassAlex{publicstaticvoidmain(Stringargs[]){System.out.print(*****录入信息*****\n);Scannercin=newScanner(System.in);intx[]=newint[2];inty[]=newint[2];intz[]=newint[2];for(inti=1;i