热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20162322朱娅霖作业005

学号2016-2017-2《程序设计与数据结构》第5周学习总结教材学习内容总结本章出现的概念:P100:对象的状态(属性)、行为(操作)P103:类的成员(数据和方法)P106:作用域;实例数据;

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

教材学习内容总结

本章出现的概念:

  • P100:对象的状态(属性)、行为(操作)
  • P103:类的成员(数据和方法)
  • P106:作用域;实例数据;UML——Unified Modeling Language(统一建语言)
  • P107:关联;封装
  • P108:可见性修饰符(public、 private、 protested);服务方法(公有可见性)、支撑方法(私有方法)
  • P109:访问方法(getX)和设值方法(setX)
  • P112:方法声明
  • P113:驱动程序
  • P117:形参、实参
  • P119-120:静态变量、静态方法
  • P135:方法重载
  • P137-139:白盒测试、黑盒测试;单元测试;集成测试;系统测试
  • P139-140:调试

    教材重要内容摘要

  • 一个对象的行为可能修改对象自身的状态
  • 在Java中,一个对象的操作由类中声明的方法来定义
  • roll方法将新的点数返回给调用方法
  • getFaceValue方法获取任意时刻的当前点数;明确地设置点数,就像亲自把骰子转到想要的点数一样。
  • toString方法返回表示骰子的一个字符串——按字符串形式返回骰子的点数值。
  • 在UML图中,声明为私有可见成员前面加“-”号,声明为公前面加“+”号
  • 类表示对象状态的方式应该独立于对象使用的方式。
  • 被调用的方法可能与调用方法处在统一个类中
  • 构造方法和类名的区别
  • 类的关系:依赖、聚合和继承
  • this的引用 非静态方法是通过一个具体对象或是类来调用的。在方法内,可以使用this引用指当前运行对象

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

  • 问题1:不理解静态方法的含义,若静态方法是通过类名来调用的,那非静态方法呢?
  • 问题1解决方案:再仔细研究第三章的内容,与结对伙伴讨论、在网上查资料得出:
    静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。也就是说,静态方法是在创建实例之前就存在了,而非静态方法是在创建对象之后才有的。
  • 问题2:创建类的程序语句,如何创建类,具体的代码格式?如何运用自己创造的类?
  • 问题2解决方案:仔细研究课本中程序5.2、5.4、5.7、5.9、5.11中的代码,与结对伙伴讨论,看云班课中视频,在网上查资料得出:

1.此类程序代码中包括类名、成员变量(
属性)、成员函数(方法)

2.运用对象之前需要先生成对象
(类名 对象名 = new 类名() )

云班课中视频教程学习内容总结

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

  • 问题1:如何同时编译多个程序?
  • 问题1解决方案:查笔记,问同学得出:
  • javac -d bin src/05class/*.java

代码托管

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

上周考试错题总结

  • It is possible to store 11 elements in an array that is declared in the following way.(下面声明的数组中可以容纳11个元素)
     
         int[] array = new int[10];
     
    A .True B .False

An array declared as above can only store 10 elements.

  • An array declared as an int[] can contain elements of different primitive types.(用int[]声明的数组,元素类型可以是所有基本类型)

A .True B .False

An array that has been declared with a specific type may only contain elements of that type.  In this case the array can only contain integers.

  • Multi-dimensional arrays that contain arrays of different lengths in any one dimension are called _________________.(包括不同长度数组的多维数组叫做_______)

A .ragged arrays(锯齿状数组) B .static arrays(静态数组) C . two-dimensional arrays(二维数组)

D .constant arrays(常量数组) E .overloaded arrays(重载数组)

Ragged arrays are multi-dimensional arrays that contain arrays at the same dimension with differing lengths.

  • What is the precedence of the index operator ( [ ] ) relative to other operators in Java?(Java中,关于索引运算符[]的优先级,下面说法正确的是)

A.It has the lowest precedence of all Java operators.([ ] 优先级最低)

B.It has a higher precedence than addition, but a lower precedence than multiplication.([ ] 优先级比加法高,比乘法低)

C.It has a higher precedence than multiplication, but a lower precedence than addition. ([ ] 优先级比乘法高,比加法低)

D.It has the highest precedence of all Java operators.([ ] 优先级最高)

E.[ ] is not an operator.([ ] 不是运算符)

The index operator has the highest precedence of all Java operators.

  • Which of the following lines of code accesses the second element of the first array in a two-dimensional array of integers, numbers,  and stores the result in a variable called num?(下面哪条语句访问了一个整型二维数组numbers的第二个元素,并把值存入num变量中)

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

Choice b accesses the second element of the first array.  Choice a accesses the third element of the second array.  Choices c and d do not represent valid Java syntax.

  • Which of the following method declarations correctly defines a method with a variable length parameter list?(下面哪个方法声明正确定义了一个变长参数的方法)

A.public int average(int[] list)

B.public int average(int ... list)

C.public int average(int ... list)

D.public int average(int a, int b, int c, ...)

E.public int average(integers)

The only choices with valid syntax are choice a and choice b.  Choice a represents a method declaration with a single parameter, which is a reference to an array.  Choice b correctly represents a valid declaration for a method with a variable length parameter list.

  • Suppose we have an array of String objects identified by the variable names.  Which of the following for loops will not correctly process each element in the array.(假如我们有一个名为names的String对象数组,下面哪个for循环不能遍历数组中的每一个元素?)

A.for(int i = 0; i

B.for(String name : names)

C.for(int i = 0; i

D.none of these will correctly process each element(以上都不能遍历)

E.all of these will correctly process each element(以上都能遍历)

Choice c will not process each element correctly due to a syntax error.  The length variable is not a method and, therefore, does not have parenthesis after it.  Choice b is an example of using a foreach loop to process an array, and choice a is a correct for loop.

  • Which of the statements is true about the following code snippet?(对于下面的代码段,说法正确的是?)
     
             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. (代码会产生运行时错误)

This code will throw an ArrayIndexOutOfBoundsException, since the last index in this array will be 24.  This causes a run-time error.

  • An infinite loop is not a compile-time error.(无限循环不会产生编译时错误)

A.true B.false

An infinite loop is usually caused by a logical error, and will not be caught by the compiler.

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    • 20162323周楠
    • 结对学习内容
      • 共同讨论理解书中的概念
      • 共同讨论弄清书中示例程序代码的含义
      • 共同讨论总结编写类的方法及运用
  • 上周博客互评情况
    • 20162304
    • 20162321
    • 20162323
    • 20162330

其他(思考)

本周有所进步或改进:

  • 本周改进了学习模式,本周按照娄老师推荐的学习模式:先看云班课中的教学视频,再研究教材中的内容,最后再通过代码来加深理解。
  • 本章的新概念特别多,且不易理解,于是我将这些概念单独列出来,通过再仔细研究教材上字面意思,看云班课教学视频,与同学讨论,在网上查资料等方法对这些概念进行理解,最后再通过代码加深理解。

本周的不足与反思:

  • 本周的学习积极性不够高,可能是由于上周学习太累,本周学生会工作任务重的原因吧,总之学习状态特别不好。希望能通过清明节假期的放松休息,及时调整心态,进一步优化学习方法,提高学习效率,做到又快又好。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 85/85 1/1 20/20
第二周 411/489 2/2 25/45 用Scanner输入数据
第三周 504/890 3/3 30/75 进一步加深对类、对象和方法等基本概念的理解
第四周 1175/2065 5/5 40/115 条件语句、循环语句、数组
第五周 841/2901 6/6 30/145 编写类

参考资料

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

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


推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
author-avatar
you_only89
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有