王彪20162321 2016-2017-2 《程序设计与数据结构》第5周学习总结

王彪 2016-2017-2 《程序设计与数据结构》第5周学习总结

教材学习内容总结

  • 1.关键概念

    • 1.面向对象程序设计的核心是类的定义,它代表了状态和行为的对象。
    • 2.变量的作用域依赖于变量声明的位置,作用域决定在哪里可以使用变量。
    • 3.对象应该是封装的,以防对数据的不适合访问。
    • 4.方法的返回值类型应该与方法头中规定的返回值类型一致。
    • 5.构造方法不能有任何的返回值,即使是void也不行。
    • .......
  • 2.类定义的结构和内容,类之间的关系,构造方法的目的结构。

  • 3.类的基本编写方式

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

  • 问题1:程序5.11的理解问题
    问题描述:程序5.11是学到现在书中出现的代码量最多的程序,RationalNumber类包含了对有理数的各种操作,包括乘法和除法。这对结对编程项目-四则运算很有帮助。
    解决途径:
   public RationalNumber (int number ,int denom){if (denom == 0)denom =1;if (denom < 0){number = number * -1;denom = denom * -1;}numerator = number;denominator = denom;reduce ();}
  • 1.运用构造函数,if条件语句,巧妙的欲先处理了分数分母为零及为负数的情况,并将值赋给成员变量,最后调用私有方法reduce.
    private void reduce (){ if (numerator != 0){int common = gcd (Math.abs(numerator),denominator);numerator = numerator / common;denominator = denominator / common;}}//--------------------------------------------------// Computes and return the greatest commom divisor of the two//--------------------------------------------------private int gcd (int num1,int num2){while (num1 != num2)if (num1 > num2)num1 = num1 - num2;elsenum2 = num2 - num1;return num1;}}
  • 2.reduce方法引用了gcd方法,这是利用逐差法求分数的最大公约数,并化简为最简形式。
        public RationalNumber multiply (RationalNumber op2){int numer = numerator * op2.getNumerator();int denom = denominator * op2.getDenominator();//int numerator2 = op2.getNumerator() * denominator;//int difference = numerator1 - numerator2;//return new RationalNumber (difference, commomDenominator);return new  RationalNumber (numer , denom);}public RationalNumber divide (RationalNumber op2){return multiply (op2.reciprocal());}
  • 3.有关除法运算,首先调用reciprocal方法将分子分母调换便于计算,再引用multiply方法,而multiply间接调用reduce来化简。
  • 问题2:关于toString方法
    详述:在第七章中就见到过toSting方法,在第五章中出现多次,于是仔细了解了一番
    在将对象传递给print或println方法时,以及将一个对象与一个字符串链接是,都会自动调用对象的toString方法。

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

  • 问题1:误在构造方法中打入return.
    1065456-20170402180304836-568227222.jpg
    解决过程:构造方法没有返回类型(甚至没有void),所以它不能返回任何值。
    补充:对返回值的概念有点模糊,论坛,里面有很形象的比喻

    • 1.为什么要用到返回值呢?比如说你想要开门,可以将返回值比作一把钥匙,你就可以开门,没有return就不能开门
    • 2.返回值就像你工作辞职的时候 你得递交辞职信 但是老板看不看就不知道了
      1065456-20170402184907742-1081221348.jpg

代码托管

1065456-20170402204034867-1373899640.jpg

上周考试错题总结

  • An array cannot hold object types.(数组中不能包含对象类型)(错误)
    数组可以保存任何的基本类型或任何对象类型。保存在数组中的值有时称为数组元素,保存的值的类型称为数组的元素类型。
  • Which of the statements is true about the following code snippet?(对于下面的代码段,说法正确的是?)

       int[] array = new int[25];array[25] = 2;
    This code will result in a run-time error. (代码会产生运行时错误)
    在Java中许多运行时错误称为异常exception,编译程序进行检查,知识查看是否有语法错误。
  • An infinite loop is not a compile-time error.(无限循环不会产生编译时错误)
    无限循环的语法无错误。
  • A while statement always executes its loop body at least once.(while语句的循环体至少会执行一次)
    while循环在布尔表达式为真是重复执行指定的语句。首先要计算表达式的值,所以有可能一次都不执行对应的语句。
  • The ___________________ statement causes execution of a loop to stop, and the statement following the loop to be subsequently executed.(_________ 语句会导致退出循环,然后顺序执行循环后面的语句)
    break语句对循环的影响类似在switch语句中,即终止循环的执行,转去执行循环之后的语句,continue语句类似break,但会再次计算循环条件,如果仍为真,则再次执行循环体。

    结对及互评

  • 上周博客互评情况
    • 20162327王旌含
    • 四则运算深度思考学习,在上周基础上根据本周内容优化代码(上周的思路很幼稚,还有待改进)
  • 上周博客互评情况
    • 20162303
    • 20162329

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

这章的学习并配合视频的学习让我对对象和类的概念有了很好的理解,第七章的不解也有所改变,类的学习,让我在结对编程项目中有了更好的思路,现在回想起当时的...感觉就在菜鸡互啄,很尴尬,虽然现在看来当时有点搞笑,但也很佩服自己,至少能想到是不?

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周070/2001/220/20
第二周300/5002/430/38
第三周620/10003/751/60
第四周1200/2005/980/90
第五周1500/5006/1100/120
第六周000/10000/1100/120
第七周000/13000/1300/120

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表)

参考资料

  • 《Java程序设计与数据结构教程(第二版)》

  • 《Java程序设计与数据结构教程(第二版)》学习指导
  • ...

转载于:https://www.cnblogs.com/wbiao21/p/6657893.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言指针索引数组,C语言数组指针表示法

指针在处理数组时很有用&#xff0c;我们可以用指针指向已有的数组&#xff0c;也可以从堆上分配内存然后把这块内存当做一个数组使用。数组表示法和指针表示法在某种意义上可以互换。不过&#xff0c;它们并不完全相同&#xff0c;后面的“数组和指针的差别”中会详细说明。单…

C# 使用AggregateException 信息

为了得到所有失败任务的异常信息&#xff0c;可以将 Task.WhenAll 返回的结果写到一个Task 变量中。这个任务会一直等到所有任务都结束。否则&#xff0c;仍然可能错过抛出的异常。上一小节中&#xff0c;catch 语句只检索到第一个任务的异常。不过&#xff0c;现在可以访问外部…

Android之内置和外置sdcard路径显示并且写入数据

1、效果图片 2、部分代码 package com.example.sdcardcheck;import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Array; import java.lang.…

数据挖掘——数据仓库

虽然存在数据仓库并不是数据挖掘的先决条件&#xff0c;但实际上&#xff0c;若能访问数据仓库&#xff0c;数据挖掘的任务就会变得容易的多。 数据仓库的主要目标是增加决策过程的“情报”和此过程的相关人员的知识。数据仓库对不同的人来说有不同的意义。 数据仓库是一个集成…

OxyPlot 导出图片及 WPF 元素导出为图片的方法

OxyPlot 导出图片及 WPF 元素导出为图片的方法目录OxyPlot 导出图片及 WPF 元素导出为图片的方法一、OxyPlot 自带导出方法二、导出 WPF 界面元素的方法三、通过附加属性来使用独立观察员 2022 年 2 月 26 日最近有个需求&#xff0c;就是将 OxyPlot 图形导出图片。经过尝试&am…

delphi中利用Indy的TIdFtp控件实现FTP协议

2019独角兽企业重金招聘Python工程师标准>>> delphi中利用Indy的TIdFtp控件实现FTP协议版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。现在很多应用都需要上传与下载大型文件&#xff0c;通过HTTP方式上传大文件有一定的局限性。幸好FT…

C++之map插入数据相同的key不能覆盖value解决办法

1、问题 C里面,如果map里面插入之前的<key, value>,如果key在map里面有的话&#xff0c;不会覆盖之前的value,一般先判断之前有没有数据&#xff0c;有的话先删除&#xff0c;然后再去添加。 2、代码实现 3、运行结果

【BZOJ】【4145】【AMPPZ2014】The Prices

状压DP/01背包 Orz Gromah 容易发现m的范围很小……只有16&#xff0c;那么就可以状压&#xff0c;用一个二进制数来表示买了的物品的集合。 一种简单直接的想法是&#xff1a;令$f[i][j]$表示前$i$个商店买了状态集合为$j$的商品的最小代价&#xff0c;那么我们转移的时候就需…

WPF 实现人脸检测

WPF开发者QQ群此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。接着上一篇利用已经训练好的数据文件,检测人脸 地址如下&#xff1a;http…

C++之函数的默认值参数说明

1、思考 今天看到C代码的时候&#xff0c;发现文件里面的函数定义和实现都有3个参数&#xff0c;特码调用的时候只有2个参数了&#xff0c;日了狗&#xff0c;java里面好像没有这种方式&#xff0c;后来才发现是默认参数 2、代码实现 3、展示结果 4、总结 注意默认参数需要写…

插头DP

AC HDU1693 不能再简单了的插头DP 1 #include <cstdio>2 #include <fstream>3 #include <iostream>4 5 #include <cstdlib>6 #include <cstring>7 #include <algorithm>8 #include <cmath>9 10 #include <queue>11 #include…

自定义控件详解(四):Paint 画笔路径效果

Paint 画笔 &#xff0c;即用来绘制图形的"笔" 前面我们知道了Paint的一些基本用法&#xff1a; paint.setAntiAlias(true);//抗锯齿功能 paint.setColor(Color.RED); //设置画笔颜色 paint.setStyle(Style.FILL);//设置填充样式 paint.setStrokeWidth(10);//设…

2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

去年.NET Conf China 技术大会上&#xff0c;我给大家分享了主题《轻松玩转.NET大规模版本升级》&#xff0c;今天把具体分享的内容整理成一篇博客&#xff0c;供大家研究参考学习。一、先说一下技术挑战和业务背景我们公司&#xff1a;特来电新能源股份有限公司&#xff1a;中…

ASP.NET Core基于滑动窗口算法实现限流控制

前言在实际项目中&#xff0c;为了保障服务器的稳定运行&#xff0c;需要对接口的可访问频次进行限流控制&#xff0c;避免因客户端频繁请求导致服务器压力过大。而AspNetCoreRateLimit[1]是目前ASP.NET Core下最常用的限流解决方案。查看它的实现代码&#xff0c;我发现它使用…

linux操作系统cp命令

转载于:https://www.cnblogs.com/skl374199080/p/3863918.html

sql必读的九本书

2019独角兽企业重金招聘Python工程师标准>>> 原文地址 直接上书(书籍以后会陆续加上去)书籍下载地址 《MySQL必知必会》《SQL学习指南&#xff08;第2版 修订版&#xff09;》《MySQL技术内幕——InnoDB存储引擎》《Redis设计与实现》《ZooKeeper&#xff1a;分布式…

C语言之加入头文件<stdbool.h>可以使用true和false

1、头文件<stdbool.h>介绍 &#xff08;1&#xff09;使用了<stdbool.h>后&#xff0c;可使用true和false来表示真假。 &#xff08;2&#xff09;在循环语句中进行变量声明是C99中才有的&#xff0c;因此编译时显式指明 gcc -stdc99 prime.c 2、最简单的例子 3、…

Nginx负载均衡+转发策略

负载均衡负载均衡(详解)https://cloud.tencent.com/developer/article/1526664--示例1upstream www_server_pool { server 10.0.0.5; server 10.0.0.6&#xff1a;80 weight1 max_fails1 fails_timeout10s; server 10.0.0.7&#xff1a;80 weight1 max_fails2 fails_timeo…

教育行业的互联网焦虑症

2019独角兽企业重金招聘Python工程师标准>>> 文/阑夕 2007年&#xff0c;前新东方名师刘一男在新东方在线&#xff08;网校&#xff09;上的全年课程收入是三千元&#xff0c;四年之后的2011年&#xff0c;这个数字飙升到了四十万&#xff0c;已经和刘一男当年实体…

零基础学人工智能:TensorFlow 入门例子

识别手写图片 因为这个例子是 TensorFlow 官方的例子&#xff0c;不会说的太详细&#xff0c;会加入了一点个人的理解&#xff0c;因为TensorFlow提供了各种工具和库&#xff0c;帮助开发人员构建和训练基于神经网络的模型。TensorFlow 中最重要的概念是张量&#xff08;Tenso…