• java第三周作业


    1. 本周学习总结

    2. 书面作业

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

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



    https://gitee.com/yellower/201621123045HuangZiYingYouLiShu.git

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

    答:构造有理数的分子分母的时候java可以直接利用现有的函数进行构造,c语言必须得自己写函数自己建结构体。面向对象编程很多时候都有现成的函数可以使用,不用大费周章一切从0开始。

    2. 构造函数与初始化块

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

    答:构造函数是用来创建一个对象的。
    函数格式分为两种:

    • 有参构造函数格式:public 创造的对象名 () { ...... }
    • 无参构造函数格式:public 创造的对象名 (具体需要设置的里面的变量) { ...... }

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

    答:

    • 有。系统会为其创建一个无参构造函数。
    • 没有。当存在有参构造函数,无参的需要自己写。

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

    • public int length(){return value.length}返回字符串的长度
    • public String(char value[]) {this.value = Arrays.copyOf(value, value.length);}字符串的复制
    • public String() {this.value = new char[0];}创建一个字符串数组

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

    顺序:静态初始化块、实例初始化块、构造函数

    静态变量和静态初始化块都是在类加载到系统时,加载到系统中,静态初始化块只运行一次,实例初始化块和构造函数都是运行两次,也就是说,有一个对象就执行一次实例初始化块和构造函数。

    3.代码分析:Math类

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

    答:因为Math类的所有执行方法都是静态方法,不过调用的时候还是有产生Math对象的。

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


    答:Math源代码中显示Math是private,所以外部调用时会出错。

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

    答:原则上面向对象都需要用new,但是静态的一些方法不需要new,比如Math之类的。

    4. 重载Overload

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

    • 重载:一个类中有好几种方法,方法名都一样,但是参数不一样,返回的值也可以一样,是类的多态性的一种表现。
    • 构造函数重载:构造函数有一样的名字,但是参数的个数或者是类型是不一样的。
    • 区分:参数数量、参数类型。

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

    答:重载abs方法,返回一个数(int、long、float、double)

    5. 代码阅读: final

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

    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    答:对于一个final变量,基本类型的变量是无法更改的;但是如果是引用型的变量,不能让其指向另一个对象,但是对象本身是可以改变的。

    6. Java8中的时间日期类:编写函数public static boolean isMondayToFriday()

    功能:判断今天如果是周一到周五,返回true,返回false。main函数中调用该函数,如果为true则输出“工作日+姓名学号”,否则输出"休息+姓名学号"。

    截图:关键代码。

    提示:使用LocalDateTime, DayOfWeek类

    7. 封装

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

    答:封:封闭,装:装成一个整体。
    作用:

    • 外部对象是无法直接访问对象的内部实现细节
    • 被封装的对象可以被外部多个对象访问

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

    • private:封装的隔离性的体现,将内部设为私有,外部就无法直接访问内部的实现细节;
    • public:与private相反,public把内部细节公开出去;

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

    找一个水平相近的同学完成1-2题实验题。开始编程前,可先对内容进行讨论。

    写出体验报告,包括以下内容:1.对方姓名。2.所完成的题目。3.感想。4.照片(上次很多同学并未贴照片,请贴上)

    姓名:翁华辉
    完成:7-3
    感想:首先,我们两个相对来说都对java没有那么多经验,也是这学期才开始学习,所以抛开之前的学习状况不说,在学习java这边,水平是相近的。实验前我们先一起花十几分钟一起复习了封装相关的知识,然后分配任务,一个写长方形,一个写圆。因为这部分是同时一起写的,而且虽然写的形状不一样,但是代码大多都是类似的,所以遇到问题都一起讨论+百度解决掉,所以这部分的代码完成得蛮高效率的。main函数的部分主要是一些输入和输出的处理,没碰到什么难的问题,最后还是算蛮顺利的完成了这个题目。
    照片:

    3. 码云及PTA

    3.1. 码云代码提交记录

    在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

    3.2 截图PTA题集完成情况图

    需要有两张图(1. 排名图。2.PTA提交列表图)

    3.3 统计本周完成的代码量

    需要将每周的代码统计情况融合到一张表中,可使用最新版的代码统计工具的-history参数,详细用法见项目wiki地址。表格如下所示:

    周次 行数 新增行数 文件数 新增文件数
    1 115 115 17 17
    2 421 306 24 7
    3 698 277 30 6

    只有单周数据,表格是手动整合的。

  • 相关阅读:
    EasyDarwin云平台:EasyCamera开源摄像机接入海康威视摄像机PS流转ES流
    详解Base64编码和解码
    codeblocks主题修改(vim)
    破解swf文件
    StarUML使用说明-指导手册
    codeBlocks编译undefined reference to错误
    C_文件包含.h文件和包含.c文件总结
    C的面向对象编程
    如何在Windows环境搭建Object C开发环境
    net开源项目
  • 原文地址:https://www.cnblogs.com/yellower/p/7616575.html
Copyright © 2020-2023  润新知