• 20162327WJH第五周作业


    学号 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解决方案:
       private void reduce()
       {
          if(numerator != 0)
          {
             int common = gcd(Math.abs(numerator),denominator);
    
             numerator = numerator / common;
             denominator = denominator / common;
    
          }
       }
       private int gcd(int num1,int num2)
       {
          while(num1 != num2)
             if (num1 > num2)
                num1 = num1 - num2;
            else
                num2 = num2 - num1;
          return num1;
       }
    

    其中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

         int[] array = new int[25];
         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

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

    参考资料

  • 相关阅读:
    TLS1.3&TLS1.2形式化分析(二)
    浏览器代理设置和取消代理
    jdk在window系统中的配置
    pycharm2017.3版本永久激活
    Scyther 形式化分析工具资料整理(三)
    百度快照的检索和反馈删除
    Scyther-Semantics and verification of Security Protocol 翻译 (第二章 2.2.2----2.3)
    双一流学校名单
    Scyther tools 协议形式化分析帮助文档翻译
    全国书画艺术之乡-----通渭
  • 原文地址:https://www.cnblogs.com/20162327WJH/p/6659499.html
Copyright © 2020-2023  润新知