Java实验报告1

一、实验目的

  1. 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
  2. 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;

二、实验内容

简要说明实验内容:

  1. 编写一个类TestPrime,该类有一个int类型的10×10二维数组成员变量,一个int类型的质数个数成员变量,成员方法init: 将二维数组的初始化为1-100,如1-10在第一行,11-20在第二行等;成员方法display:按行输出该二维数组;成员方法getPrimeTotalNumber:得到二维数组中质数的个数;成员方法getPrimeAndPosition:按行输出每个质数及其位置,格式为质数(行号,列号),如质数13(2,3);私有方法isPrime: 判断一个数是否为质数;main方法实现输出二维数组、质数及其位置、质数个数。

  2. v编写一个类ArraySort,该类有一个int类型的一维数组sim的成员变量,和一个setOrder()的成员方法,并有一个带有一个参数的构造方法,该参数将在构造方法中为成员变量数组sim作初始化。方法setOrder()不带参数也不返回值,它将成员变量数组sim的元素从小到大排序。 另有一个类为TestArray,它只有一个main()方法,在该方法中,创建ArraySort类的对象,并用一个int类型的一维数组来实例化这个对象的成员变量数组sim。试调用这个对象的setOrder()方法,并输出其值。

  3. v创建一个类Point,有成员变量x, y,它们都是int类型。该类有四个成员方法setX(int)、setY(int)、getPoint()和movePoint(int,int)。setX(int)和setY(int)方法是设置成员变量x和y的值,getPoint()方法则获得由x, y构成的坐标点,movePoint(int,int)带两个int参数,用来修改x,y构成的坐标点。Point类有一个构造方法,不带参数,为x, y设置原点值。另一个类为TestPoint,有一个main()方法,用来对Point类的实例进行测试。要求为其实例设置(0,0)坐标点,再移动到(10, 20)坐标点上,并输出实例调用相应的方法的结果。

三、实验过程

1. 实验内容1

了解完要做的事情后,就要开始写代码。严格按照实验任务1写出来的代码是:

public class TestPrime {
    int[][] arr;
    int prime=0;
    public void init(){
        arr=new int[10][10];
        for (int i = 0; i < 100; i++) {
            arr[i/10][i%10]=i+1;
        }
    }
    public void display(){
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
    public int getPrimeTotalNumber(){
        return prime;
    }
    public void getPrimeAndPosition(){
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if (isPrime(arr[i][j])){
                    System.out.printf("%d (%d,%d)\n",arr[i][j],i,j);
                    prime++;
                }
            }
        }
    }
    private boolean isPrime(int num){
        if (num==1)
            return false;
        int n= (int)Math.sqrt(num);
        for (int i = 2; i <= n; i++) {
            if (num%i==0)
                return false;
        }
        return true;
    }
    public static void main(String[] args) {
        TestPrime t=new TestPrime();
        t.init();
        t.display();
        t.getPrimeAndPosition();
        System.out.println(t.getPrimeTotalNumber());
    }
}

运行结果(中间结果太长部分没有展示):

image-20240324131205116

image-20240324131246977

2. 实验内容2

根据具体实验任务先编写类ArraySort,按部就班编写完属性和方法后,再编写类TestArray中的main方法调用即可。

public class ArraySort {
    int[] sim;
    public ArraySort(int[] sim){
        this.sim=sim;
    }
    public void setOrder(){
        int n = sim.length;
        for (int i = 0; i < n - 1; i++) {
            boolean key = false;
            for (int j = 0; j < n - i - 1; j++) {
                if (sim[j] > sim[j + 1]) {
                    key = true;
                    int temp = sim[j];
                    sim[j] = sim[j + 1];
                    sim[j + 1] = temp;
                }
            }
            if (!key) {
                break;
            }
        }
    }
}
class TestArray{
    public static void main(String[] args) {
        int[] arr={243,4,55,73,21};
        ArraySort a=new ArraySort(arr);
        for (int j : arr) {
            System.out.print(j + " ");
        }
        System.out.println();
        a.setOrder();
        for (int j : arr) {
            System.out.print(j + " ");
        }
    }
}

运行结果:

image-20240324131058451

3. 实验内容3

依然是根据实验任务的描述来编写代码。

public class Point {
    int x,y;

    public Point(){
        x=0;y=0;
    }
    public void setX(int x){
        this.x=x;
    }

    public void setY(int y) {
        this.y = y;
    }
    public int[] getPoint(){
        return new int[]{x, y};
    }
    public void movePoint(int x,int y){
        setX(x);
        setY(y);
    }
}
class TestPoint{
    public static void main(String[] args) {
        Point p=new Point();
        int[] arr= p.getPoint();
        System.out.printf("坐标点(%d,%d)\n",arr[0],arr[1]);
        p.movePoint(10,20);
        arr=p.getPoint();
        System.out.printf("坐标点(%d,%d)\n",arr[0],arr[1]);
    }
}

运行结果:

image-20240324130946542

四、总结与反思

Java中的类和对象是面向对象编程的核心概念。类定义了对象的属性和方法,是对象的模板;而对象则是类的实例,具有类的所有属性和方法。通过类和对象,我们可以更好地组织和管理代码,提高代码的可读性和可维护性。对于Java这种纯面向对象的编程语言,掌握类与对象的性质显得更为重要。我们应该多加练习,早日熟悉并应用这种方法。

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实验1 Java语言基础 4 一、实验目的 4 二、实验要求 4 三、实验内容 4 (一) 声明不同数据类型的变量 4 (二) 了解变量的使用范围 5 (三) 使用关系运算符和逻辑运算符 5 (四) 使用表达式语句与复合语句 6 (五) 使用选择语句 6 (六) 使用循环语句 8 实验2 面向对象编程 11 一、实验目的 11 二、实验要求 11 三、实验内容 11 (一)创建 Applet 应用小程序 11 (二)创建对象并使用对象 12 (三)编写显示当前日期和时间的程序 13 (四)使用修饰符 14 (五)方法中参数传递 15 (六)的继承性 16 (七)的多态性 18 实验3 包、接口与异常处理 22 一、实验目的 22 二、实验要求 22 三、实验内容 22 (一)了解并使用 Java 的系统包 22 (二)创建并使用自定义包 22 (三)使用接口技术 24 (四)了解异常处理机制 25 实验4 常用系统的使用 27 一、实验目的 27 二、实验要求 27 三、实验内容 27 (一)了解 Applet 的生命周期 27 (二)使用数学函数 28 (三)使用日期 29 实验5 建立图形用户界面 32 一、实验目的 32 二、实验要求 32 三、实验内容 32 (一)创建图形用户界面 32 (二)了解事件处理机制 34 (三)建立独立运行的窗口界面并使用匿名 36 (四)使用 Swing 组件 39 (五)使用自定义对话框与内部 41 实验6 图形处理 44 一、实验目的 44 二、实验要求 44 三、实验内容 44 (一)使用图形 Graphics 44 实验7图形处理(二) 47 一、实验目的 47 二、实验要求 47 三、实验内容 47 (一)幻灯机效果——连续显示多幅图像 47 (二)使用滚动条改变背景颜色 48 (三)Applet 与 Application 合并运行 49 (四)创建电闪雷鸣的动画 50 实验8 流与文件 53 一、实验目的 53 二、实验要求 53 三、实验内容 53 (一)使用标准数据流的应用程序 53 (二)使用文件输入输出流的应用程序 54 (三)使用随机文件的应用程序 54 (四)使用数据输入输出流与文件输入输出流的应用程序 55 (五)使用对象输入输出流的应用程序 56 实验9 线程 58 一、实验目的 58 二、实验要求 58 三、实验内容 58 (一)Thread子的方法实现多线程 58 (二)实现Runnable接口的方法实现多线程 59 实验10 数据库的连接:JDBC 61 一、实验目的 61 二、实验要求 61 三、实验内容 61 (一)配置ODBC数据源 61 (二)编写程序,按照下表的结构建立"student"表 61 (三)编写程序,完成填写功能 62 (四)编写程序,完成查询功能 62

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Forgotten Legend

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值