学号 20162327 《程序设计与数据结构》第5周学习总结

教材学习内容总结

  • 1.java是一种面向对象的语言。面向对象是一种编程方法。更是一种思维方式。
  • 2.面向对象编程的终极目标是消除重复代码。
  • 3.创建类的方法:class + 类名{属性(成员变量);方法(成员方法)}
  • 4.两种内存

    栈内存:存放着对象的名字,称为“引用”。

    堆内存:存放着对象的本体。
  • 5.使用对象调用变量和函数

    对象.成员变量

    对象.成员函数

    生成一个对象必须用“new”
  • 6.构造函数
  • 7.访问方法:getX

    设置方法:setX
  • 8.方法声明头部包含返回值类型、方法名和方法列表的参数列表

    方法头部指定的返回值类型可以是一个基本类型、类名或者是保留字void
  • 9.this的用法

    1.使用this调用成员变量和成员函数,this是代表调用那个函数的对象。

    2.使用this调用构造函数。
  • 10.形式参数和实际参数的区别和联系。
  • 11.static 关键字

    1.定义静态成员变量(可以直接用类名来调用,也可以用对象名来调用)

    2.定义静态函数(也可以直接用类名来调用,不能使用this)

    3.注意:一个静态变量属于一个类,静态函数中不能引用非静态的成变量。
  • 12.程序的测试和程序的调试的相关内容。其中调试尤为重要。

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

  • 问题1:程序5.11有关求最大公约数的问题。
  • 问题1解决方案:
  1. private void reduce()
  2. {
  3. if(numerator != 0)
  4. {
  5. int common = gcd(Math.abs(numerator),denominator);
  6. numerator = numerator / common;
  7. denominator = denominator / common;
  8. }
  9. }
  10. private int gcd(int num1,int num2)
  11. {
  12. while(num1 != num2)
  13. if (num1 > num2)
  14. num1 = num1 - num2;
  15. else
  16. num2 = num2 - num1;
  17. return num1;
  18. }

其中gcd是用来求最大公约数的一个函数,其原理是使用了数学中的辗转相减法。

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

  • 问题1:调用不同类或同类中方法的格式。
  • 问题1解决方案:一般是1、对象.成员变量2、对象.成员函数
访问包的位置 private protected public
本类 可见 可见 可见
同包其他类或子类 不可见 可见 可见
其他包的类或子类 不可见 不可见 可见

代码托管

代码量截图

代码提交过程

上周考试错题总结

  • 1.(下面哪条语句访问了一个整型二维数组numbers的第二个元素,并把值存入num变量中)答案:B

    A .num = numbers[1][2];

    B .num = numbers[0][1];

    C .num = numbers.getElement(1, 2);

    D .num = numbers.getElement(0, 1);

    E .none of the above are correct.

    解析:[0][0]是第一个元素,[1][2]访问的是第三个元素。

  • 2.(对于下面的代码段,说法正确的是?)答案:E

    1. int[] array = new int[25];
    2. array[25] = 2;

    A .The integer value 2 will be assigned to the last index in the array.(整数2会赋给数组中最后一个元素)

    B .The integer value 25 will be assigned to the second index in the array.(整数25会赋给数组中的第2个索引)

    C .The integer value 25 will be assigned to the third value in the array. (整数25会赋给数组中的第3个元素)

    D .This code will result in a compile-time error.(代码会产生编译时错误)

    E .This code will result in a run-time error. (代码会产生运行时错误)

  • 3.(无限循环不会产生编译时错误)答案:A

    A .true

    B .false

  • 4.(在Java中,布尔表达式中最多有两个逻辑运算符)答案:B

    A .false

    B .true

  • 5.已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,使用一下哪个命令后可以进入/home/stud1/test? 答案:B

    A .cd home

    B .cd stud1/test

    C .cd /stud1/test

    D .cd test

    注意:cd 和 第一个文件名之间没有“/”

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况

    • 结对同学学号20162327
    • 结对学习内容

      本周我和我的小伙伴继续研究了分数的计算问题,原来我们考虑的是用switch语句对加减乘除运算进行分块,不过,学了第五章后,我们学会了使用调用方法。就是当一个问题比较复杂时,我们可以可以分解为几个私有的支撑方法,来去调用它。参考书上的程序5.11,我们掌握了求分子分母最大公约数的方法--辗转相减法,还有两个分数相除就等于乘以它的倒数这些小技巧,虽然现在看起来这些都很容易想到,但是要与编程结合起来还是有难度的。总之,我们俩配合默契,在学习中做到了互帮互助,共同提高,感觉很棒!
  • 上周博客互评情况

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

这周学习的第五章的内容,具有非常强的逻辑性,非常考验我们的思维能力,有时候一段内容要看好长时间甚至看其他的参考书才能理解,并且这种逻辑很容易遗忘,必须每天都看一看,增强理解,看的次数多了,时间长了,逻辑也就会慢慢地变清楚了。虽然我现在还不熟很清楚,但是已经比刚开始看好多了。还有,自己动手编写一些程序也是帮助很大的,这样你就有了自己的思维方式,有了自己独特的理解,为以后的学习锻炼一个好的思维方式。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 100/100 1/1 16/16
第二周 257/257 1/1 22/22
第三周 465/465 1/1 26/26
第四周 875/875 2/2 40/40
第五周 600/600 1/1 40/40

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

参考资料

20162327WJH第五周作业的更多相关文章

  1. 2018-2019-1 20189221《Linux内核原理与分析》第五周作业

    2018-2019-1 20189221<Linux内核原理与分析>第五周作业 实验四 实验过程 当用户态进程调用一个系统调用时,cpu切换到内核态并开始执行一个内核函数. 在Linux中 ...

  2. 2017-2018-1 JaWorld 第四、五周作业

    2017-2018-1 JaWorld 第四.五周作业 两周工作内容 小组讨论并确定最终的app雏形 合作完成需求说明书 工作分工 成员 分工 比例 陈是奇 1.引言 8% 马平川 2.1-2.5 产 ...

  3. 2017-2018-1 JAVA实验站 第四、五周作业

    2017-2018-1 JAVA实验站 第四.五周作业 JAVA实验站小组成员 学号 名字 职务 20162318 张泰毓 组长 20162303 石亚鑫 组员 20162304 张浩林 组员 201 ...

  4. 2017-2018-1 20179205《Linux内核原理与设计》第五周作业

    <Linux内核原理与设计>第五周作业 视频学习及操作分析 一.用户态.内核态和中断 内核态在CPU执行中对应高执行级别,执行级别为0级,具有特权指令,可以访问任意物理地址:用户态执行级别 ...

  5. 第五周作业:markdown语法小总结

    第五周作业 markdown语法总结 早就想写这么一个文章了,关于markdown的语法,因为最近使用的比较多,所以特地总结一下 一,标题 首先要介绍的就是标题, 标题一共有六级 # h1 ## h2 ...

  6. 2019-2020-1 20199329《Linux内核原理与分析》第五周作业

    <Linux内核原理与分析>第五周作业 一.上周问题总结: 虚拟机将c文件汇编成汇编文件时忘记添加include<stdio.h> gdb跟踪汇编过程不熟练 二.本周学习内容: ...

  7. 2019春第五周作业Compile Summarize

    这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 在这里 我在这个课程的目标是 能够精通关于数组内部运作原理 这个作业在哪个具体方面帮助我实现目标 如何输出一行的连续字符 参考文献与网址 ...

  8. 第四周预习作业and第五周作业

    第四周预习作业 统计一行文本的单词个数 本题目要求编写程序统计一行字符中单词的个数.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式: 输入 ...

  9. 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)

    ---恢复内容开始--- 学号 20162310<程序设计与数据结构>第五周学习总结 教材学习内容总结 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素, ...

随机推荐

  1. 《用TCP/IP进行网络互连》读书笔记

    <用TCP/IP进行网络互连>读书笔记   第2章,基本网络技术 网络通信分类:基于连接的通信(connection-oriented),基于非连接的通信(connectionless) ...

  2. 使用 github 做代码管理,知道这些就够了

    只要掌握了下面的常用命令,基本上用使用 github 就没有问题.github 有两种认证方式,一种是通过 ssh 私钥的方式,一种通过 https 的账号名和密码.ssh 方式需要创建本地秘钥并且添 ...

  3. 护航者,腾讯云: 2017年度游戏行业DDoS态势报告—回溯与前瞻

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 前言 自14年开始,全球DDoS攻击持续爆发,攻击峰值不断创记录.2017年,这种依靠超大流量不断冲击服务器和带宽造成业务 ...

  4. Css Secret 案例全套

    Css Secret 案例全套 github地址 案例地址 该书揭示了 47 个鲜为人知的 CSS 技巧,主要内容包括背景与边框.形状. 视觉效果.字体排印.用户体验.结构与布局.过渡与动画等.去年买 ...

  5. [BZOJ1602] [Usaco2008 Oct] 牧场行走 (LCA)

    Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走, ...

  6. canvas练手项目(一)——选取图片

    今天无事可做,在春意盎然的下午突发奇想想做一个关于图片处理的在线网页应用.不要问我为什么做这个,因为我想做!关于这个项目,我想基于canvas来实现,canvas是个好东西,我一直很喜欢,就是我没有做 ...

  7. Mac下安装FFmpeg教程

    一.安装ffmpeg 分为两种安装方式: 1. 命令行安装 brew install ffmpeg 2. 下载压缩包安装 去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压 ...

  8. SDP(12): MongoDB-Engine - Streaming

    在akka-alpakka工具包里也提供了对MongoDB的stream-connector,能针对MongoDB数据库进行streaming操作.这个MongoDB-connector里包含了Mon ...

  9. 状压dp入门

    状压dp的含义 在我们解决动态规划题目的时候,dp数组最重要的一维就是保存状态信息,但是有些题目它的具有dp的特性,并且状态较多,如果直接保存的可能需要三维甚至多维数组,这样在题目允许的内存下势必是开 ...

  10. CCF-201803-2 碰撞的小球

    问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒.当小球到达线段 ...