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. HDU 6318 Swaps and Inversions 思路很巧妙!!!(转换为树状数组或者归并求解逆序数)

    Swaps and Inversions Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  2. 轻量级IOC容器:Ninject

    Ninject是一个快如闪电.超轻量级的基于.Net平台的依赖注入框架.它能够帮助你把应用程序分离成一个个松耦合.高内聚的模块,然后用一种灵活的方式组装起来.通过使用Ninject配套你的软件架构,那 ...

  3. js call().apply().bind()的用法

    function Person(age) { this.age = age; } Person.prototype.sayHi = function (x, y) { console.log((x + ...

  4. 大数据入门:Hadoop安装、环境配置及检测

    目录 1.导包Hadoop包 2.配置环境变量 3.把winutil包拷贝到Hadoop bin目录下 4.把Hadoop.dll放到system32下 5.检测Hadoop是否正常安装 5.1在ma ...

  5. kNN分类算法实例1:用kNN改进约会网站的配对效果

    目录 实战内容 用sklearn自带库实现kNN算法分类 将内含非数值型的txt文件转化为csv文件 用sns.lmplot绘图反映几个特征之间的关系 参考资料 @ 实战内容 海伦女士一直使用在线约会 ...

  6. C语言中数组定义方式

    <1>前言 大家首先来思考一个问题,若是我们想要定义两个变量,求这两个数的平均数,该怎么求呢? 例如:int a = 10,b = 20 int average = (a + b) / 2 ...

  7. [转载]C#委托与事件--简单笔记

    原文地址:https://www.cnblogs.com/joeymary/p/8486358.html 委托 简单记录点东西 适合似懂非懂的朋友看看委托类型用来定义和响应应用程序中的回调.借此可以设 ...

  8. updated stream stash changes

    处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理. 1.先将本地修改存储起来 $ git stash 这样本地的所有修改就都被暂时存储起来 .是用git stas ...

  9. PHP 练习(投票)

    1.建立数据库 表1:DiaoYanTiMu 表2:DiaoYanXuanXiang 2.页面 页面1:投票首页 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  10. 使用LINQ的Skip和Take函数分批获取数据

    Skip函数和Take函数是System.Linq对类Enumberable的扩展, 其中Skip函数是跳过序列中的前n个数据,参数为需要跳过的数据量, Take函数是取序列中的n个数据,参数为要获取 ...