20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

教材学习内容总结

  • 类和对象的区别:

    • 定义不同:

      类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。

      对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。

    • 范畴不同:

      类是一个抽象的概念,它不存在于现实中的时间、空间里,类知识为所有的对象定义了抽象的属性与行为。

      对象是类的一个具体。它是一个实实在在存在的东西。

    • 状态不同:

      类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何数据时,类本身不存在于内存空间 。

      对象是一个动态的概念,每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为,属性可以随着它自己的行为而发生改变。

  • 类和对象的关系:

    • 类是对象的抽象,而对象是类的具体实例。
      类是抽象的,不占用内存,而对象是具体的,占用存储空间。
      类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

    • 类与对象的关系就如模具和铸件的关系 类的实例化结果就是对象,而对一类对象的抽象就是类,类描述了一组有相同属性和相同方法的对象。

  • 如何理解this?

    • this代表对象的引用

    • this .name 调属性

    • this.func() 调方法

    • this.(string name,int age) 在一个构造函数中,可以调用另外的构造函数,必须写在第一行。

  • 面向对象三大特性;
    • 封装:把客观事物封装成抽象化的类,类里面的数据和方法对内部开放,对外隐藏并且提供访问的方法。

    • 继承:继承是指可以使用已有类所有的功能,并且在不改变原有类的情况下对这些功能进行扩展。

    • 多态:所谓多态就是指一个类实例的相同方法,在不同情形下有不同表现形式。
  • 对象的属性:

    • 对象的属性就是对象具备的各种特征,每个对象的每个属性都具有特定的值。
      • 举例:身高=180cm.
  • 对象的方法:

    • 对象的方法就是对象执行的操作,也就是说对象能干什么。
      • 举例:蔡徐坤的方法:唱、跳、rap、篮球。

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

  • 问题一:运行成功但存在数值问题。

    20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第1张图片
    • 解决方案:重新检查数值设置,逻辑顺序。
  • 问题二:空指针异常
    20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第2张图片

    • 解决方案:检查数组数值是否合理。

代码托管

20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结_第3张图片

上周考试错题总结

1、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

  • 分析:一旦方法终止,控制就会继续使用调用该方法的方法。 在这种情况下,m2调用m4,以便当m4终止时,m2被恢复。(纯英文没有完全理解意思。。。)

2、A variable whose scope is restricted to the method where it was declared is known as a(n)

A .parameter

B .global variable

C .local variable

D .public instance data

E .private instance data

  • 分析:局部变量是那些被声明的方法“本地”的变量,也就是说,它们只能在那个方法中访问。全局变量是那些可以从任何地方访问的变量,而参数是传递给方法的变量。实例数据可以被看作是整个对象的全局变量。

3、A class' constructor usually defines

A .how an object is initialized

B .how an object is interfaced

C .the number of instance data in the class

D .the number of methods in the class

E .if the instance data are accessible outside of the object directly

  • 分析:构造函数(constructor)是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。

4、 Having multiple class methods of the same name where each method has a different number of or type of parameters is known as

A .encapsulation

B .information hiding

C .tokenizing

D .importing

E .method overloading

  • 分析:当方法共享相同的名称时,它们被称为重载。消息中传递的参数的数量和类型提供了调用适当方法的信息。

5、Instance data for a Java class

A .are limited to primitive types (e.g., int, float, char)

B .are limited to Strings

C .are limited to objects(e.g., Strings, classes defined by other programmers)

D .may be primitive types or objects, but objects must be defined to be private

E .may be primitive types or objects

  • 分析:实例数据是组成类的实体,可以是任何可用的类型(无论是基元类型还是对象类型),也可以是公共类型或私有类型。通过使用对象作为实例数据,它允许在其他类的基础上构建类。如果一个类拥有其他类的实例数据,则这种关系称为has-a关系。

6、An example of passing message to a String where the message has a String parameter would occur in which of the following messages?

A .length

B .substring

C .equals

D .toUpperCase

E .none of the above, it is not possible to pass a String as a parameter in a message to a String

  • 分析:长度和toUpperCase消息没有参数,子字符串有两个int参数。对于equals,必须将字符串作为参数传递,以便接收消息的字符串可以与作为参数传递的字符串进行比较。

7、The following method header definition will result in a syntax error: public void aMethod( );

A .true

B . false

  • 分析:语法错误的原因是它以“;”符号结束。相反,它需要在{}后面加上括号内的0或更多的指令。抽象方法将以“;”结束,但是这个头没有定义抽象方法。

反思:

本周实验及其难搞,还需努力。

结对及互评

点评

  • 博客中值得学习的:
    • 教材学习内容概括行强,简介明了。
    • 有自己动手打新代码,加入了很多个人的理解。
    • 内容很充实,很用心,比上次进步了很多。
    • 博客格式正确,运用了很多不同的方法,排版精美。
    • 希望能在课本内容总结以及问题&解决过程中加入自己的思考,使博客内容更加充实。
      基于评分标准,我给本博客打分12分:
      得分情况如下:
      正确使用Markdown语法(加1分)
      模板中的要素齐全(加1分)
      教材学习中的问题和解决过程(加2分)
      代码调试中的问题和解决过程(加2分)
      其他加分(加6分)
      进度条中记录学习时间与改进情况(1)
      感想,体会不假大空(1)
      有动手写新代码(1)
      错题学习深入(1)
      点评认真,能指出博客和代码中的问题(1)
      结对学习情况真实可信(1)

      点评过的同学博客和代码

  • 本周结对学习情况:
    • [20182316]

      参考资料

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

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




    ㅤ| 代码行数(新增/累积) | 博客量(新增/累积)|学习时间(新增/累积)|重要成长

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 138/138 2/2 23/23 减少了鼠标的使用次数
第二周 749/887 1/4 25/48 对JAVA感触加深
第三周 765/1652 1/5 19/67 对JAVA感触加深
第四周 694/2346 1/6 20/87 学会了类

你可能感兴趣的:(20182332 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结)