zoukankan      html  css  js  c++  java
  • Week03面向对象入门

    面向对象入门

    1. 本周学习总结

    1.1 写出你认为本周学习中比较重要的知识点关键词,如类、对象、封装

    对象,类,构造函数,封装性,继承。

    1.2 用思维导图或者Onenote或其他工具将这些关键词组织起来。

    2. 书面作业

    1.以面向对象方式改造数据结构作业'有理数'(重点)注意:属性必须修饰为private

    1.1 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址。


    git地址

    1.2 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别?

    • 面向过程编程是将所需步骤一步一步实现,数据和对数据的操作是分离的;
    • 面向对象编程是将对象联系起来,将数据和对数据的操作绑定在一起。

    2. 构造函数与初始化块

    2.1 结合PTA5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?

    • 构造函数用于创建对象时初始化对象;
    • 以public或private开头;构造函数名与类名相同;构造函数没有返回值和返回类型。

    2.2 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

    • 系统会为一个没有构造函数的类生成一个构造函数。
    • 系统不会为只有带参的构造函数生成默认构造函数。

    2.3 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。


    1.创建一个空字符串;

    2. 使用字符串对象来初始化;

    3. 使用了数组对象来初始化。

    2.4 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行?

    • 构造函数是对一类的对象统一初始化的方法。用起来方便可以统一管理,构造函数可以重用,
      而代码块只能每次都写。而且如果对象增加了属性,代码块改动的地方就多了。初始化块先执行。
    • 静态块在第一个对象创建时运行,初始化块在每个对象创建时运行。静态初始化块先执行。

    3.代码分析:Math类

    3.1 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?

    Math类中的方法都是静态类的,不需要新创建。

    3.2 如果newMath()会产生什么错误?尝试阅读Math类源代码,分析原因。

    无法运行,出现错误The constructor Math() is not visible;Math类被声明为private,无法用new来构建。

    3.3 进一步:你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?(重点检查)

    使用 static修饰的类是全体对象实例共享的资源,不需要new来修饰。

    4. 重载Overload

    4.1 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?

    • 和返回值类型没有关系,只要函数名一样,参数列表不一样就是重载。

    • 根据参数的数量和属性。

    4.2 在java.lang.Math类中举出1个方法重载的例子?

    public static long subtractExact(long x, long y)public static int subtractExact(int x, int y)

    5. 代码阅读: final。final修饰的变量不能改变,为什么如下代码却可正常运行?

    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    final修饰的NUMBS不能再指向其他数组对象,但它指向的数组的内容可以改变。

    6. Java8中的时间日期类:编写函数public static booleanisMondayToFriday()功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。

    7. 封装

    7.1 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?

    • 封装就是把一系列的对象放在一个类中,从而将属性隐藏起来。
    • 如pta中,矩形的长宽或圆的半径被private封装起来,使得在该类之外无法变动作这些数据。

    7.2 和封装有关的关键字有哪些?

    • 对象
    • 属性
    • public
    • private

    8. 结对编程实践(未完成,0分)


    我的结对对象是张书阳,我们共同完成了pta的jmu-Java-03面向对象基础-02-构造函数与初始化块这道题目。这次结对确实起到了1+1>2的效果,一开始我们确定了思路,虽然代码上也有一些不同的想法,但是在同宿舍的同学的指点下,完成的还算不错。

    3. 码云及PTA

    3.1. 码云代码提交记录

    3.2 截图PTA题集完成情况图


    3.3 统计本周完成的代码量

    行数 新增行数 文件数 新增文件数
    684 456 56 28
  • 相关阅读:
    Hive中频繁报警的问题
    Hadoop中Namenode的HA查询和切换
    昨天面试遇到的一道C语言题
    【转】MapReduce的优化
    关于linux修改max user processes limits的问题
    Hadoop-2.6.0安装文档
    C#使用RabbitMQ
    windows配置Erlang环境
    【转】linux查看及修改文件权限以及相关
    (转)C#图解—PictureBox.SizeMode 属性
  • 原文地址:https://www.cnblogs.com/lsyuan/p/7617558.html
Copyright © 2011-2022 走看看