20172333 2017-2018-2 《Java程序设计》第5周学习总结

教材学习内容

1.if语句、if-else语句、switch语句 都是通过对于布尔表达式的结果来进行是否执行下一步语句的条件(选择)语句。

2.“=”为赋值运算符,“==”与“!=”为相等性运算符,“>=" 等关系运算符,以及“!” “&&” “||”等逻辑运算符。

3.各种条件语句下面的一组语句若是大于1条以上,则需要用{}来进行包含,即形成语句块。

4.布尔表达式的结果只有true或者false。

5.if语句和if-else语句中的嵌套类型可以在 其中加入新的if和if-else。

6.浮点数比较时比较特殊,由于浮点数大多是计算结果后产生,不可能达到完全每一位相同,则在比较时引入一个常量TOLERANCE,若两浮点数之间的差值不大于该常量则可以近似看做相同。

7.字符串比较时,实济是在比较每一个字符在ASCIS码中的位置先后。常用equals和compareto。

8.在使用While 语句的时候,一定要设置好结束时候条件不满足,否则会出现无限循环的错误,此时可以用CTRL+c来强制结束程序。

9.for语句是通常知道循环次数的情况。

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

这一次的代码调试问题及解决过程只记录了我在做pp5.7时候的问题,很有意思,而且错误也是花式错误,最后结果输出的时候也与他人做出来的java程序有一点点不同。

  • [x] 问题1:我第一次遇到在Javac成功执行后没有报错后进行运行java程序时不按照java程序走的情况。本来我是在Java程序中定义了要求外界运行改程序时输入:0 1 2 来分别代表 石头 剪刀 布 ,结果我输入以一个数字之后,Java程序毫无反应,看上去像是遇到了无限重复的那种错误。如图

  • 解决过程:我一直把这个问题看做是我可能是犯了永久满足While的错误,在对Java程序检查过程中却发现,我并未犯该错误,我以为是我自己没看出来错误,便将代码给蒋子行同学帮助我检查,然后他也确定While没有问题,事情似乎陷入了僵局,后面我在一次偶然的机会下多按了一次2,如图

。居然成功输出了我想要的结果。然而问题才刚刚开始。。。

  • [x] 问题2:在测试第一个问题的时候,我发现我的代码中有一些错误会导致输出结果无法如愿,当然这都是普通问题,随便更改好就可以了,然而我又再次出现了一些“奇怪”的问题,那就是我在上一次问题中,输入两次数字之后会出现一次结果,现如今变成要么一次输入不出现结果,要么就是两次输出后一次性输出两个结果。如图

  • 解决过程:完全没辙,但是我又发现了一个程序错误,那就是我的if语句中将一个可能性没有排除,导致了输出两个截然相反的结果如图

,在处理完这个问题之后,我原以为这个Java程序也就最多强制让人至少玩两次了,结果最戏剧化的一幕出现了(问题3)。

  • [x] 问题3:我的Java程序本来是要先提问用户出什么0,1,2中的哪一个,在开始输出的,然而我这一更改后不知道咋搞的,输出Java程序后一点反应没有,真的把我吓到了,像是我把这个程序搞坏了一样,抱着弄好第一个问题的方法我随便打了一个数字,结果哪一个提问语句出来了,这种感觉就好比是一个程序休眠了要先打个东西(实测随便什么东西都可以激活,那怕是字母)来激活程序才开始运行一样(捂脸)如图

  • 解决过程:感觉我这个激活程序还很有趣,反正不影响输出,就留下来,不知道原理(求教),代码如图

-总结:在做这个pp5.7的时候算是我第一次独自码这么100多行的Java程序,过程有点艰辛,但是还是有些收获,比如刚开始做这个PP5.7的时候我还单独列了一些处理该PP5.7 的一些要处理的问题,这样做PP5.7的时候不至于摸不着头。如图

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

  • [x] 问题1:Arraylist类的相关定义不清晰
  • 解决过程:我在百度上也进行过一部分寻找,大致感觉这个类就好比是一个数列,而这个数列里面的元素就是各个对象,我在书上和百度查到的一些常用方法,也大多是删除其中的对象或者是添加对象进去,但是其中有三种删除方法。

Remove方法用于删除一个元素,通过元素本身的引用来删除 。

RemoveAt方法用于删除一个元素,通过索引值来删除。

RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除

对于这三者区别完全不理解其中的意思(懵逼)。

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

1.The relationship between a class and an object is best described as

A . classes are instances of objects

B . objects are instances of classes

C . objects and classes are the same thing

D . classes are programs while objects are
variables

E . objects are the instance data of classes

总结:类中包含实例数据与方法,而对象就是实例化的数据。

  1. In order to preserve encapsulation of an object, we would do all of the following except for which one?

A . Make the instance data private

B . Define the methods in the class to access and manipulate the instance data

C . Make the methods of the class public

D . Make the class final

E . All of the above preserve encapsulation

总结:封装意味着该类包含了操纵数据所需的数据和方法。为了正确地保存封装,实例数据不应该直接从类之外访问,因此实例数据是私有的,并且定义了方法来访问和操纵实例数据。此外,访问和操纵实例数据的方法被公开,以便其他类可以使用该对象。

3.If a method does not have a return statement, then

A . it will produce a syntax error when compiled

B . it must be a void method

C . it can not be called from outside the class that defined the method

D . it must be defined to be a public method

E . it must be an int, double, float or String method

总结:只有void方法不用返回,其余的都有相应的返回值。

4.Consider a sequence of method invocations as follows: main calls m1, m1 calls m2, m2 calls m3 and then m2 calls m4, m3 calls m5. If m4 has just terminated, what method will resume execution?

A . m1

B . m2

C . m3

D . m5

E . main

总结:一旦方法终止,方法里的值便会恢复。

5.Consider a Rational class designed to represent rational numbers as a pair of int's, along with methods reduce (to reduce the rational to simplest form), gcd (to find the greatest common divisor of two int's), as well as methods for addition, subtraction, multiplication, and division. Why should the reduce and gcd methods be declared to be private.

A . Because they will never be used

B . Because they will only be called from
methods inside of Rational

C . Because they will only be called from the constructor of Rational

D . Because they do not use any of Rational's instance data

E . Because it is a typo and they should be declared as public

总结:私有定义只能在本类之中使用。

  1. In black-box testing, the tester should already know something about how the program is implemented so that he/she can more carefully identify what portion(s) of the software are leading to errors.

A . true

B . false

总结:黑盒实验,程序员只是知道输入与输出,不知道其具体方法,一点知道方法便变成了透明盒实验了。

7.Interface classes cannot be extended but classes that implement interfaces can be extended.

A . true

B . false

总结:除了final不可扩展,其余均可拓展。

8.Formal parameters are those that appear in the method call and actual parameters are those that appear in the method header.

A . true

B . false

总结:形参是方法头里面的,实参是方法内部的参数。

9.Assume that the class Bird has a static methodfly( ). If b is a Bird, then to invoke fly, you could do Bird.fly( );.

A . true

B . false

总结:静态方法所有都共享。

10.The goal of testing is to
A . ensure that the software has no errors

B . find syntax errors

C . find logical and run-time errors

D . evaluate how well the software meets the original requirements

E . give out-of-work programmers something to do

总结:测试Java程序是为了确保程序逻辑错误不出现。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 125/125 2/2 20/20
第二周 269/394 2/4 未知/38
第三周 477/920 1/5 X/X
第四周 1179/2338 1/6 --
第五周 1131/3154 1/7 ?/?

参考资料

20172333 2017-2018-2 《Java程序设计》第5周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Part2-HttpClient官方教程-Chapter5-流利的API

    5.1. 易于使用的Facade API 使用之前注意引入相应Jar包或者Maven依赖 <dependency> <groupId>org.apache.httpcompon ...

  2. 机器学习开源项目精选TOP30

    本文共图文结合,建议阅读5分钟. 本文为大家带来了30个广受好评的机器学习开源项目. 640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1 最近,Mybridge发布了 ...

  3. Git 常用命令速查表(图文+表格)【转】

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...

  4. $scope作用及模块化解决全局问题

    $scope对象就是一个普通的JavaScript对象,我们可以在其上随意修改或添加属性.$scope对象在AngularJS中充当数据模型,但与传统的数据模型不一样,$scope并不负责处理和操作数 ...

  5. 002 Lock和synchronized的区别和使用

    转自 https://www.cnblogs.com/baizhanshi/p/6419268.html 今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟 ...

  6. 2017多校第10场 HDU 6172 Array Challenge 猜公式,矩阵幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6172 题意:如题. 解法: #include <bits/stdc++.h> using ...

  7. 一个真正的客户端非阻塞的 connect

    前言  - 一个简短开场白 winds 的 select 和 linux 的 select 是两个完全不同的东西. 然而凡人喜欢把它们揉在一起. 非阻塞的connect业务是个自带超时机制的 conn ...

  8. sqlserver2008 死锁解决方法及性能优化方法

    sqlserver2008 死锁解决方法及性能优化方法 原文: http://blog.csdn.net/kuui_chiu/article/details/48621939 十步优化SQL Serv ...

  9. [linux]通过ssh远程设定各服务器时间,从而实现集群时间同步

    #!/usr/bin/env bash #all hosts should to sync time, all hosts should no password login echo other sy ...

  10. Mybatis学习 PageHelper分页插件

    1.Maven依赖,注意使用PageHelper时的版本必须与Mybatis版本对应 1 <!-- 添加Mybatis依赖 --> 2 <dependency> 3 <g ...