首页 / 更多教程 / pta题目集4-6总结
pta题目集4-6总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了pta题目集4-6总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6988字,纯文字阅读大概需要10分钟。
内容图文
![pta题目集4-6总结](/upload/InfoBanner/zyjiaocheng/995/4f6c693b15ff4482b215169abfde4c7a.jpg)
第二次bolg作业
202016班潘海涛
一、前言
这次的题目集46相比之前的题目集13,难度的确上了一个档次。这批练习我们需要熟练运用正则表达式(如题目集4,7-1水文数据校验及处理;题目集5,7-4 统计Java程序中关键词的出现次数;题目集6的四道正则表达式的训练题),掌握继承(题目集4,7-3 图形继承 ;题目集6,7-5 图形继承与多态 )和多态(题目集6,7-5 图形继承与多态 ),以及Java中与类有关的构造方法等的相关知识点(题目集4,7-2 日期问题面向对象设计(聚合一);题目集5,7-5 日期问题面向对象设计(聚合二) )并熟练运用。另外,对于题目量,此次的题目量适中,但是题目的要求显然提高了不少。
题目集4考察了正则表达式的相关知识点,要求我们熟练掌握Pattern、Matcher方法的运用,以及find、group对匹配到的数据进行处理,运用的知识点还有二维数组的创建及运用。Split关键字的运用,可能还有可能用到动态数组ArrayList的运用。许多不同类型数据的转化方法,同时,继承的知识也在最后一题的解答过程起到了不可小觑的作用。
题目集5运用到的知识点与题目集4相似。可能是想进一步巩固我们对这些知识的运用。题目集5也考察了正则表达式的相关知识点,7-4找出关键字的题目也要求我们熟练掌握Pattern、Matcher方法的运用,以及find、group对匹配到的数据进行处理,运用的知识点还有二维数组的创建及运用。Split关键字和字符串的replaceall方法的运用也对于帮助我们解决问题推波助燃,动态数组ArrayList的运用,使我们能任意更改数组的长度,很方便。不同类型数据的转化方法同样如同柳暗花明一般,为解决问题提供了新的出口。不同类之间的熟练运用也是很重要的。
对于题目集6,可以分为3部分(正则表达式的运用、继承多态的运用和接口的初步定义和运用运用)考察的知识点同之前一般,也是基础性的训练。题目信息量过大,锻炼我们java的编程思维,解决问题的方法和知识点的运用。
对于题目集4~6主要有分析的问题有 :
①题目集4(7-2)、题目集5(7-4)两种日期类聚合设计的优劣比较
②题目集4(7-3)、题目集6(7-5、7-6)三种渐进式图形继承设计的思路与技术运用(封装、继承、多态、接口等)
③对三次题目集中用到的正则表达式技术的分析总结
④题目集5(7-4)中Java集合框架应用的分析总结
二、设计与分析
①题目集4(7-2)、题目集5(7-4)两种日期类聚合设计的优劣比较
聚合一总体来说是对类的一个串连,一层套一层的,关联性较高,因为每个类都是连接在一起的,若是后期的需要修改以及优化会产生很大的麻烦,改一处的话就要有很多地方的改动,耦合性太大,不利于程序的维护。并且将每个类都串在一起的话,代码的可读性很差
聚合二中的类分开实现,耦合性不大。如果需要改动代码,只需要改动当前类中的内容,整体代码不需要有太大的改动,并且聚合二代码可读性较强。
②题目集4(7-3)、题目集6(7-5、7-6)三种渐进式图形继承设计的思路与技术运用(封装、继承、多态、接口等)
对于题目集4(7-3)主要体现了对继承的运用。按照题目要求主要是计算圆,矩形,长方体,球的面积或体积:首先输入1~4的数字代表选择类型,然后输入各自选项需要输入的数据。
需要创建几个类:Shape类中有一个求图形面积的方法。Circle类继承Shape类,自身有独自的半径radius属性。Rectangle类也继承了Shape类,自身有独自的长length和宽width属性。球体Ball类继承了Circle类,由题意,三维物体要求体积,所以其自身有球体积的方法。长方体Box类,继承了Rectangle类,自身额外定义类高的属性height和求体积的方法。由于继承的使用,使得Circle类和Rectangle类可以直接使用父类Shape类的求面积方法而不用各自定义,可以提现出继承大大的提高了代码的复用性,简化了程序,提高了编程效率。同时依题意,所有的类中的属性都要用private修饰,所以要在他们的类中定义相关的get、set方法让外界调用。此题体现了程序的封装思想、继承思想。
对于题目集6(7-5)主要体现了对继承和多态的运用,依题意,首先定义了父类Shape类,其中包含抽象的求面积的方法,判断数据合理性的方法和将其他数据类型转换为字符串String类型的方法。之后Circle类,Rectangle类,Triangle类都继承并重写了父类中的方法。同时他们都定义了各自的特有私有属性。主要使用了多态的方法能使得系统具有较好的可复用性。
使用到了抽象类的定义
对于题目集6(7-6)主要体现了对接口的使用,使用接口有这几个注意事项:接口内部的属性默认用final关键字修饰,方法默认并且只能使用抽象方法。定义一个求面积的接口,内部有抽象的一个求面积的方法。然后按题目要求定义的Circle类和Rectangle类使用这个接口并重写里面的求面积方法。
接口类相关定义:
接口类相关使用:
③对三次题目集中用到的正则表达式技术的分析总结
(1)先分析运用到正则表达式的题目:在题目集4,7-1水文数据校验及处理中,由于输入的是一个个字符串,并且主要数据输入格式是用“|”隔开了,可以用到正则表达式中针对字符串的split方法,同时需要校验很多数据的格式如:日期的格式,输入的数据的取值范围的要求,保留的小数位数要求等,主要的要求有这三点:
1.测量时间:格式为“年/月/日 时:分”,其中年份取值范围为[1,9999],“月”与“日”为一位数时之前不加“0”,日期与时间之间有一个空格,“时”与“分”之间采用冒号分隔(英文半角),“时”为一位数时之前不加“0”,“分”始终保持两位,且始终为“00”。注意:“时”数必须是24小时进制中的偶数值。
对应的正则表达式的编译字符串可以是:"(\s[1-9]\d{0,3})/(([1-9])|[1[0-2]])/(([1-9])|([1-2]\d)|(3[0-1]))(([02468])|(1[02468])|(2[02])|0):00\s"
2.目标水位、实际水位、流量:均为实型数,取值范围为[1,1000), 小数点后保留1-3位小数或无小数(也无小数点)
对应的正则表达式的编译字符串可以是:
"\s[1-9]\d{0,2}(\.\d{1,3})?\s";
3.目标开度、实际开度:实型数,取值范围为[1,10),必须保留2位小数,两个开度之间用“/”分隔
对应的正则表达式的编译字符串可以是:
"\s[1-9]\.\d{2}\s"
分析这些编译字符串使用到的基础知识点有:
\s 代表一个空字符(第一个\为转义符)
\d 代表一个数字(第一个\为转义符)
{0,2} 使它前面的字符被重复0-2次
[0-9] 代表一个0~9的数字
[02468] 代表0、2、4、6、8中的一个数字
- 使他前面的字符匹配0或以上次
? 使它前面的字符匹配0或1次
. 可以代替任意一个字符
(2)其次运用到正则表达式的题目有:题目集5,7-4统计Java程序中关键词的出现次数,我们需要从程序中匹配53个java关键字,并统计个数,由于统计的关键字都是单词,由一个个字母组成,所以正则编译字符串可以写成匹配若干个字母的形式:"([a-z]|[A-Z])+"
题目还要求区别注释符号,所以被注释的语句中的关键字不能被统计。写该题的思路是将程序的代码一行一行的存入字符串数组中的,所以可以写一个正则编译字符串"//"当匹配到它,就直接处理下一个字符串,以此来处理注释符号在行首的情况。
(3)另外运用到正则表达式的题目还有:题目集6的前四题的正则练习题,题目要求较之前的两到大题比较简单。运用到的知识点有点重复,这里就不再赘述了。
④题目集5(7-4)中Java集合框架应用的分析总结
题目集5(7-4)是统计Java程序中关键词的出现次数,此题在之前也有所提到由于输入的程序使用字符串数组一行一行的存入,所以行数即数组的大小可能未知,所以可以用到java中的动态数组的知识解决此顾虑。需要注意的是,创建的动态数组类型为字符串类型。
三、踩坑心得
对于题目集4,7-3图形继承这题,在写子类Circle继承父类Shape时有个错误一直过不了并且困扰我,后来我才发现,原来是父类中忘记加无参构造方法了。使得我知道,创建子类对象时,会自动调用父类的无参构造方法,当我们自行在一个类中定义了构造方法,程序中就不会默认给我们定义一个无参构造方法了。
四、改进建议
有些时候定义类数组,可以方便我们的代码,如题目集6,7-5中我们可能对于一个类会定义多个对象并且要保留并使用他们各自的数据。使用数组或ArraysList动态数组都行,他们有各有各的优缺点。下图是此题中定义的类数组:
五、总结
通过这三次题目集的练习,加深了我对对java程序的代码风格和相对c语言的不同之处的感受。进一步了解了java的封装性,继承,多态和接口。同时对这个强大的处理字符串的工具:正则表达式进一步了解并运用。不仅如此,代码的调试的方便性提高了编程的效率。我对Java编辑器eclipse的使用也较之前娴熟,它可以预测我们要输入的代码,自动生成构造方法与get、set方法,很方便。同时希望后续的练习,我能够了解更多的java知识,不断锻炼自我,改善自我。
内容总结
以上是互联网集市为您收集整理的pta题目集4-6总结全部内容,希望文章能够帮你解决pta题目集4-6总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。