OO(Java)程序设计第一阶段作业总结

前言

      第一次通过写博客来记录学习情况,本次博客主要针对学习Java以来的三次大作业进行一个总结,同时记录一些自己学习Java的感受以及对OO(Java)设计的心得。

作业过程总结

      1:总结三次作业之间的知识迭代关系

            第一次作业最简单,Java程序的循环选择等语句与C语言基本无异,对于学习过C语言的我来说没什么难度。本次作业主要是让我认识到Java程序的结构框架,同时学会如何在PTA上面通过Java的语句实现输入以及class名必须为Main,为第二次的大作业打下基础。

import java.util.Scanner;
public class Main
{
    public static void main(String[] args)
    {

        Scanner sc=new Scanner(System.in);       //通过该语句输入
        double a=sc.nextDouble();
        sc.close();
    }

}

            第二次作业引进了Java中的方法,类似于C语言中的函数,每一个方法都实现一部分功能,通过new操作符定义一个对象就可以调用方法。本次作业相对第一次增加了类的使用,更进一步让我认识到了相对与C语言的注重过程不同,Java程序更注重于面向对象设计。

public static void main(String[] args);//主方法;
public static boolean isLeapYear(int year) ;
public static int numOfDays(int year,int month ,int day) ;
public static String getWhatDay(int days) ; 

            第三次作业则强调了Java程序类的使用,一个Java程序可以有多个类,并且类与类之间可以通过new操作符相互调用。但需要注意的是,一个Java程序只能有一个public类,否则会出现错误。写完了第三次作业对于Java也有了一个初步的认识,在Java程序中对象尤为重要,方法与类都通过对象来实现调用,虽然还不是特别理解Java程序的类的构造与调用,但却知道Java 是一门完全面向对象编程的语言,所以必须熟悉面向对象才能够编写 Java 程序。

public class Main{
}
class DateUtil{
public DateUtil(int year, int month, int day) {}
    public int getDaysofDates(DateUtil toDate) {}
    public DateUtil getPreviousNDays(int n) {}
    public DateUtil getNextNDays(int m2) {}
    public  String  showDate() {}
    public int getDay() {}
    public int getMonth() {}
    public int getYear() {}
    public boolean checkInputValidity() {}
}

      2:如何通过作业逐步从面向过程过渡到面向对象

            三次作业的难度是一次次增加的,第一次题目主要是通过面向过程来进行解题,内容简单且没有涉及太多Java独有的特性。第二次作业则涉及到了Java中的方法,与C语言中的函数类似,更加强调程序的封装性,已经渐渐向面向对象靠拢。第三次则涉及到了Java独有的类属性,面向对象的属性已经渐渐明显。正是通过三次作业的难度不断提升,也使得程序从面向过程过渡到面向对象

      3:作业过程中遇到的问题及解决方法

            问题1:如何在PTA上面编写代码以及如何进行输入。解决方法:通过百度了解到在PTA上提交代码需要把class类名改为Main,其次在PTA上需要通过import java.util.Scanner和Scanner sc=new Scanner(System.in)来输入测试数据。

            问题2:不知道如何调用其他类并将输入数据供其他类使用。解决方法:通过new操作符定义一个类的对象,通过对象调用该类。其次通过this建立

private变量。
class DateUtil{

    private int year;
    private int month;
    private int day;

    public DateUtil(int year, int month, int day) {
        this.year=year;
        this.month=month;
        this.day=day;
    }
}

      4:每次作业花费的时间比例

            时间比约为:第一次作业:第二次作业:第三次作业=1:3:9

      5:对编程过程的严谨性的认识及教训

            编程过程的严谨性不仅能够加快程序的完成速度,而且最重要的是能够让你的程序有结构有条理。这一点非常主要,尤其是在PTA上写作业时,常常提交后的结果不是答案正确,而是部分正确,这也就意味着程序有Bug需要你去把他找出来。如果你的程序没有条理,找Bug就需要从头找到尾非常繁琐,而如果写代码的时候严谨一些,找Bug的时候也能够大致判断错误在哪里,可以节省大量时间。

            教训:PTA上找Bug的时候就因为写代码时不够严谨代码太乱 ,导致找Bug的时间比写代码时间还要多。

OO设计心得

      1:面向过程与面向对象的比较

            面向过程注重过程,通过面向过程解决问题需要思考的问题是解题步骤,通过一个个函数实现一个个步骤,解决问题也就是通过一个个函数的调用。

            面向对象注重对象,通过面向对象解决问题需要分离出一个个的对象,再赋予这些对象它们应该具备的属性和方法,解决问题就是让这些对象去执行它们的方法。

      2:面向对象设计的基本原则理解

            最重要的一条原则:单一功能原则,即每个对象应仅具有一种单一功能。该原则的目的就是为了在某个需求变动时,修改有变更需求对应的功能对象就可以,而不用更改太多代码。

      3:OO编程思维的理解

            面向对象编程是从面向过程发展而来,在解决一些繁琐的问题时面向对象思维能够化繁为简,各个对象各司其职,能够更快更好的提出解决方案。

测试的理解与实践

      1:测试对于编码质量的重要性

            测试就像是工厂里面的质检员,它检验程序是否合格。不经过测试的代码一定是有Bug的,没有谁能够一次性创造出完美无瑕的程序。只有经过不断的测试,代码才能不断的变得更完美。

      2:假如让你设计测试用例,你会如何做

            首先测试一些错误的用例(边界值),其次测试一些特殊用例(例如闰年的2月29日或者输入数据为0),最后输入正常的测试数据进行测试。

课程收获

            初学Java,初次了解面向对象设计。刚开始自己还停留在C语言的面向过程设计代码,虽然也能够写出程序,但也应该开始转变写程序的思路。学习了四周也了解到了很多关于Java的知识,很开心又学会了一门新的编程语言。

对课程的建议

            学习编程就应该多练,不然进步很缓慢。建议老师多多增加一些课堂作业与PTA上的作业。其次老师可以经常推荐一些好的学习资源,毕竟Java这类课程课堂上不一定能学到很多,更多的在于学生的自觉去课外自学。

            

            

            

猜你喜欢

转载自www.cnblogs.com/lx2001/p/12632475.html