文章目录

  • 实验题目
  • 一、实验目的
  • 二、实验原理
  • 三、实验代码
    • 1、代码思路
    • 2、具体代码
  • 四、实验总结

实验题目


一、实验目的

1.掌握Java语言的基本语法,掌握基本数据类型的使用方法;熟练使用分支、循环等语句控制程序流程;掌握数组类型的生命和动态内存申请,理解数组的引用模型;掌握方法声明和调用规则,掌握基本类型和引用类型作为方法参数和返回值的传递规则;掌握String类中的方法,熟练使用对字符串变量进行的操作。
2.掌握在Eclipse继承开发环境中编辑、编译、运行和调试程序的操作;掌握使用命令行参数作为输入数据的方法;熟悉程序调试技术,查看程序过程中的变量值,找出程序错误位置和出错原因。
3.掌握类的声明格式和多种封装措施,理解对象的引用模型;掌握类的继承原则,正确使用重载和覆盖等多态概念设计可复用方法,理解运行时多态性概念;掌握声明抽象类和最终类的方法,理解抽象类和最终类的作用。
4.掌握在Eclipse集成开发环境中,通过设置编译路径引用其他项目中声明的类。
5.理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口、一个类实现多个接口的声明和使用方法;理解内嵌类型的概念,掌握声明内部类的方法;理解Java包的概念和作用,熟悉Java语言包和使用包中的常用类。

二、实验原理

在程序设计中,函数(function)是实现特定功能的、可被调用执行并能返回值的程序段。函数包括函数声明和函数体。函数声明定义函数名、形式参数列表及返回值类型;函数体由执行操作的语句序列组成。函数执行通过函数调用实现。函数调用时必须制定函数名称和实际参数列表,函数执行后返回结果值。函数返回值可以参加其数据类型允许的运算。
一个类中如果有多个同名方法但带有不同的参数列表,成为方法重载。重载方法的参数列表不同是指参数的数据类型或个数或次序不同。重载方法之间必须以参数列表相区别,不能以返回值相区别,即不能有两个参数列表相同但返回值不同的重载方法。
接口是一组抽象方法、常量和内嵌类型的集合。接口是一种数据类型,采用抽象形式来描述约定,因此接口只有被类实现后才有意义。接口提供方法声明与方法实现相分离的机制,使得接口中声明的抽象方法能够在实现接口的类中表现运行时多态。
关键字implements用于声明一个类实现多个指定接口。
非抽象类如果声明实现多个接口,则它必须实现覆盖所有指定接口中的所有抽象方法,方法的参数列表必须相同,否则必须声明为抽象类。
类所继承的父类以及所实现的全部接口被称为它的父类型,反之,该类就是其父类型的子类型,接口也是其继承的全部父接口的子类型。子类型包含其父类型的全部属性和功能,子类型对象即父类型对象。因此,父类型对象可引用子类实例。

三、实验代码

1、代码思路

1.随机生成函数 RandomArray(int n, int max)
先定义函数RandomArray,使用new对数组分配存储空间,当n>0时,每次循环都使用JAVA的Math库中的random随机生成一个数,利用–n,当n<=0时跳出循环,返回x引用的数组。
2.判断函数 CheckOrder()
定义int型判断函数CheckOrder,比较n-1次,当任意一次的比较中前一个数比后一个数大,数组的排列方式就不是升序排列,返回0;当所有次数比较完毕,前一个数都比后一个数小,即升序排列方式,返回1。
3.数组和函数 Sum()
定义int型数组和函数,先给sum赋初值为0,而后进入循环,当循环次数<数组长度时,sum累加求数组所有元素的和;否则循环结束,跳出循环,返回sum的值。
4.判断某个元素函数 CheckKey()
首先定义int型元素函数 CheckKey(),从数组的第0个数开始比较是否和Key相等,相等返回1;当循环完毕,未找到和Key相等的数,返回0。
5.编写 main 函数,调用测试以上功能;
在main函数中调用函数一:调用RandomArray函数随机生成数组arr,利用for循环输出数组。
在main函数中调用函数二:利用println直接输出CheckOrder的返回值
在main函数中调用函数三:利用println直接输出sum的返回值
在main函数中调用函数四:利用println直接输出CheckKey的返回值

2、具体代码

package shiyan1;public class shuzu1
{public static int[] RandomArray(int n,int max)
{int[]x=new int[n];while(n>0)x[--n] = (int)(Math.random()*max);return x;
}public static int CheckOrder(int[] x,int n)
{for(int i=0;i<n-1;i++){if(x[i]>x[i+1])return 0;}return 1;
}public static int sum (int[] x)
{int sum = 0;for(int i=0;i<x.length;i++){sum+=x[i];}return sum;
}public static int CheckKey(int[]x,int n,int Key)
{for(int i=0;i<n;i++){if(x[i]==Key)return 1;}return 0;
}public static void main(String[] args)
{int []arr = RandomArray(5, 10);int i = 0;int Key = 5;for (i = 0; i < arr.length; i++) {System.out.println(arr[i]);}System.out.println("\n");System.out.println(CheckOrder(arr,i));System.out.println(sum(arr));System.out.println(CheckKey(arr,i,Key));
}
}

调试结果如下图。


四、实验总结

通过本次实验,我掌握了类、接口、方法等概念,在Eclipse继承开发环境中编辑、编译、运行和调试程序、设置断点一步步观察程序运行及debug的操作并对其运用有了更深入的学习。本次题目锻炼了我的查阅资料的能力及编程能力,收获颇多。在使用Eclipse编程时经常出现bug,经过查阅资料等都将其更正。

JAVA实验一——数组类编程相关推荐

  1. 20165310 Java实验五《网络编程与安全》

    20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

  2. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  3. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  4. java实验7 常用类的使用

    实验七  常用类的使用 实验目的 1. 了解类库的概念及API的使用方法. 2. 掌握常用类的使用方法. 实验学时 2学时 实验内容 1. 输入两个字符串str1.str2,统计字符串str2出现在s ...

  5. java自定义一个数组类(封装多种方法)

    一.自定义数组类的动机 java给定的数组为静态的,我们是无法对齐进行灵活的操作,比如指定位置添加元素,删除元素,判断是否非空等,于是我们便需要利用"面向对象"的设计模式,自定义一 ...

  6. Java实验——定义一个类,该类中包含以下几个方法(静态):实现两个字符串数组的逆序排序,输出结果为字符串数组;求两个整形数组的交集;求两个浮点型数组的并集;

    目录 一.实现两个字符串数组的逆序排序,输出结果为字符串数组 解题思路: 具体代码: 运行截图: 二.求两个整形数组的交集 具体代码: 运行截图: 三.求两个浮点型数组的并集 解题思路: 具体代码: ...

  7. java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口

    数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...

  8. java实验二:类与对象

    类与对象编程练习 一.学生信息处理 二.用类描述计算机中CPU的速度和硬盘的容量 三.共饮同井水 四.正n边形 五.分析程序,给出运行结果 1.程序一 2.程序二 3.程序三 六.程序纠错 1.程序一 ...

  9. java实验报告——雇员类

    实验报告 (1)设计一个雇员类,属性包括:编号.姓名.年龄.职务.部门.出勤人数:方法包括:构造方法.输出信息的方法.签到方法: (2)创建雇员类对象,统计雇员的出勤人数. 注意考虑属性和方法的访问权 ...

最新文章

  1. redis php 守护进程,PHP守护进程利用Redis队列实现业务
  2. 【机器学习】特征提取代码汇总
  3. 驱动级的自动按键_茶陵定做自动伸缩门定制,防火门厂家直销-湖南富扬门窗
  4. linux快速统计目录大小,linux下统计文件夹、文件的大小--du
  5. 矩阵的秩与行列式的几何意义
  6. springboot之idea无法添加包
  7. Telnet基本概念及C# Telnet 客户端程序
  8. [蛋蛋四格漫画]-贺沪江日语四周年版庆
  9. Syncthing:开源 P2P 文件同步工具
  10. colab挂载谷歌云盘出错
  11. MATLBA官方给出的2D Allen-Cahn Matlab代码分析
  12. 一文读懂汽车功能安全
  13. 某cpws - ciphertext加密与数据解密
  14. k-最近邻聚类k-Nearest Neighbor
  15. 基于Python热点新闻关键词数据分析系统
  16. CIM技术,构建数字孪生的智慧城市
  17. Java的同步锁和同步方法(synchronized)
  18. 容器与容器云——kubernetes概述
  19. GM7123视频编码电路:TTL转VGA,替换SDA7123转换芯片
  20. 反向比例运算电路微分关系_20个经典模拟电路,你能记住几个?

热门文章

  1. Angular sort recursive的实现原理
  2. scn exercise view.setModel will trigger binding creation in Fiori
  3. CRM呼叫中心异步搜索实现的调试截图
  4. 如何处理Marketing Cloud OData服务的错误消息
  5. GTADIR check object exist in another system
  6. deletion in request load scenario
  7. IPM: Mass IP generation can only support 99 numbers of IP at maximum
  8. 给nodejs应用的package.json添加Redis服务的依赖
  9. SAP S/4HANA extensibility扩展原理介绍
  10. S/4HANA和CRM Fiori应用的搜索分页实现