对java这门课程的认识_关于java课程的总结

前言

本次博客主要内容为此次三次作业的总结,整门java课程学习的总结,以及在此次java课程中的收获,和对课程的意见。

作业过程总结

第一次作业主要考察的是对程序的可扩展性,实现开闭原则非常重要,因为程序随着时间,需求会有所变化,避免需求变化时,代码的大量改动。

1、

82901612d4692496afb4fb909dc39e39.png

可扩展性指的就是实现开闭原则,以后想要增加新的雨刷,可以实现尽量不修改代码下,只要增加代码,我的思路是新建一个接口有控制汽车刻度盘,抽象类负责挡位。新增雨刷只要接口就行。新增一个agent类就行了。

interfaceAgent2{public voiddealSpeed();

}abstract classdeal{public voidleverUp() {

}public voidleverDown() {

}public voiddialUp() {

}public voiddialDown() {

}

}

第二次作业主要考察的是map,set,list等的应用,运用hashmap可以同时记录数值和字符。

1、

e88beab099bad6bbeabbc151303cee56.png

需要将字符和出现次数同时存进hashmap,运用set存储key值,运用object数组储存set,array对array中的key进行排序得到。

Map hashMap = new HashMap(); //定义hashmap

Setset =hashMap.keySet();

Object[] array=set.toArray();

Arrays.sort(array);for(Object key:array){

System.out.println(hashMap.get(key) + "\t" +key );

}//遍历hashmap

第三次作业主要考察的是栈的应用,以及判断运算符优先级及算法的运用。

1、

58ff9e0feb852cb9054320853dcf7a24.png

主要考察的是对栈的运用,熟练使用peeek()和pop(),可以先把数字和运算符分开并一起保存在listl里面,然后一边将数字和运算符存进栈,一边判断即将存进栈的运算符和栈顶运算符的优先级,栈顶优先级大的,就提出数字栈的前两个进行运算,栈顶优先级小的,则不进行运算而是将即将进栈的运算符入栈。另外判断运算符优先级,当运算符比栈顶的运算符优先级小,则在数字栈开始运算。

//判断符号优先级

String s1 = operator.peek();if (s.equals("*")||s.equals("/")) {if (s1.equals("+") || s1.equals("-")) {return '>';

}if (s1.equals("*") || s1.equals("/")) {return '

}if (s1.equals("(")) {return '>';

}if (s1.equals(")")) {return '

}if (s1.equals("#")) {return '>';

}

}if (s.equals("+") || s.equals("-")) {if (s1.equals("+") || s1.equals("-") || s1.equals("*") || s1.equals("/")) {return '

}if (s1.equals(")")) {return '

}if (s1.equals("(")) {return '>';

}if (s1.equals("#")) {return '>';

}

}if (s.equals("(")) {return '>';

}if (s.equals("#")) {if (!s1.equals("#")) {return '

}else{return '=';

}

}if (s.equals(")")) {if (s1.equals("(")) {return '=';

}else{return '

}

}

三次作业之间的知识迭代关系:第一次作业考察的是代码的可扩展性,第二次第三次均考察到了数据结构,运用hashmap,set,栈来解决问题。在这三次作业中,我所花费的时间大约是1:3:1,在这三次作业中,我了解并熟悉了什么才是开闭原则,需求的改变使得一个程序必须要有可复用性,可扩展性,这样的程序才是令人满意的。map,list,set等数据结构可以更好地帮助我们处理数据并提高解决问题的效率。从中我也知道了,一个满意的程序要实现开闭原则,可扩展性越高,代码的寿命也就越长。

java课程学习的总结

在这几个月,通过网络课堂的学习以及在pta平台的作业下,我由原来的面向过程思想已经过渡为面向对象思想,熟悉了代码的测试,并且学到java fx 图形界面等知识。

(1)代码测试的重要性

一个程序需要考虑多种输入,多种情况,从此次java课程的学习中,我了解并熟悉了数据的异常处理,大数值的处理等。运用catch,try等处理异常数据,在输入的数据超过数据类型最大值时,例如输入的数据超过int型最大值。灵活使用算法解决,特殊情况需要特殊判定,例如除法中,分母为0的情况,闰年2月为2天,12月31日后一天等等。以及边缘测试,例如比如输入的范围是[0,1],可取0,1,-1,11作测试点。多次作业中都涉及到了数据的错误输入,如何判断以及输出wrong format,pta上的作业使我熟悉了如何对代码进行测试。

(2) 面向对象思想的理解

之前在学习c语言的时候是面向过程思想,在学习到java时,我了解到了面向对象思想,并发现面向对象思想与面向过程思想的不同以及它的优点。面向过程是单纯针对过程,一个一个步骤解决,通过各个函数实现,面向对象是把一个问题分为几个类。类中有自己的属性和方法,一个类做自己的事。面向对象思想可以帮助我们提高代码的可扩展性,实现高聚合,低耦合的特性。而且遇到中间要比较大的改动时,面向过程往往需要大量修改代码,而面向对象只需要根据模块选择需要改的部分修改即可。

e2a6356b8e043cbf08e5f2c2188bdd81.png

(3) 关于面向对象三大技术特性的理解

关于这三大技术特性:封装性,继承性,多态性。封装性就是把一些东西封装成类,并用protected,private设置访问权限,一个一个的类体现了面向对象的思想。继承性使得每个类都有一些共性,子类可以有父类的方法,使得代码量有所减少。多态性是建立在继承性上的,多个类继承至同一父类,子类有着不同的动作,多态大多用于接口,使接口得以重用。

java课程的收获

(1) 关于从pta作业中学到的新知识

新知识就是面向对象的思想,三大技术特性的应用,并且了解到了一些算法,令我印象最深的应该是正则表达式了,几乎每一次作业都有,不得不说正则表达式可以快速解决一些字符串处理问题,以及判断输入的格式正确与否,用到最多的应该是pattern和matcher了。各种数据结构的用法,比如hashmap,栈。

(2) 在pta上得到的教训

第一个就是格式了,哪怕是一个空格也会报错,代码要精简,代码长且没有意义是没有用的,例如。 做题目一定要把题目分析完再做,比如题目给的输入输出规则,看解题报告,不然等于白做或者做到中间做不下去。

(3) 从java fx中学到的新知识

从开始的按钮设计到pane,几种box的学习,再到设计一个计算器界面,再到按钮事件,键盘事件,鼠标事件,将代码和图形界面对接,这无疑是我在此次java课程中的又一大收获,图形界面赋予代码新的灵魂。

关于对课程的建议

建议以后的pta题量像最后几次作业一样,题量可以减少。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux php和java环境变量配置_Linux下配置Java环境变量

一般来说,我们都会把Java安装到 /usr/local 目录 或者 /opt 目录下。这里假设java安装包已解压在了 /opt下,具体目录为:/opt/java8/java1.8.0_45目录(注意:如果是生产环境中,一定要root用户来安装配置)。下面我们来配置…

java多线程多态_Java学习之多线程

多线程:(一)进程与线程进程特点并发与并行的区别:多线程编程的好处:(二)多线程的建立1,通过继承Thread类,代码如下:class MyThread extendsThread {private static int K 10;//类共享变量private int M10;…

java 执行存储过程报语法错误_为什么我在批处理从Java上执行PostgreSQL上的存储过程时收到错误通知“结果不合理”?...

我在数据库中有这个过程:CREATE OR REPLACE FUNCTION replacePageRelevance(id INT, value REAL) RETURNS VOID AS $$BEGININSERT INTO pageRelevance VALUES (id,value);EXCEPTION WHEN unique_violation THENUPDATE pageRelevance SET relevance value WHERE pag…

python staticmethod有什么意义_关于静态方法:python中的@staticmethod有什么意义?

为了更好地理解静态方法在Python中的工作方式,我开发了这个简短的测试/示例代码。class TestClass:def __init__(self, size):self.size sizedef instance(self):print("regular instance method - with self")staticmethoddef static():print("sta…

java fx border_JavaFx UI控件与代码间的绑定方法

JavaFx初探一,UI控件的使用,具体内容如下方式一:使用纯代码直接new view控件,这样就不涉及到与fxml文件之间的交互了方式二:使用fxml编写界面文件,用可视化工具scene builder 来构建交互界面。分两种方式绑…

java mysql ssl警告_连接到MySQL数据库时有关SSL连接的警告

用于初始化与MySQL服务器的连接的默认值在最近已更改,并且(通过快速查看堆栈溢出时最流行的问题和答案)新值引起了很多混乱。更糟糕的是,标准建议似乎是完全禁用SSL,这在制造过程中有点麻烦。现在,如果您的连接确实没有暴露给网络…

如何将php改成mp4,PHP 将视频转成 MP4 并获取视频预览图(用到ffmpeg)

搜索热词下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。flv_convert_get_thumb(input.avi,output.jpg,output.ogm);// code provided and updated by steve of PHPsnaps ! thanks// accepts:// 1: the input v…

php无嵌套遍历多维数组,不递归怎么遍历多维数组(维数不定)

不递归如何遍历多维数组(维数不定)现有数组$tree array (array (ID > 1,PARENT > 0,NAME > 祖父,CHILD > array (array (ID > 3,PARENT > 1,NAME > 叔伯),array (ID > 4,PARENT > 1,NAME > 父亲,CHILD > array (array (ID > 5,PARENT >…

c 如何操作php,thinkphp的c方法使用示例

1.C方法的作用a. 加载设置用户的配置,保存在一个C函数内的静态变量$_config 中b. 读取用户的配置 (从$_congig 中读取)2. 需求分析:1.设置变量1.二维数组C(array(DB_PASSWORD>root,DB_USERNAME>root),DB);C(DB.USER_NAME,XIAOCHEN);2.一维数组C(USER_NAME,小陈…

php seaslog安装,浅谈win10下安装php seaslog扩展的方法

本篇文章给大家分享一下win10 php安装seaslog扩展的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。【推荐学习:《PHP视频教程》】一、检查系统环境情况使用phpinfo()检查系统环境情况,找到需要下载的配置…

php 图片 处理,php图片处理类

本篇文章主要介绍php图片处理类&#xff0c;感兴趣的朋友参考下&#xff0c;希望对大家有所帮助。示例代码如下&#xff1a;<?php /*已知问题&#xff1a;1.在图片缩放功能中&#xff0c;使用imagecreatetruecolor函数创建画布&#xff0c;并使用透明处理算法&#xff0c;但…

php里push的用法,php array_push函数怎么用?

php array_push函数用于向数组尾部插入一个或多个元素&#xff0c;其语法是array_push(array,value1,value2...)&#xff0c;参数array必需&#xff0c;指规定一个数组&#xff1b;value1必需&#xff0c;指规定要添加的值。php array_push函数怎么用&#xff1f;定义和用法arr…

php 内容编码错误,PHP输出缓冲,ob_gzhandler引起的内容编码错误?

应用程序的输出应该只包含一个输出编码.如果您有多个编码方式不同的块,那么浏览器将得到一个无法使用的结果.因此编码错误.Kohana本身已经使用了输出缓冲区.如果你想将它与你的ob_gzhandler输出缓冲区结合起来,你需要在kohana初始化它之前启动你的缓冲区.那是因为输出缓冲区是可…

php铺满,重复铺满水印 - Jun. - OSCHINA - 中文开源技术交流社区

/*$tmp"tmp/a.jpg";$obj new WaterMask($tmp);$obj->waterImg sy_logo.png;$obj->transparent 50;$obj->output();*/class WaterMask{public $pos 0; //水印位置public $transparent 45; //水印透明度public $waterImg ; //水印图片private $srcImg …

java if (name!=null name!=),java中的NullPointerException异常

java中的NullPointerException异常关注:176 答案:3 mip版解决时间 2021-01-27 20:59提问者侢遇噹姩揂2021-01-27 02:10Login.jsp提供登录表单。到LoginCheck.jsp发生空指针异常错误。LoginCheck.jsp:String userName request.getParameter("userName");String pas…

fullcalendar php,日历插件fullcalendar+php的使用教程 — 读取json数据

根据FullCalendar日历插件说明文档中的介绍&#xff0c;日历主体事件数据的来源有三&#xff0c;一是直接以javascript数组的形式显示日历事件&#xff0c;二是获取JSON数据形式显示日历事件&#xff0c;三是函数回调的形式显示日历数据&#xff0c;三种调用数据的方式各有所用…

caany边缘检测matlab,自适应canny算法研究及其在图像边缘检测中的应用.pdf

自适应canny算法研究及其在图像边缘检测中的应用.pdf还剩51页未读&#xff0c;继续阅读下载文档到电脑&#xff0c;马上远离加班熬夜&#xff01;亲&#xff0c;很抱歉&#xff0c;此页已超出免费预览范围啦&#xff01;如果喜欢就下载吧&#xff0c;价低环保&#xff01;内容要…

flask mysql orm,flask的orm框架(Flask-SQLAlchemy)-创建表

标签&#xff1a;# 转载请留言联系ORM 是什么&#xff1f;ORM&#xff0c;Object-Relation Mapping。意思就是对象-关系映射。ORM 主要实现模型对象到关系数据库数据的映射。优点 :只需要面向对象编程, 不需要面向数据库编写代码.对数据库的操作都转化成对类属性和方法的操作.不…

Java引入依赖aar,如何将JAR依赖项包含到AAR库中

摘要&#xff1a;我有一个依赖于JAR文件的AAR文件&#xff0c;当我构建AAR项目时&#xff0c;它不包含JAR代码。细节&#xff1a;我有一个Java SDK库项目&#xff0c;其中包含我们用于JavaWeb项目的代码&#xff0c;此类库是使用Gradle内部Nexus服务器(如JAR)创建的&#xff0c…

php+使用go编译,golang如何编译

Go语言中使用 go build 命令主要用于编译代码。在包的编译过程中&#xff0c;若有必要&#xff0c;会同时编译与之相关联的包。go build 有很多种编译方法&#xff0c;如无参数编译、文件列表编译、指定包编译等&#xff0c;使用这些方法都可以输出可执行文件。go build 无参数…