学号 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就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

参考资料

最新文章

  1. DevExpress Ribbon右上角button显示文本设置
  2. iOS开发小技巧--TableView中headerView的循环利用,以及自定义的headerView
  3. 基于ASP.Net +easyUI框架上传图片,实现图片上传,提交表单
  4. Linux 系统编程
  5. HTML案例练习一
  6. js 当前系统时间
  7. php预定义常量&变量
  8. 【状态DP】 HDU 1074 Doing Homework
  9. J2SE-反射
  10. Linux显示指定区块大小为1048576字节
  11. Coursera-AndrewNg(吴恩达)机器学习笔记——第二周
  12. 纯 CSS 绘制三角形(各种角度)
  13. redhat 6 红帽6 Linux 网络配置
  14. Spring BeanDefinitionRegistryPostProcessor BeanPostProcessor作用
  15. css的小知识4
  16. Bootstrap上传图片
  17. 修改 wordpress 后台管理员登录地址
  18. ivew实现table的编辑保存追加删除
  19. 使用 Roslyn引擎动态编译代码
  20. git 删除 repository

热门文章

  1. 1、关于python第三方工具操作xls和xlsx格式的excel文档选型的吐血经历
  2. html5和CSS3中新特性
  3. collecitons.deque
  4. linux下搭建禅道项目管理系统
  5. vue02—— 动画、组件、组件之间的数据通信
  6. java工作流引擎 Activiti6.0 websocket 即时聊天发图片文字 好友群组 SSM源码
  7. ORA-27300: OS system dependent operation:sendmsg failed with status: 105 ORA-27301: OS failure message: No buffer space available
  8. ORA-10485: Real-Time Query cannot be enabled while applying migration redo
  9. CentOS7.5最小化安装之后的配置
  10. React Native封装Toast与加载Loading组件