第二周学习总结

     本周主要学习了数组、方法、面向对象、封装、构造方法、代码块和继承等。在学面向对象之前,做了一个福利双色球项目,这是个综合性比较强的小项目,算是对之前的知识进行了一个复习。拿到一个项目先分析需求,心里有了一个大概的框架。大体上这个项目要实现一个菜单的循环实现,根据之前的知识,很明显是要用do while循环来实现,所以我在Editplus里先把do while循环写上。再分析需求,菜单界面有三个选项,很明显是用switch case语句,所以不管后面具体内容,先把switch case框架搭起来,之后往里面慢慢填东西。在选号系统里用到了for循环实现红球和蓝球的循环选号和自动选号,这一块还是比较简单的。主要的难点在开奖环节,首先要用随机数组得到中奖数字,由于是福利双色球,所以每一个数字只能出现一次,所以写方法的时候要注意每一个新生成的数字不重复,这块我花了一点时间,最后写出来的代码不是太好,我试着在循环里定义了一个计数器,发现运算次数比较大,应该还有更好的写法。然后是用买的号和中奖号码去比较,确定中奖等级,这部分代码是for循环加选择语句的嵌套,看起来很复杂,其实逻辑清楚的话写起来非常流畅。写一个完整的项目的感觉像是写文章,行文逻辑要清楚,自上而下,写每一段代码时想好这段代码要在控制台实现怎样的功能,这样写的时候就不会乱了章法。

    然后是面向对象部分,面向对象的思想如果按通俗的方法来解释很好理解。这部分目前的难点在封装的概念的三个变量的区分上。一开始我对于封装的概念比较模棱两可,是从private关键字的字面意思“私有”去理解它,这样其实是比较片面的,只能说private是封装的一种体现形式,不能说封装就是私有。此外我整理了下局部变量、成员变量和静态变量的区别。结合内存图里每个变量的所在内存位置和出现时间去理解每一个变量,不需刻意去记。只有记住静态变量先于对象存在和静态区的位置,其他的概念都是可以扩展开的。

原文地址:https://www.cnblogs.com/lyx210019/p/9315243.html