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. iphone tabbar问题

    适配新款苹果底部tabbar,网上找了代码,不能用.翻出苹果各型号尺寸发现找的代码稍微有点问题.自己改了下. 关键的判断在于window.screen.height > 800这是区分带tabb ...

  2. win10家庭版vmwarework启动蓝屏

    最终升级到vmwarework16.2.5解决 据说17支持win11 再出问题直接上vm17了

  3. 使用@RequestBody注解接收的实体类中的某些参数为null

    原因 postman调试接口 为null的参数命名不符合"驼峰法",类似实体类A的属性 cEnterpriseId ,这种命名是不规范的 和lombook的@Data注解有关 用p ...

  4. VUE+elementUI 分页请求回显问题解决方案

    一直专注写后台的本人,之前新产品回显问题,一直没处理,这对实施配置系统,会产生很大影响 由于写页面的同事要离职,一直在游泳,只能自己上手去干了.本人对 vue 和elementUI 处于一知半解,所以 ...

  5. oracle中将同一组的数据拼接(转)

    需要用wm_concat函数来实现. 如目前在emp表中查询数据如下: 要按照deptno相同的将ename以字符串形式合并,可用如下语句: 1 select deptno,wm_concat(ena ...

  6. echarts 容器宽度设置百分比,但是图表缩成一团

    如图 明明设置了充满整个div,然后发现都缩成了一团,后来发现echarts不能和display:none;属性一起用 解决方法: 把v-show改成v-if就可以了充满容器了... 

  7. js实现大文件上传——分片上传方法

    当前端在开发过程中遇到上传文件需求,如果是上传头像.图片小文件之类的,可以正常按上传流程处理.但是当遇到上传大文件需求时,几个G或者十几个G,那么需要将这么大的文件分割成许多小片段分别上传,这种实现思 ...

  8. ORACLE 查看用户下表占用空间大小

    方式一: select  * from user_segments s  where s.BYTES  is not null  order by s.BYTES desc 方式二: select s ...

  9. Swift中 堆(heap)和栈(stack)的区别

    1.内存空间分为堆空间和栈空间 2.堆->引用类型(对象.函数.闭包)  栈->值类型(结构体.枚举.元组) 3.值类型赋值->深拷贝  引用类型赋值->浅拷贝 let a = ...

  10. 站长神器Beyond Compare与UltraCompare文件比较工具

    Beyond Compare是一套非常实用的文件及文件夹比较软件,不仅可以快速比较出两个文件夹的不同之处,还可以详细的比较文件之间的内容差异.程序内建了文件浏览器,方便您对文件.文件夹.压缩包.FTP ...