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. PCB设计工程师面试题

    网上的一套PCB设计工程师面试题,测下你能不能拿90分?  [复制链接]           一.填空 1.PCB上的互连线按类型可分为()和() . 2.引起串扰的两个因素是()和(). 3.EMI ...

  2. 解决安装macports更新失败问题

       安装 macports 先是卡在开始,xcode的路径指定错误,重新指定一下,然后再sudo port selfupdate,就卡再ports.tar那里不动了.经过google和百度查到参考网 ...

  3. 使用zabbix发送邮件的简易设置流程(存档用)

    1.安装邮件软件 (一般默认安装sendmail,这样apache也不用重新设置.) $sudo yum install sendmail 2.在zabbix上设置发送邮件用的本地邮箱 选择管理-&g ...

  4. go语言的结构体指针

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型.   结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.   结构体表示一项记录,比 ...

  5. Linux下查看Mysql数据库端口的方法

    mysql 默认的端口是 3306,但是如果在安装的时候,修改了mysql的默认端口的话,可以采用以下方式查看 第一种方法: 直接查看数据库的配置文件 在/etc/mysql/my.cnf(Linux ...

  6. 2017-2018-1 20155318 《信息安全系统设计基础》第九周课下实践——实现mypwd

    2017-2018-1 20155318 <信息安全系统设计基础>第九周课下实践--实现mypwd 相关知识 man -k 查找含有关键字的内容 与管道命令结合使用:man -k k1 | ...

  7. python基础学习1-网络爬虫程序中的代理IP设置

    #!/usr/bin/env python # -*- coding:utf-8 -*-网络爬虫代理 import urllib.request import random url="htt ...

  8. 【BZOJ1046】[HAOI2007]上升序列

    [BZOJ1046][HAOI2007]上升序列 题面 bzoj 洛谷 题解 \(dp\)完之后随便搞一下即可,注意不要看错题 代码 #include <iostream> #includ ...

  9. 用C实现单隐层神经网络的训练和预测(手写BP算法)

    实验要求:•实现10以内的非负双精度浮点数加法,例如输入4.99和5.70,能够预测输出为10.69•使用Gprof测试代码热度 代码框架•随机初始化1000对数值在0~10之间的浮点数,保存在二维数 ...

  10. 2018"百度之星"程序设计大赛 - 资格赛 1002 子串查询

    题面又是万能的毒毒熊... 实在不想写了,就只写了这题 记26个前缀和查询枚举最小值直接算 实在是氵的死 而且我忘记输出Case #%d 想了很久 >_< #include<bits ...