OOP第四次到第六次作业总结

Posted BuliBuli-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OOP第四次到第六次作业总结相关的知识,希望对你有一定的参考价值。

OOP第四次到第六次作业总结

前言:

前三次oop训练集的题目量不多,前三次题量总计25题,难度也是旨在让我们从易到难来理解,自学java的语法,所以难度适中。
第一次OPP训练集:
第一次训练集集中于让我们熟悉java的语法,很多题目其实都用C语言写过了,难度不是很大。
第二次OPP训练集:
第二次训练集主要集中训练我们的逻辑思维,其中的大量题目都要运用各种判断来解题。
第三次OOP训练集:
-第一次训练集主要考察类的创建和规范,其中7-3,7-4两题难度相对其他题目要难一些,但是7-3的代码可以用在7-4上,可以检验你的代码是否可以重复利用,是否有可持续性。

第一次OOP训练:

7-7 有重复的数据

设计与分析:

设计
将整数存入数组,在将数组从小到大排序,在用循环比对相邻的两个数,如果相同则输出NO,如果比对到最后则输出YES
分析
一开始我写的是将数组中的整数与这个数前的所有数比对,后来发现运行超时,所以这种暴力比对是不行的,后来改用排序后。只要比对相邻两数就可以了,大大减少时间复杂度。

具体代码

点击展开查看代码

生成报表

踩坑心得

改进建议

设计与分析:

设计
分析

具体代码

点击展开查看代码

生成报表

踩坑心得

改进建议

这题一样,书写不规范,可读性很低,不利于后期的改进和持续性开发。这题也可以与上一题写进一个关于数组的去重的类中,做到持续开发完善。

第二次OOP训练集:

7-8 判断三角形类型

设计与分析:

设计
将输入的三条边先进行合法判断,在进行各种三角型的逻辑判断
分析
三角形类型判断就要运用好勾股定理,并且有的三角形有着包含关系,就像等腰直角三角型包含在等腰三角型中,要合理的减少代码量,做到简洁,可读。

具体代码

点击展开查看代码

生成报表

踩坑心得

改进建议

7-9 求下一天

设计与分析:

设计
分析

具体代码

点击展开查看代码

生成报表

踩坑心得

改进建议

第三次OOP训练集:

7-3 定义日期类

设计与分析:

类图:

分析

具体代码

点击展开查看代码


生成报表

踩坑心得

改进建议

7-4 日期类设计

设计与分析:

类图:

分析

具体代码

点击展开查看代码


生成报表

踩坑心得:

改进建议

总结:

第六次学习总结&&第四次实验总结

Java实验报告

班级 1班 学号 20188390 姓名 宋志豪

实验四 类的继承

1.实验目的
(1)掌握类的继承方法;
(2)变量的继承和覆盖,方法的继承、重载和覆盖实现;
2.实验内容
技术图片

实验代码

package 继承;

import java.io.InputStream;
import java.util.Scanner;

class Circle
    private double radius;
    public Circle() 
        this.radius=0;
    
    public Circle(double radius) 
        this.radius=radius;
    
    public double getRadius() 
        return radius;
    
    public double getPerimeter() 
        return Math.PI*2*this.radius;
    
    public double getArea() 
        return Math.PI*Math.pow(this.radius, 2);
    
    public void disp() 
        System.out.println("圆的半径:"+this.radius+"\\n圆的周长:"+this.getPerimeter()+"\\n圆的面积:"+this.getArea());
    


    public class Cylinder extends Circle
        private double height;
        
    public Cylinder(double 半径,double 高) 
        super(半径);
        this.height=高;
    
    public double getHeight() 
        return height;
    
    public double getVol() 
        return getArea()*this.height;
    
    public void dispVol() 
        System.out.println(getVol());
    
    
    public static void main(String[] args) 
        Scanner input=new Scanner (System.in);
        Cylinder cylinder=new Cylinder(input.nextDouble(),input.nextDouble());
        System.out.println(cylinder.getVol());
    

实验结果

技术图片

出现了一个问题:使用 Scanner input=new Scanner(System.in); 错误提示说 Scanner无法解析为类型
原因是没有导入这个类, 因为前面使用了import java.io.InputStream;这个类,所以一时疏忽忘记了。

实验心得

在写这个题的时候,发现它的基础算法与以前的长方形问题大同小异,难点在于继承这个新知识的使用,使用时非常的难以理解,要看着软件里的警告和问题提示一点一点改正,看不懂的知识还要上网搜索。

学习总结

老师上课没有上新内容,讲解了以前的题目,加深了我们对以前学的知识的印象。
不过,老师上课的时候提到了两个思考题,上周第一节课是猫类和狗类的判断吧,记得不是很清楚;第二个就是说判断传进来的参数是否是猫的子类或者是猫的实例,我们寝室讨论的结果是使用if语句,用instanceof关键字来判断传进来的参数是否是猫的子类或者是猫的实例。

自己对学习的看法

上课的内容的跨度比较大,一节课学习的内容比较多,不提前进行预习是很难跟得上老师的进度。
以后可以在PTA上找出比较适合自己实力的题目去拓展自己,不过要等到我能熟练的使用我所学的知识,加油!!!

以上是关于OOP第四次到第六次作业总结的主要内容,如果未能解决你的问题,请参考以下文章

OOP第四到第六次训练总结

OOP学习的第二次BLOG

第六次学习总结&&第四次实验总结

第五次个人作业:个人总结

OOP第四次作业(第一次总结)

团队作业4——第一次项目冲刺总结