ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

面向对象程序设计:第三次总结

2020-06-10 22:07:13  阅读:180  来源: 互联网

标签:java 第三次 int 程序 代码 作业 ++ 面向对象 程序设计


 

1.前言

本次博客主要针对第三阶段有关正则表达式、list、map、set的应用,javafx有关内容的训练还有对整个java学习过程进行总结。

1.作业过程总结

①总结三次作业之间的知识迭代关系;

第九次作业对雨刷程序的重构,对以前的雨刷程序又有了新的补充,对类的封装性、继承性以及多态性的综合应用还有,接口与抽象类的使用。各种类的继承运用的更加得心应手。第十次作业对之前的正则表达式又重新训练了一下,并且练习了上课的讲的List、Set、Map的用法,该集合存储键值对,一对一对往里存,而且要保证键的唯一性,通过这个方法实现了统计一个输入的Java源码中关键字(区分大小写)出现的次数。第十一次作业依然有对正则表达式的运用,并且对栈的运用自学了很多,存内容到栈中,把内容从栈中弹出来进行表达式运算。这次作业除了一些栈的应用,大部分还是对之前内容的运用熟练掌握。类的使用创建,类之间的关系还有开闭原则,单一职责等。

②作业过程中遇到的问题及解决方法;

在第九次作业中只刅一些编程的小问题,主要是重构的方式的思路比较难想。

第十次作业对Map集合的初始化一种新的循环方式

for (String word : KEYWORDS) {
keywords.put(word, 0);
}

还有对字符的各种处理方式学习,字符比较s.equals("S")、s.startsWith()、s.endsWith()。对map集合内容的修改,类似数组的使用方法

for (int i = 0; i < wordList.length; i++) {
for (int j = 0; j < 50; j++) {
if (wordList[i].equals(KEYWORDS[j])) {
int count = (int) keywords.get(KEYWORDS[j]);
keywords.put(KEYWORDS[j], count + 1);
  }
  }
}

第十一次作业

将字符串处理为数字和字符存入字符数组时String和char之间的转化

先将字符串分开为字符数组 char[] S = expression.toCharArray();再根据判断是否前一个是数字是否后一个也是数字,是数字将这些一起存到字符串数组一个空间中

char[] S = expression.toCharArray();
String[] str = new String[S.length];
for(int m = 0;m < str.length;m ++){
str[m] = "";
}
int c = 0;
for(int j = 0;j < S.length;j ++){
if(Character.isDigit(S[j])){    //判断字符是否为数字
str[c] += String.valueOf(S[j]);
}else{
c ++;
str[c] = String.valueOf(S[j]);
c ++;
}

}

还有对括号的处理括号优先级,在遇到右括号的时候的时候将栈中之前的符号弹出到list中直到遇到左括号

③每次作业花费的时间比例

每次作业的花费时间基本都需要几个晚上几天时间,而且代码完成后对错误的订正用的时间最多。

④对编程过程的严谨性的认识及教训

代码订正使用的时间往往是我代码编写中占比最高的,而且老是在订正完一个错误的时候发现订正的方法与其他的方法不兼容或者直接导致了另一个地方的报错,在代码编写过程就要尽量避免错误并且降低代码之间的耦合性。严谨性代码是十分重要的。、

2.OO设计心得
①对面向对象三大技术特性之间关系的理解

封装性使得继承变得井井有条保护了数据,只是给了子类他的方法,继承又为多态的实现创造了条件,三个技术特性关联紧密,产生了一个优秀的编程系统。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一原则使类之间井井有条,并且使java其他技术的实现变得简单了很多,开闭原则使程序的扩展变得简单,只需要对原先的程序添加新的内容而不需要做大手术。
③OO编程思维的理解

 面向过程感觉思维比较简单就是产生一个东西然后去用它,把它拼凑起来,而面向对象感觉更加灵活了, OO编程思维我觉得应该就是比较贴近具体的一种思维,你的类可以变成一个动物,他可以吃,走,还有等等行为,OO把这个具体出来了,这是c语言做不到的,感觉把真实规律物品用代码展现了,造物的感觉。还有就是对程序的条理性,程序的效率还有程序的扩展性和复用的要求很高,尽力节省程序员花费的时间。

3.测试的理解与实践

测试对代码的重要性毋庸置疑,一段代码由本人编写是自己很难发现出问题的,发现了也会消耗大量时间,而测试的存在帮我们大大减少了改正错误需要的时间精力,测试做的好可以迅速发现错误所在的地方,然后对症下药  。     测试用例我会从非法性,特殊情况,数据极大和极小方面,代码的运行效率方面考虑。

4对整个java学习过程的总结

整个java学习内容主要难度我觉得主要就是在前面对java的学习,对java开始认识和对java类单一职责,类名要见名知义,属性的类型public、private、protect,正则表达式、类之间的关系、继承、多态性、封装性、抽象类、接口还有开闭原则、重构等。这些java常用的方法进行了解,后面的都是一些理论的知识,各种模式的了解,java的有关知识,还有就是最近学习的javafx,运用java程序产生图形和面板,使我有了一些编写java的程序的基本能力,现在可以独立的完成一些c语言感觉完全做不到的事情,计算器的实现从计算程序到计算界面,对一个比较复杂的问题也可用写出来,还有可以对类图看懂并且实现类图,但是离自己画出类图好像还很远,对java对字符串的操作方式方法都有了一些了解,还有list、map、set的用法,List是有序的队列,List中的每一个元素都有一个索引,List中允许有重复的元素,ArrayList是一个动态数组,也是我们最常用的集合。它允许任何符合规则的元素插入,Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。在Map中它保证了key与value之间的一一对应关系一个key对应一个value,所以它不能存在相同的key值,value值可以相同。实现map的集合有:HashMap、HashTable、TreeMap、WeakHashMap。还学会了正则表达式的对表达式的验证,可以运用对正则表达式对简单的式子判断正否了,编写代码会考虑单一变量原则,程序的扩展性,还有开闭原则,能够编写java程序对一般复杂问题进行解决。

5.对课程的建议

课程安排我认为还是很合理的,这样的边学边做的方式比一个劲讲好很多,也最容易学会来,不是那种听完就忘的那种。作业难度还是很合理的,不是完成不了,但也不会很轻松。难度不要太难,题目可以多一点,测试点报错的地方可以说明一下,很多时候在eclipse上可以运行正确但是pta上出了问题,加大了很多题目难度。语法点可以上课多讲一点,粗略讲下就好了。

 

标签:java,第三次,int,程序,代码,作业,++,面向对象,程序设计
来源: https://www.cnblogs.com/shanghaishinanhuiquwenyuanjie/p/13089399.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有