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

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

参考资料

2016-2017-2015329 《Java程序设计》第4周学习总结的更多相关文章

  1. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  3. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 《Java程序设计》第二周学习总结

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. Kafka生产者producer简要总结

    Kafka producer在设计上要比consumer简单,不涉及复杂的组管理操作,每个producer都是独立进行工作的,与其他producer实例之间没有关联.Producer的主要功能就是向某 ...

  2. solr集群搭建(4.10.2)

    配置环境为centos6.8 下载tomcat程序到服务器,并解压启动服务测试 [root@hadoop01 ~]# wget http://apache.claz.org/tomcat/tomcat ...

  3. Cinder组件解析

    1  Cinder架构图 Cinder是在虚拟机和具体存储设备之间引入了一层“逻辑存储卷”的抽象,Cinder本身并不是一种存储技术,只是提供一个中间的抽象层,Cinder通过调用不同存储后端类型的驱 ...

  4. IPUtils 工具类

    package com.hxqc.basic.dependency.util; import org.apache.commons.lang.StringUtils; import javax.ser ...

  5. CNN识别验证码2

    获得验证码图片的俩个来源: 1.有网站生成验证码图片的源码 2.通过python的requests下载验证码图片当我们的训练样本 我们通过第一种方式来得到训练样本,下面是生成验证码的php程序: &l ...

  6. 日常踩坑——Dev C++ pow()函数的坑

    坑 Dev C++ pow()函数 那年冬天,显示屏前坐着如喽啰,那时候我含泪发誓,再也不用Dev. 蓝桥杯官网给提供的版本,没办法bug也得硬着头皮用. 16年蓝桥杯的第八题 四平方和定理: 在De ...

  7. C#ref和out的区别-ref是有进有出,out是只出不进

    之前学习C#时候就遇到了这个问题,不过当时没有深究.昨晚想到这个问题时候自己尝试敲了敲代码,结果从运行的结果来看,越看越乱.在查看了一些资料的基础上,自己总结了一下. 可能会有点乱,但是自己总结出来的 ...

  8. Android 配置文件 AndroidManifest 解析

    1.屏幕分辨率 <supports-screens android:smallScreens="true" android:normalScreens="true& ...

  9. 理解numpy dot函数

    python代码 x = np.array([[1,3],[1,4]]) y = np.array([[2,2],[3,1]]) print np.dot(x,y) 结果 [[11 5] [14 6] ...

  10. 一些有用的社区论坛,wiki网站(持续更新)

    1. IBM开发者(IBM developerwork): 这是一个比较全面的网站,上面有关于linux 管理.linux内核设计.存储等各个方面的知识,内容广泛,参考价值很高 http://www. ...