免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计实验报告Java实验一Java开发环境的安装与配置一. 实验目的1. 掌握JDK的安装步骤(有条件的话可以在Unix系统下安装)。2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法(Win98和Win2000/XP下的不同设置方法)。3. 熟悉TextPad编辑环境,编写简单的Application程序,并编译和解释执行。4. 记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。二. 实验内容1从 上下载最新版本的JDK,并安装。2设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 实验截图如下: 3 在 Textpad环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。 代码:public class ch1ex1 public static void main(Stringargs) System.out.println(I like Java very much);运行截图:4理解编译和执行过程中的错误信息,并给出相应的解决办法。三思考题 1.什么是JVM,它的作用是什么? JVM即Java虚拟机。Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。Java源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被Java虚拟机识别的一种机器码指令。这是Java语言与一般操作平台的不同。2.如何理解PATH和CLASSPATH,,如何设置它们。 PATH和CLASSPATH分别是Java JDK和JRE的路径。设置方法见实验内 容二。3.写出HelloWorld.java的编译和执行语句。编译语句:javac.ch1ex1.java运行语句: java ch1ex1Java实验二类的封装、继承、多态一. 实验目的1. 复习、理解OOP的三大特征封装、继承和多态。2. 学会使用Java编写简单的类。理解类的属性和方法。3掌握关键字private, protected, public的作用,掌握静态类,内部类的概念。4. 掌握多态的概念。 二. 实验内容 2.1程序要求1 分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:(1) Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。(2) Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。(3) Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。(4) Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D的平移。(5) 在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。 提示:java.lang.Math.sqrt()方法2 创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法”,显示数组中存储的对象是什么。 提示:java.lang.Math.random()方法 或者 java.util.Random类 2.2 设计工作 设计思路: 构造Point 2D类,私有成员x,y存放2D点位置坐标,构造函数传入坐标值。Offset()函数平移2D点,get_x(),get_y()分别返回x,y坐标。Print()函数打印2D点坐标。再构造继承了2D类的Point3D类,将上述2D点函数覆盖扩充到3D。创建Point 2D的对象数组,存放随机产生的Point 2D或Point 3D对象。用 java.util.Random方法产生随机数。 类图: class Point2Dprotected int x,y;Point2D(int X,int Y)x=X;y=Y;void offset(int a,int b)x+=a;y+=b; int get_x()return x;int get_y()return y;void print()System.out.println(坐标为:+this.get_x()+ +this.get_y(); Point 2D 代码:Point 3D代码:class Point3D extends Point2Dint z;Point3D(int X,int Y,int Z)super(X,Y);z=Z;Point3D(Point2D p,int Z)super(p.x,p.y);z=Z;void offset(int a,int b,int c)x+=a;y+=b;z+=c; int get_z()return z;void print()System.out.println(坐标为:+this.get_x()+ +this.get_y()+ +this.get_z();三. 思考题1 什么是类的多态性。 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。 编译时的多态性:编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。 运行时的多态性:运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。四程序代码/* * Point3D继承Point2D,实例化两个2D、两个3D点,并随机打印2D或3D点 * */import java.util.Scanner;class Point2Dprotected int x,y;Point2D(int X,int Y)x=X;y=Y;void offset(int a,int b)x+=a;y+=b; int get_x()return x; int get_y()return y;void print()System.out.println(坐标为:+this.get_x()+ +this.get_y();class Point3D extends Point2Dint z;Point3D(int X,int Y,int Z)super(X,Y);z=Z;void offset(int a,int b,int c)x+=a;y+=b;z+=c; int get_z()return z; 13void print()System.out.println(坐标为:+this.get_x()+ +this.get_y()+ +this.get_z();public class T1public static void main(Stringargs)int x,y,z;float d;int i;Scanner s = new Scanner(System.in);System.out.println(输入X1_2D,Y1_2D);x=s.nextInt();y=s.nextInt();Point2D p2d1=new Point2D(x,y);System.out.println(输入X2_2D,Y2_2D);x=s.nextInt();y=s.nextInt();Point2D p2d2=new Point2D(x,y);System.out.println(输入X1_3D,Y1_3D,Z1_3D);x=s.nextInt();y=s.nextInt();z=s.nextInt();Point3D p3d1=new Point3D(x,y,z);System.out.println(输入X2_3D,Y2_3D,Z2_3D);x=s.nextInt();y=s.nextInt();z=s.nextInt();Point3D p3d2=new Point3D(x,y,z);d=(float)Math.sqrt(p2d1.get_x()-p2d2.get_x()*(p2d1.get_x()-p2d2.get_x()+(p2d1.get_y()-p2d2.get_y()*(p2d1.get_y()-p2d2.get_y();System.out.println(2D点距离:+d); d=(float)Math.sqrt(p3d1.get_x()-p3d2.get_x()*(p3d1.get_x()-p3d2.get_x()+(p3d1.get_y()-p3d2.get_y()*(p3d1.get_y()-p3d2.get_y()+(p3d1.get_z()-p3d2.get_z()*(p3d1.get_z()-p3d2.get_z();System.out.println(3D点距离:+d); Point2D array=new Point2D10;for(i=0;i5)Point3D p=new Point3D(int)(10*Math.random(), (int)(10*Math.random(),(int)(10*Math.random();arrayi=p;else Point2D p=new Point2D(int)(10*Math.random(), (int)(10*Math.random(); arrayi=p; for(i=0;i10;i+)System.out.print(第+(i+1)+个点);arrayi.print();Java实验三图形用户界面编程一实验目的1学习编写带有图形化界面的程序。1 掌握JFrame、JLabel、JTextField、JButton和JPanel等组件的使用方法。2 掌握事件处理的方法。3 掌握常用的布局管理器。2 实验内容 2.1 程序要求1设计一个简单的图形化界面计算器程序,实现两个实数的四则运算。2创建2个文本字段,用于输入操作数;创建1个不可编辑的文本字段,用于输出运算结果;创建4个按钮,用于输入运算符。3对按钮出发动作进行处理。4将前面创建的组建添加到框架中,合理布局,给文本字段加上说明。 22.2 设计工作 界面设计:在panel上添加四个按钮,分别为+、-、*、/、=,再添加两个文本框分别输入和输出算式和结果。监听器监听按钮动作和回车操作。 部分类图: 三思考题1AWT和Swing布局管理器和事件处理机制是什么样的?常用的布局管理器有:流布局,网格布局,卡片布局,边界布局,网格包布局。处理事件的机制:主要包含事件源,监听器,事件三部分。事件源一旦触发事件,系统便将事件的相关信息封装成对应类型的事件对象,并将事件对象发送给相应的监听器对象,监听器对象便能访问事件对象,对事件对象中的信息作出响应,执行相应的事件处理方法。四程序代码import java.awt.*;import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class T2 public static void main(String args) CaculatorFrame cframe=new CaculatorFrame();cframe.setVisible(true);class CaculatorFrame extends JFrameCaculatorFrame()setTitle(简易计算器);Container con=getContentPane();CaculatorPanel panel=new CaculatorPanel();con.add(panel);pack(); addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class CaculatorPanel extends JPanelJLabel display=null;JPanel panel=null;double result;String command;boolean start;public CaculatorPanel()setLayout(new BorderLayout();result=0;command=;start=true;display=new JLabel();display.setText(0);TextField tfPort1;add(display,BorderLayout.NORTH);ActionListener in=new CaculatorAction1();ActionListener ca=new CaculatorAction2();panel=new JPanel();addButton(/,ca);addButton(*,ca);addButton(-,ca);addButton(+,ca);addButton(=,ca);addText(shuru,in);addText(shuru,in);add(panel,BorderLayout.CENTER);private void addButton(String label,ActionListener list)JButton button=new JButton(label);button.addActionListener(list);panel.add(button);private void addText(String label,ActionListener list)TextField addText=new TextField(,10);addText.addActionListener(list);panel.add(addText);cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农贸市场智能检测设备
- 商超智慧安全管理系统
- 某涂料厂产品研发管理制度
- 非遗剪纸进校园:传统文化传承的实践与创新
- AI在林业中的应用
- 某石油化工厂危险品管理准则
- 2026年人工智能生成图像的著作权归属研究
- 公司成员酒店组织机构
- 仓储管理试题及答案
- 卫生培训签到记录表
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 2026年考研数学一模拟单套试卷(含解析)
- 旅馆防偷拍工作制度
- 2026贵州贵阳市信昌融合实业发展有限公司招聘16人笔试备考试题及答案解析
- 2026年四川发展控股有限责任公司校园招聘笔试参考题库及答案解析
- 2026年辽宁省公务员省考《行政职业能力测验》真题解析
- TCCIIA 0004-2024 精细化工产品 分类
- 突发事件创伤伤员医疗救治规范2025年版
- 第25讲-理解为王:化学反应原理综合题解法策略
评论
0/150
提交评论