20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结

教材学习内容总结

第四章 编写类

  1. 类与对象的回顾:对象是有状态的,状态由对象的属性值确定。属性由类中的声明的变量所定义。对象的操作可能改变该对象的状态。对象的操作由 类中声明的方法定义。
  2. 类的分析:类的成员(类的数据和方法);构造方法(给类赋初值);实例数据(变量声明的位置定义其作用域);UML类图(类及其对象关系可视化描述)。
  3. 封装:(1) 可见性修饰符:public(公有);private(私有,只能从内部访问);protected(只与继承性相关)。
              (2)访问器:getX,修改器:setX。
  4. 方法的分析:调用方法;return语句(获取返回值);实参,形参(方法声明首部中参数名);局部数据(方法内声明并使用)。
  5. 构造方法的回顾:与类名相同;无返回值;常用于初始化实例对象。

第七章 面向对象设计

  1. 软件开发活动:开发活动的四个基础过程:确定软件需求-软件设计-实现软件设计-软件测试。
  2. 明确类和对象:类的识别(给类命名、分清问题所在域);类的职责(声明方法去定义一个对象的行为)。
  3. 静态类成员:静态变量/类变量(static,,由所有类实例共享);静态方法(通过类便可调用);main方法(只能访问静态变量或局部变量)。
  4. 类间关系(最基本:依赖、聚合和继承):依赖(A必须通过访问B的实例来调用方法,类的对象可作为参数传递给本类的方法);
        聚合(对象集合成对象、包含关系);this引用(当前正在运行的对象;区分同名的构造方法参数和实例变量)。
  5. 接口(与对象交互的公共方法):一组常量和抽象方法的集合;不能被实例化;可以由多个类实现同一个接口,一个类可以实现多个接口;
        Comparable接口(compare to方法);Iterator接口(操作一次移动至下一个对象)。
  6. 枚举类型(特殊的类):其实例为枚举值,其值为对象;内含静态方法values(返回所有枚举值的列表(是一个迭代器,可用for循环语句处理其值))。
  7. 方法设计:方法分解(一个方法分解为多个方法);方法参数的传递方式(按值传递;按引用调用)。
  8. 方法重载:使用同一方法名调用多个方法。
  9. 测试:审查;缺陷测试(黑盒测试和白盒测试)。

教材学习中的问题和解决过程

  • 问题1:private不是私有化吗?后面干嘛又使用public公开了?
  • 解决:私有的是属性,对其私有化提高了其安全性,让使用者只能通过public提供的方法来访问数据。

  • 问题2:书上说die引用变量指向了各自Die对象的地址(什么东西?)
  • 解决:即是输出时跟在变量后面的奇形怪状的字符,正常情况下时隐藏的,但如果漏了什么语句(当时对die操作了一波,截的图不见了),它就会显示在    变量后面。

  • 问题3:构造方法...真的有用?
  • 解决:废话,没用讲干嘛 为属性赋值时,很容易忘记对其中的一项或多项进行赋值。构造方法可以简化对象初始化,为实例变量赋值。

  • 问题4:带参数的构造方法...这是又什么?
  • 解决:可以显示地为实例变量赋予初始值。在不同的条件下创建不同的对象,这些对象的实例变量具有不同的值。就是new后面()里的东西。

  • 问题5:实现类只能用那些在接口中的特定方法?
  • 解决:实现一个接口类必须定义那些包含在接口中的方法,但在接口中允许定义其他方法。

    代码调试中的问题和解决过程

  • 问题1:为什么照着课本敲好的东西javac不了?
  • 解决:(1)先javac类,再javac其测试文件,之后再移动至bin文件夹。
         (2)javac -d bin/ src/*java

  • 问题2:编好了类,运行却有问题。
  • 解决:类中出现些许人物错误,机器检查不出来,只能人为去排查。


  • 问题3:练习pp4.5时,想在类中输出语句,却发现怎么改数据boolean都是false。
  • 解决:起初在测试里面引用了类中的isAntique方法,后面随着练系的增多,知道原来在输出时没有引用到类本身的方法。



代码托管

上周考试错题总结

  • 错题1:

  • 理解:字符串是不可变的,一旦创建了一个字符串对象,它就不能被改变。最短的字符串是“”在引号之间没有字符,所以长度为零。
  • 错题2:
  • 理解:编译器能够检测到尝试使用未初始化的变量,在这种情况下它会产生语法错误。如果诸如使用编译器的转义检测,则在使用时发生运行时错误。
  • 错题3:
  • 理解:在[0,1)范围内产生一个伪随机数; 乘以10得到范围[0,10)内的数字; 减去5得到范围[-5,5]中的数字。
  • 错题4:
  • 理解:这两个声明都是合法的Java。s1是一个String引用,它被初始化为String“testing123”。s2是一个String引用,
        它被初始化为字符串“testing 123”。请注意“测试”和“123”之间的距离。所以这两个字符串是不相等的。
  • 错题5:
  • 理解:NumberFormat总是循环; 它从不截断。而且,它提供了货币和百分比的方法。
  • 错题6:
  • 理解:导入语句只能与一个(通配符)一起使用。如果您还需要导入包的所有辅助级别,则必须明确写出它们:
         import package.A.
    ;
        import package.B.*;

    其他(感悟、思考等,可选)




学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 202/202 1/2 15/15 积极主动敲代码
第二周 490/692 1/3 18/33 善于思考
第三周 581/1273 1/4 15/48 善于完善
第四周 1857/3130 1/6 33/81

参考文献

20172319 2018.03.27-04.05 《Java程序设计》第4周学习总结的更多相关文章

  1. 20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

    学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不 ...

  2. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  3. 20155306 2016-2017-2 《Java程序设计》第九周学习总结

    20155306 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 Java语言访问数据库的一种规范,是一套API ...

  4. 20155312 2016-2017-2 《Java程序设计》第九周学习总结

    20155312 2016-2017-2 <Java程序设计>第九周学习总结 课堂内容总结 两个类有公用的东西放在父类里. 面向对象的三要素 封装 继承 多态:用父类声明引用,子类生成对象 ...

  5. 20155213 2016-2017-2 《Java程序设计》第九周学习总结

    20155213 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连 ...

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

    20145221 <Java程序设计>第九周学习总结 教材学习内容总结 整合数据库 JDBC入门 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行 ...

  7. 20155223 2006-2007-2 《Java程序设计》第二周学习总结

    20155223 2006-2007-2 <Java程序设计>第二周学习总结 第三章内容总结 3.1 类型 正如我所预料的情况一样:Java脱胎于C语言,就一定会留有和C语言相近或相同的语 ...

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

    学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...

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

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

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

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

随机推荐

  1. 1347: Last Digit (周期函数)

    1347: Last Digit Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: ...

  2. CentOS6中OpenMP的运行时间或运行性能分析

    OpenMp作为单机多核心共享内存并行编程的开发工具,具有编码简洁等,容易上手等特点. 关于OpenMP的入门,博主饮水思源(见参考资料)有了深入浅出,循序渐进的分析.做并行开发,做性能分析是永远逃避 ...

  3. Debian 8 时间同步

    每天执行一次 sudo ntpdate ntp.ubuntu.com 逐渐觉得麻烦了,有没有自动执行的方法? 在Linux中用户可以执行例行性的工作,使用crontab这个命令. 步骤: 1.在终端中 ...

  4. [教程] 【【【【odex教程之jar】】】】/system/framework里面的jar做odex g13

    dexopt-wrapper core.jar core.odex dexopt-wrapper ext.jar ext.odex dexopt-wrapper framework.jar frame ...

  5. sqlite学习笔记8:C语言中使用sqlite之创建表

    前面已经说了怎样打开和关闭数据库,这次要说得是怎样运行SQL语句,来创建一张表. 要用的的函数: sqlite3_exec(sqlite3* db, const char *sql, sqlite_c ...

  6. BFC (Block formatting context)

     一:BFC 是什么      MDN解释: A block formatting context is a part of a visual CSS rendering of a Web page. ...

  7. linux学习第十九天(iscsi配置)

    一.iSCSI 服务部署网络存储 服务器配置 添加硬盘,创建分区 l[root@localhost Desktop]# ls /dev/sd*  (系统下查看硬盘信息) /dev/sda  /dev/ ...

  8. 记Macbook Pro配合FT232使用PN532模块

    0x00实话. 被自己傻到 在linux下使用 libusb + libnfc 这两个库就可以配合串口直接使用pn532模块 当时配置文件是写在 /etc/nfc 目录下的 而我在OS X 下居然也想 ...

  9. shell命令注意点

    unset 不能删除readonly的变量 实例: #!/bin/bash name="lalala" readonly name unset name 执行结果: line5:u ...

  10. 约束4:唯一约束,Check约束和null

    大家知道,关系型数据库的逻辑运算的结果是三值型的,TRUE,FALSE和UNKNOWN,特别是,NULL值和任何值都不相等,任何值和NULL的比较,返回的逻辑结果都是unknown.而NULL值在唯一 ...