0.前言

  本文是有关pta2020.3至2020.4所有面向对象程序课程(java)共三次作业的阶段性总结,是java学习最开始起步时期的成果。

1.作业过程总结

  这三次作业,是从c++过渡到java的桥梁。

  第一次作业是在全新的jdk环境中完成以前在c++习惯的事情,两者之间还是有很大的区别,比如键盘输入输出用到的函数和结构完全不同,main函数在组内的表达(

import java.util.Scanner;
    
public class Main {
        public static void main(String[] args) {
            Scanner x=new Scanner(System.in);

  如同这些,对于刚接触java的我们来说都是全新的东西,需要学习和接触。同时,我们也学会了新的函数,迎接了jdk这个方便快捷的软件,使用这个软件,我从心底里感到舒适和方便,虽然熟悉它需要很长的时间,而且他没有相应的汉化版,但是好在相对应的学习已经融入课程里,不用操之过急。

  第二次作业则开始分函数了,不过现在还是没有开始分class,所以相对应的作业环境较为轻松。但是,main函数黑箱的做法让我对自己编写的函数有了更为严苛的要求,这次作业比第一次更累,虽然花的时间反而是更短,而且正确率更高。因为每次出现问题的时候总是要去调试,没有经验的我总是找不到问题所在,让我心里很难受,只能安慰自己说这是为了熟悉jdk的用法而必须的功课。当然,结果来看确实是如此。

  第三次作业是最难的,这个难尤其体现在第三题上,多个class的嵌套是一个很难的问题。由于没有经验,对于private变量的修改在使用函数的时候还有很多不安和迷惘,不过这些迷惘也很快就被打破了。反而是算天数差,前后n天时出现了最大值运行超时的问题,一直到现在都没有解决。按照常理是for循环经历过多的问题,但是基本上脱离了for循环我就找不到可靠稳妥的方法了,这方面上网也没有查到可用的函数,只能找机会去核对了。

三次作业让我初步学会了eclipse的用法,让我适应了基本的java编程,在此基础之上,可以学习新的算法,可以说是新的开始。

2.设计心得

  在第三次作业中,每个class的模块化被用图形明显地表现了出来,虽说如此,模块化远远没有交代的那么容易,因为在第二次作业和第三次作业之间的函数虽然看起来什么都没有变,但是由于变量存储位置的变化,不同class里函数的分工发生了明显的变化,这个教训告诉我:要想依据面向对象的思路进行工作,仍然需要交代清楚很多东西,毕竟这次作业的class都在干什么自己最清楚不过,即使如此还是在交流中出了很多问题,真正实现面向对象仍然任重道远。

  相比较而言,目前面向对象带给我的最直观感受是方便分类和查找错误,因为所有的代码全是自己的东西。而且,一旦调试出现错误立马可以通过明智的调试设计来知道哪里出了错误,再加上方便的eclipse让我的工作效率相比devc高了不少。当然,任务量也是相应地大了。

3.测试的理解与实践

  第三次作业的第三题由于出现了关于天数间隔的错误,我被迫开始了相应的调试。而且另外一个“规范性”测试点也有报错,于是我就设计了一个关于2014.1.1和2020.1.1的问题,并且拿起了计算器亲手进行了计算,而结果发现是多了一天,而且是仅仅2019这一年多,2018,2017没有问题,所以我设计了一组数据,最后在最关键的2019.12.31-2020.1.1找出了错误,并且修改了自己的算法。

  这个算法本来是为了能够直接避免for循环,只是通过计算就能计算两个日期之间的天数,但是还是引发了错误,所以这时候就体现了测试的重要性了。一个重要的教训:不经测试的函数投入了整个class群就会如同石沉大海一样,让人很难在错误中找到真正出问题的部分,所以在编写之前就应该检查一下代码是否真的没有问题。

4.课程收获

  虽然紧张,但是这几次作业写的很开心。虽然紧张但是充实的四周,专门给我用来适应eclipse这个先天优秀的软件,让我度过了不错的时光。同时,我终于能够将自己所学勉强与自己想象中的成熟软件的结构拼凑在一起,去主动探索自己想开发出来的软件。虽然都是以后的事情,但是我看到了那种可能性。

5.对课程的建议

  尽量多采用知识点视频解决的问题,设立专门的答疑视频,个人认为java的学习和其他科目完全不同,不是学到一个一个知识点而是解决一个一个盲区。

以上。

2020.4.2关于java.pta的总结的更多相关文章

  1. 阿里巴巴供应链平台事业部2020届秋招-Java工程师

    阿里巴巴供应链平台事业部,2020届秋季校园招聘开始啦!Java开发工程师虚位以待,机会难得,占坑抓紧. 入职就发师兄,一对一师兄辅导. 在这里,你将有机会接触阿里集团的所有数据库.中间件等基础设施. ...

  2. 2020面试整理【java】

    spring面试题 1.你对spring的理解 Spring 是个Java企业级应用的开源开发框架. Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用. Sprin ...

  3. 2020 重新出发,JAVA 学习计划

    ------ @[toc]# 前言 我呢已经工作七年了,一直没有换工作,因为我这个人没什么太大的野心,安安稳稳的生活就挺好,目前的公司虽然福利一般,但是工作稳定,环境也都很熟悉了. 但是今年,到目前为 ...

  4. JAVA PTA 7-1 作品评分 (10 分)

    全国中小学生Scratch作品大赛拉开了序幕.每个参赛选手可以通过网络直接上传作品.本次比赛人人可做评委.每个网络评委可以通过网络对每一件作品进行打分.评分系统也是请程序高手设计的,能自动去掉一个最高 ...

  5. 2020 年了,Java 日志框架到底哪个性能好?——技术选型篇

    大家好,之前写(shui)了两篇其他类型的文章,感觉大家反响不是很好,于是我乖乖的回来更新硬核技术文了. 经过本系列前两篇文章我们了解到日志框架大战随着 SLF4j 的一统天下而落下帷幕,但 SLF4 ...

  6. 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!

    前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问?   一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...

  7. 2020由浅入深最强Java面试题

    1.String,StringBuffer和StringBuilder有什么区别?     String是字符串常量,不可变对象,每次对String修改都等同于生成了一个新的String象,然后将指针 ...

  8. 2020重新出发,JAVA语言,什么是JAVA?

    @ 目录 什么是 java? JAVA三大体系 Java SE Java EE JavaME java的主要特性和优势 1. 面向对象 2. 平台无关性 3. 可移植性 4. 简单性 5. 解释执行 ...

  9. 2020重新出发,JAVA语言,JAVA的诞生和发展史

    java的诞生 在1991年时候,James Gosling在Sun公司的工程师小组想要设计这样一种主要用于像电视盒这样的消费类电子产品的小型计算机语言. 这些电子产品有一个共同的特点:计算处理能力和 ...

  10. 2020重新出发,JAVA学前了解,DOS常用命令

    什么是 DOS ? DOS(Disk Operating System)是一个使用得十分广泛的磁盘操作系统. 常见的DOS有两种:IBM公司的PC-DOS ** 和 微软公司的MS-DOS,它们的功能 ...

随机推荐

  1. dart extends 覆盖规则

    1,不覆写super的变量,child会自动继承super的变量.即使是在child里给super赋值,child里也是可以访问到的,可能是因为引用的关系. 2,只要覆写了super的变量,只给sup ...

  2. SAP物料状态

    物料状态控制当前物料是否可以生产.采购.设计等功能 设置路径:spro-->后勤常规-->物料主数据-->设置关键字段-->定义物料状态

  3. unity学习笔记03-渲染管线

    图形数据在GPU上经过运算处理,最后显示在显示器上的过程 游戏→图形API→cpu→(DRAW CALL)交给GPU→顶点处理→图元装配→光栅化→像素处理→缓存 减少DRAW CALL  增加性能 O ...

  4. Kubernetes基础配置管理

    一.ConfigMap创建 1-1.基于目录创建ConfigMap 首先创建一个configmap/conf存储目录,分别建立.conf文件 mkdir /configmap/conf #创建.con ...

  5. Vue基础 · 组件的使用(4)

    组件 将公用的功能抽离出来,形成组件:目的:复用代码. 1.1 全局组件 <div id="app"> <!--引用组件,可多次引用--> <demo ...

  6. python max()用法

    起因是看到一道面试题 "统计字符串中出现次数最多的字符,并返回出现次数" 问题很简单,刚开始没思路,只想到了循环统计,但是觉得太蠢了,直到我发现了max()的key用法,果然还是我 ...

  7. web server 接口调用

    1. 生成客户端代码 2.调用接口 import javax.xml.ws.Service;public static NotificationServiceDevImplPortType mokaA ...

  8. Linux一键单机部署和集群部署

    整个部署脚本只用执行sh即可,有需要可以联系我. 一.部署类型 可参考:常见的部署类型(停机部署.蓝绿部署.滚动部署.灰度部署.AB测试等) 二.一键单机部署Docker服务 三.一键单机部署原生服务 ...

  9. 移动端唤起QQ聊天 (ios android 包含微信、qq内置浏览器)

    var u = navigator.userAgent; var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); if(isiOS){ if(u ...

  10. Lua监听事件观察者模式(多个监听者监听)

    fireEvent 产生事件,创建协程分发(在registerEventListener注册过的事件中通过事件名字找到对应的信息,然后执行对应模块的OnEvent函数),多个地方都注册了同一个事件的话 ...