PTA作业总结

前言

本次博客是对PTA所有作业的总结,和对Java课程的收获和建议。

作业过程总结

①Java课程学习刚开始要求我们掌握面向过程的的一些基本内容,后来学习了类,有了面向对象的思想,类的继承,抽象类,接口,多态等,让我实现了对面向过程向面向对象的转变。后来学习了泛型,正则表达式,Java的异常处理机制等。

②PTA上的题目的难度系数逐渐增加,所花的时间也越来越多,PTA的题目所需要掌握的知识也蛮多的,比如正则表达式的运用,我就需要去网上查询有关资料来掌握这方面的知识。可是这并不简单,自己去学习充满了艰辛,这并不简单,但是结果还好,这方面的知识也理解的不少,可是PTA的分数就不是很理想,这或许和我没学好Java有关吧。

③PTA所花的时间:每次作业完成的时候都和截止期限一致,要花几十个小时才可以完成,花费的时间较长。

课程收获

一、面向对象和面向过程思想

面向过程就是面向解决问题的过程进行编程。传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!面向对象指面向客观规律之间的关系,人类平常的思维方式就是面向对象的,自然界的事物与事物之间是对象与对象之间的关系。我们要解决一个问题时,这个问题就变成了对象,而这个过程就变成了面向对象。面向对象的几大特性:继承性,封装性,多态性。

二、Java的设计原则

①单一职责:一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。
不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性。

②开闭原则:软件实体(模块,类,方法等),应该对扩展开发,对修改关闭。
第一点是,开闭原则并不是说完全杜绝修改,而是以最小的修改代码的代价来完成新功能的开发。第二点是,同样的代码改动,在粗代码粒度下,可能被认定为“修改”;在细代码粒度下,可能又被认定为“扩展”

③里式替换:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏
子类的设计要保证在替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。子类在设计的时候,要遵守父类的行为约定(或者叫协议)。父类定义了函数的行为约定,那子类可以改变函数的内部实现逻辑,但不能改变函数原有的行为约定。这里的行为约定包括:函数声明要实现的功能;对输入、输出、异常的约定;甚至包括注释中所罗列的任何特殊说明。实际上,定义中父类和子类之间的关系,也可以替换成接口和实现类之间的关系。

三、Java的异常处理机制

java异常指在程序运行时可能出现的一些错误,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,中断了正在执行的程序的正常指令流。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误条件。当条件生成时,错误将引发异常。

四、Java的集合类

Java集合框架主要包括两种类型的容器,一种是集合(Collection),另一种是图(Map)。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap等等。Map常用的有HashMap,LinkedHashMap等。Collection接口有List和Set。Hashset:散列集HashSet是一个用于实现Set接口的具体类,可以使用它的无参构造方法来创建空的散列集,也可以由一个现有的集合创建散列集。在散列集中,有两个名词需要关注,初始容量和客座率。客座率是确定在增加规则集之前,该规则集的饱满程度,当元素个数超过了容量与客座率的乘积时,容量就会自动翻倍。ArrayList: ,它是用数组存储元素的,这个数组可以动态创建,如果元素个数超过了数组的容量,那么就创建一个更大的新数组,并将当前数组中的所有元素都复制到新数组中。

五、java的课程建议

老师可以对题目进行一些讲解或许可以给题目的源码给我们,我们以便可以琢磨,老师对知识讲的详细一些。

 

posted @ 2020-06-10 22:28  罗涛1  阅读(162)  评论(0)    收藏  举报