2016-2017-2015329 《Java程序设计》第4周学习总结
教材学习内容总结
- 面向对象有三大特性:封装、继承、多态
封装
- 封装是指,一种将抽象性函式接口的实例细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制,通过该类提供的方法来实现对隐藏信息的操作和访问。
- 访问修饰符可以用来修饰属性和方法的访问范围。
- 继承
- 继承可以看成是类与类之间的衍生关系
- 继承需要符合的关系是:is-a,父类更通用,子类更具体。
- 意义:假使有两个类相似,那么它们会有许多重复的代码,导致后果就是代码量大且臃肿,后期的维护性不高。通过继承就可以解决这个问题,将两段代码中相同的部分提取出来组成一个父类,实现代码的复用。
- final关键字可以修饰类、方法、属性和变量
final 修饰类,则该类不允许被继承,为最终类
final 修饰方法,则该方法不允许被覆盖(重写)
final 修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值(但只能选其一)
final 修饰变量,则该变量的值只能赋一次值,即变为常量
super关键字在子类内部使用,代表父类对象。
访问父类的属性 super.属性名
访问父类的方法 super.bark()
子类构造方法需要调用父类的构造方法时,在子类的构造方法体里最前面的位置:super()
多态
- 只通过父类就能够引用不同的子类,这就是多态,我们只有在运行的时候才会知道引用变量所指向的具体实例对象。
- Java 实现多态有三个必要条件:继承、重写和向上转型(即父类引用指向子类对象)。
- Java中多态的实现方式:继承父类进行方法重写,抽象类和抽象方法,接口实现。
教材学习中的问题和解决过程
- for(String arg:args)什么意思?
- 经过百度之后知道是:增强后的for循环(j2SE 5.0的新特性)
主要作用简化了之前的for循环:
- a+=c无法运行 a +=c等价a=a+c
- %n 和 /n都是转行。
- \n是回车符,只不过这个是转义字符,可以用于一切字符串;
而%n是一种格式字符串,只能用到printf的参数里。
代码调试中的问题和解决过程
- 编译java程序时出现需要为class,interface?
- 1、检查关键字的大小写和拼写。比如public有没有写成Public,class有没有写成Class等。
2、检查花括号有没有对称。
代码托管http://git.oschina.net/bestiisjava2017/hpl20155329-java-programmer/tree/master/src?dir=1&filepath=src&oid=3b7e71d0df91ef703806418355ffc6624dbfb12f&sha=7b6beec41463bb4a70bcdd3e427b893235da616e
- 代码量截图:
上周考试错题总结
- Linux Bash中,(grep )命令可以进行全文搜索。
- :被声明为(static)的成员,不属于某个对象,而是属于类。
- 调用p45 sum函数计算1+2+3+4+5的代码是(MathTool.sum(1,2,3,4,5))
- p104 CopyArray.java 中修改int [] scores2 = Arrays.copyOf(scores1, scores1.length,使得输出的第二行只有前五个元素,修改后的代码为(int [] scores2 = Arrays.copyOf(scores1, scores1.length/2) 或int [] scores2 = Arrays.copyOf(scores1, 5) )
感悟
随着代码量抄写的量逐渐增大,感觉距离自己能独立写出代码已经很近了。已经在抄写代码的同时理解代码含义并且去做一些改变,比如增加一个输出,本来原代码是do while 的 改一改用用while for switch等等。小改变成功了,但是在自己独立编写代码时,总是编译多次通不过,一遍又一遍的修改才能完成,逻辑错误,语法错误,一个接着一个,犯了又犯,虽然感觉自己在进步,但是和同学的差距还是很大。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 30篇 | 400小时 | |
第四周 | 416/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:14小时
实际学习时间:21小时
改进情况:14+14/4<21 有待提高自学能力
有空多看看现代软件工程 课件 软件工程师能力自我评价表
参考资料
Java学习笔记(第8版)
《Java学习笔记(第8版)》学习指导
...
以上是 2016-2017-2015329 《Java程序设计》第4周学习总结 的全部内容, 来源链接: utcz.com/z/394503.html