面向对象——Java实验报告

实验二:Java面向对象(二)

实验二 面向对象(一)

<center>
<strong>姓名:</strong>
<u>XXX</u>
&emsp;&emsp;
<strong>班级:</strong>
<u>XXXXX</u>
&emsp;&emsp;
<strong>学号:</strong>
<u>XXXXXXXXXXXX</u></center>

一、实验目的

在集成开发环境下,运用Java语言的面向对象的特性来实现类的封装、构造方法的定义以及对象的实例化和对象方法的调用。

二、实验目标

(1)能够根据需要解决的实际问题,利用Java语言实现类的定义;

(2)能够熟练运用构造方法来实例化对象以及调用对象的方法。

三、实验内容

3.1 实验环境

IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1

3.2 实验内容

1.定义一个计算机类,要求该类中至少包含3个私有的属性(为每个属性定义设置和获取方法),该类中至少包含两个构造方法(一个无参,一个有参),以及包含2-4个方法来描述计算机对象的行为(其中一个方法要能打印输出计算机对象的所有属性值)。

2.定义一个类,该类中包含以下几个方法(静态):

​ (1) 实现两个字符串数组的逆序排序,输出结果为字符串数组;

​ (2) 求两个整形数组的交集;

​ (3) 求两个浮点型数组的并集;

3.定义一个表示学生信息的类Student,要求如下:

​ (1)类Student的成员变量:

sNO表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。

​ (2)类Student带参数的构造方法:

​ 在构造方法中通过形参完成对成员变量的赋值操作。

​ (3)类Student的方法成员:

getNo():获得学号;

getName():获得姓名;

getSex():获得性别;

getAge():获得年龄;

getJava():获得Java 课程成绩

​ 根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

四、实验过程分析

4.1 实验步骤

1.定义一个计算机类,要求该类中至少包含3个私有的属性(为每个属性定义设置和获取方法),该类中至少包含两个构造方法(一个无参,一个有参),以及包含2-4个方法来描述计算机对象的行为(其中一个方法要能打印输出计算机对象的所有属性值)。

实验代码

class computer {private String cpu;private String price;private String brand;public computer(String cpu, String price, String brand) {this.cpu = cpu;this.price = price;this.brand = brand;}public String getCpu() {return cpu;}public String getPrice() {return price;}public String getBrand() {return brand;}public void setCpu(String cpu) {this.cpu = cpu;}public void setPrice(String price) {this.price = price;}public void setBrand(String brand) {this.brand = brand;}public static void UseCpu() {System.out.println("Cpu --/50%");}public static void compPrice() {System.out.println("价格同比 --/--");}public static void infoBrand(){System.out.println("本机出产于|--|");}public static void infoComupter() {computer C = new computer("AMD", "10K", "lenvon");System.out.println("Cpu:" + C.cpu);System.out.println("Price:" + C.price);System.out.println("品牌:" + C.brand);}
}
public class experimentOne {public static void main(String[] args) {computer.infoComupter();}
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=64564:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\lession\out\production\lession" experimentOne
Cpu:AMD
Price:10K
品牌:lenvonProcess finished with exit code 0

2.定义一个类,该类中包含以下几个方法(静态):

​ (1) 实现字符串数组的逆序排序,输出结果为字符串数组;

​ (2) 求两个整形数组的交集;

​ (3) 求两个浮点型数组的并集;

实验代码

public class experimentTwo {public static void main(String[] args) {Solution.StringReverse();Solution.IntIntersection();Solution.FloatUnion();}
}class Solution {public static void StringReverse() {String originalString="heshangaishutou,shutouyongpiaorou";char[] arry1 = originalString.toCharArray();int i=0,j = (arry1.length)-1;int mid= (arry1.length-1)/2;while(i<mid){char t = arry1[i];arry1[i++]=arry1[j];arry1[j--]=t;}for (int k =0;k< arry1.length;k++){if (arry1[i]==0) break;System.out.print(" "+arry1[k]);}System.out.println();return;}public static void IntIntersection() {int[] num1 = {4,5,6,7,8,9};int[] num2= {1, 2, 3, 4, 5, 6};int[]ans=new int[40];int k=0;for (int i = 0; i < num1.length; i++) {for (int j = 0;j< num2.length; j++) {if (num1[i] == num2[j]) {ans[k++]=num1[i];}}}for (int i =0;i< ans.length;i++){if (ans[i]==0) break;System.out.print(" "+ans[i]);}System.out.println();return;}public static void FloatUnion() {double[] nums1 = {12.5,1.34,1.24,1.36};double[] nums2 = {1.33,1.24,1.36,1.54};double[] ans = new double[50];int f = 0;for (int i = 0; i <nums1.length; i++) {boolean flag=true;for (int j = 0; j<nums2.length; j++) {if (nums1[i] == nums2[j]) {flag= false;break; }}if (flag){ ans[f++]=nums1[i];}}for (int i =0;i<nums2.length;i++){ans[f++]=nums2[i];}for (int i =0;i< ans.length;i++){if (ans[i]==0) break;System.out.print(" "+ans[i]);}System.out.println();return;}
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=50291:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\lession\out\production\lession" experimentTwo
u o r o a i p g n o y u o t u h s , u o t u h s i a g n a h s e h 4 5 612.5 1.34 1.33 1.24 1.36 1.54Process finished with exit code 0

3.定义一个表示学生信息的类Student,要求如下:

​ (1)类Student的成员变量:

sNO表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。

​ (2)类Student带参数的构造方法:

​ 在构造方法中通过形参完成对成员变量的赋值操作。

​ (3)类Student的方法成员:

getNo():获得学号;

getName():获得姓名;

getSex():获得性别;

getAge():获得年龄;

getJava():获得Java 课程成绩

​ 根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。

实验代码

import java.util.ArrayList;
import java.util.List;class Student {private String sNO;private String sName;private String sSex;private String sAge;private double sJava;public Student(String sNO, String sName, String sSex, String sAge, double sJava) {this.sNO = sNO;this.sName = sName;this.sSex = sSex;this.sAge = sAge;this.sJava = sJava;}public String getNo() {return sNO;}public String getsName() {return sName;}public String getsSex() {return sSex;}public double getsJava() {return sJava;}public String getsAge() {return sAge;}
}public class experimentThree {public static void main(String[] args) {Student wang=new Student("20190701","王鹏","♂","17",15.7);Student li = new Student("20190702","李沁","♀","19",17.9);Student zhao =new Student("20190703","赵柯","♀","19",19.34);Student han =new Student("20190704","韩玉","♂","18",17.44);Student xi =new Student("20190703","习语","♀","17",19.88);List<Student> Stu=new ArrayList<>();Stu.add(wang);Stu.add(li);Stu.add(zhao);Stu.add(han);Stu.add(xi);double sum=0.0;double max = 0,min= wang.getsJava();for (var i :Stu){System.out.println("学号:"+i.getNo()+" 姓名:"+i.getsName()+" 性别:"+i.getsSex()+" 年龄:"+i.getsAge()+" java成绩:"+i.getsJava());sum +=i.getsJava();if (max<i.getsJava())max=i.getsJava();else if (min> i.getsJava())min = i.getsJava();}System.out.println("平均成绩:"+sum/5+" 最高成绩:"+max+" 最低成绩"+min);}
}

结果输出

C:\Users\a\.jdks\openjdk-16.0.1\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\lib\idea_rt.jar=53634:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\a\Documents\Tencent Files\lession\out\production\lession" experimentThree
学号:20190701 姓名:王鹏 性别:♂ 年龄:17 java成绩:15.7
学号:20190702 姓名:李沁 性别:♀ 年龄:19 java成绩:17.9
学号:20190703 姓名:赵柯 性别:♀ 年龄:19 java成绩:19.34
学号:20190704 姓名:韩玉 性别:♂ 年龄:18 java成绩:17.44
学号:20190703 姓名:习语 性别:♀ 年龄:17 java成绩:19.88
平均成绩:18.052 最高成绩:19.88 最低成绩15.7Process finished with exit code 0

4.2 错误分析

错误情况

在第二题输出时,输出结果与预期不符且相差较大。如下图所示:
<img src=“https://img-blog.csdnimg.cn/717b7ea6fbc44747985b9142a583d54a.png” alt="" />
预期结果如下:
<img src=“https://img-blog.csdnimg.cn/b26636f472034b63b8ed82c088d9b5e3.png” alt="" />

解决方案

经过反复查找与调试,发现罪魁祸首是因为在输出语句中的' ' 导致的输出失常; 因此调整代码的输出语句,将所有的' '改换为" "

五、个人总结

在本次实验中我顺利的完成了实验任务,并在实验的过程中经过调试找出了问题所在。通过本次实验,经过问题思考与问题解决的规划,对实验的完成有较大的帮助,同时在实验的过程中也加深了对于已有知识点的理解与运用,虽不能融会贯通但也不至于纸上谈兵,这也算本次实验中较大的收获之一。在本次实验的过程中当然也离不开同学的相互交流,当然,对实验题目的理解出现偏差时也需要及时向老师寻求帮助,以免因为错误的理解方向,导致产生的错误结果但是自己不知道的情况。在部分题目中通过借鉴网上同类题目的解题思路对理解题目与解决题目也同样具有极大的帮助,积极的汲取知识将会对学习产生很大影响,不同的正确解题思路也会碰撞出不一样的火花。

实验二 面向对象(一)相关推荐

  1. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  2. 实验二 面向对象(一)(预习报告)

    面向对象--Java实验报告 实验二:Java面向对象(二) 实验二 面向对象(一)(预习报告) <center> <strong>姓名:</strong> < ...

  3. JAVA实验二 面向对象程序设计

    一.实验目的 通过编程和上机实验,掌握类和构造方法的定义及创建对象的方法,掌握类的封装及继承原则,正确使用重载和覆盖等多态概念设计可复用方法,熟悉包.接口的使用方法,掌握面向对象的程序设计方法. 二. ...

  4. 熟悉java环境实验报告_2018-2019-2 20175324实验二面向对象程序设计《Java开发环境的熟悉》实验报告...

    面向对象程序设计-3 实验要求: 参考>http://www.cnblogs.com/rocedu/p/6736847.html 对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理 ...

  5. 实验二 面向对象程序设计

    一.实验目的 1.掌握类的声明.对象的创建. 2.掌握方法的定义和调用.方法的重载. 3.掌握构造函数的使用. 4.掌握类的继承.掌握隐藏与重写(覆盖). 5.掌握抽象类与接口. 二.实验内容 1. ...

  6. java实验报告系统分析怎么写_20155218 《Java程序设计》实验二(Java面向对象程序设计)实验报告...

    20155218 <Java程序设计>实验二(Java面向对象程序设计)实验报告 一.实验内容及步骤 (一)单元测试 主要学习安装和使用junit来测试编写的程序,并学习以TDD(Test ...

  7. java面向对象程序基础实验_20165115 实验二《Java面向对象程序设计》实验报告

    20165115 实验二 面向对象程序设计 这一次的实验,老师按照实验内容的不同将实验分成了五个部分进行.五个部分的侧重难易都有区别,实验报告中的叙述也会有所区别. 第一部分 先上实验结果截图: 这一 ...

  8. 20172310 《程序设计与数据结构》实验二报告

    20172310 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172310 实验教师:王志 ...

  9. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

最新文章

  1. js填充select下拉框并选择默认值
  2. 分库分表:如何做到永不迁移数据和避免热点?
  3. 嵌入式MVN指令解析
  4. Spring Cloud-Honghu Cloud分布式微服务云系统(一)
  5. 今年,就没有一款能打的5G旗舰机吗?
  6. Shell脚本基本命令4
  7. Python Django 配置404和500错误页面
  8. 比新iPhone好看多了!华为Mate 30系列机型外观曝光
  9. 4安全框_压花玻璃与安全玻璃有哪些特点?玻璃隔断的介绍
  10. redis连接数据库进行操作
  11. 大学报到前最后的技术——VMware探究
  12. 通过matlab语言来实现对硬币的计数问题
  13. vue 文字无缝滚动_vue文字横向滚动公告
  14. 创新实践 | SaaS增长新趋势:产品驱动增长PLG(下)
  15. Find My资讯|苹果AirTag再立功破案,Find My对物品丢失say no
  16. iOS keyChain 研究
  17. python函数大全书籍京东_用python爬取京东图书排行榜并进行数据整合
  18. 纯CSS实现抖音3D酷炫旋转相册
  19. 【移动开发】View的scrollTo()和scrollBy()区别
  20. 互联网公司的年会也太太太刺激了吧!

热门文章

  1. css 文本超出显示省略号不起作用
  2. 单模光纤最大传输距离为多少_单模光纤的最长传输距离是多少?单模光纤和多模光纤的区别在于什么?...
  3. FPGA-10:设计个简单的cpu(真的简单!)
  4. 3451. 易位构词
  5. 如何让BERT拥有视觉感知能力?两种方式将视频信息注入BERT
  6. AI元宇宙敲门砖【3.2】:太好听了吧,和AI一起唱,一起做虚拟偶像
  7. magento 获取自定义产品属性和属性值
  8. dva 底层框架构建
  9. nodejs之简单的爬数据
  10. NavMesh基础使用