1:本周学习总结

1. 写出你认为本周学习中比较重要的知识点关键词。

类,对象,封装,继承,方法。

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

2:书面作业

2.1:以面向对象方式改造数据结构作业'有理数'

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

有理数代码

  1. 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别
    面对过程需要去写一个个函数,然后在主函数里去调用,来实现计算功能。但是面对过程的话,就把它们写在一个类当中,在主函数中创建对象,来调用类中方法,实现计算。

2.2: 构造函数与初始化块

  1. 结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
    构造函数分为有参构造函数和无参构造函数。类想要创建对象就需要构造函数,创建对象需要进行初始化,构造函数可以对对象进行初始化。如果不声明带参数的构造函数,系统会生成一个无参数构造函数。 格式特征:构造函数函数名要与类名相同,且无返回值。
  2. 如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
    有,当我们不写构造函数时,JVM会自动生成一个无参数的构造函数。 有。

  3. 查看String类的源代码,找出3个看得懂的String类的构造函数,并使用自己的话描述这3个构造函数的区别。
    1:public String() 为无参数构造函数。
    2:
public String(String original)this.value = original.value;this.hash = original.hash;}    

有参函数,进行初始化,使用已存在的自字符串去创建相同的字符串。
3:

public String(char value[]) {this.value = Arrays.copyOf(value, value.length);}    

使用字符数组创建一个字符串。

  1. 结合PTA(构造函数与初始化块)说明初始化块与构造函数的异同。并说明,初始化块与构造函数谁先执行?初始化块与静态初始化块有何不同,谁先执行
    以Pta的题目为例子:

静态初始化块:static{System.out.println("This is static initialization block"); }
初始化块:

{System.out.println("This is initialization block, id is "+count);//id++;setId(count);count++;}

静态初始化只运行一次,初始化块和构造函数运行多次。
运行顺序;静态初始化块 >实例初始化块> 构造函数.

非静态初始化块(构造代码块):
作用:给对象进行初始化。对象一建立就运行,且优先于构造函数的运行。
与构造函数的区别:非静态初始化块给所有对象进行统一初始化,构造函数只给对应对象初始化。
应用:将所有构造函数共性的东西定义在构造代码块中。

静态初始化块:
作用:给类进行初始化。随着类的加载而执行,且只执行一次
与构造代码块的区别:
1)构造代码块用于初始化对象,每创建一个对象就会被执行一次;静态代码块用于初始化类,随着类的加载而执行,不管创建几个对象,都只执行一次。
2)静态代码块优先于构造代码块的执行
3)都定义在类中,一个带static关键字,一个不带static

2.3:代码分析:Math类

  1. 使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
    因为Math是final类,public final class Math 构造函数被声明为final,所以不能被外部调用,不能new出一个对象。

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


因为Math是final类 不能被调用。

  1. 你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?
    静态方法和静态成员的使用不需要去new对象,可以直接使用,而调用非静态方法时,对象需要被创建。

2.4:重载Overload:

  1. 什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
    重载:同一个类中,存在多个方法是同一个名字,但是参数不同,就是重载。
    构造函数重载:构造函数重载和方法重载很像,同一个类中可以有多个构造函数,但是参数不同。
    区别:构造函数重载没有返回值,只需要看其参数的特点。

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

2.5:代码阅读: final

  1. final修饰的变量不能改变,为什么如下代码却可正常运行?
    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    final是指变量不能变,但变量内容可以变。

    当final修饰基本类型变量时,不能对基本类型变量重新赋值,即基本类型变量不能被改变,当final修饰引用类型变量时,引用类型变量保存的仅仅是一个引用,即final只保证这个引用类型变量所引用的地址不能改变, 即一直引用同一个对象,但是这个对象的内容可以改变。

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

public static boolean isMondayToFriday(){LocalDateTime data=LocalDateTime.now();
DayOfWeek week =data.getDayOfWeek();if(!week.equals("6")&&!week.equals("7")){System.out.println("工作日 王彩云 201621123032");return true;}else {System.out.println("休息日 王彩云 201621123032");return false;

2.7封装

  1. 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
    封装是面向对象编程的核心,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类。 好处:一般封装对用户隐藏其实现细节,保护了私有数据,提高程序的可维护性。
  2. 和封装有关的关键字有哪些?
    封装的四种权限:public(公共的) ,private(私有) protected(保卫的) default(默认的)

2.8结对编程

  1. 找一个水平相近的同学完成1-2题实验题。开始编程前,可先对内容进行讨论。
    结对成员:罗佳 结对题目:jmu-Java-03面向对象基础-02-构造函数与初始化块 jmu-Java-03面向对象基础-03-形状
    过程:再写jmu-Java-03面向对象基础-02-构造函数与初始化块这题时,我们在如何让Id的值发生变化,已经如何让实例初始化块先打印完在打印构造函数.,遇到问题。罗佳提出了她的思路,我负责按照她的思路进行代码修改。最终我们两经过讨论,解决这个问题。我们先循环为id复制,在打印。 写 jmu-Java-03面向对象基础-03-形状这题时,我们在mian函数产生了分歧,经过各自思路的讲解,我觉得我的可能更为简便一些。
    感受:本次结对编程,因为一开始大家对类,对象的概念理解不深,所以结对编程更有利于问题的解决,但偶尔还是会出现无法理解或较难理解对方思路。
    图片:

3:码云及PTA

3.1: 码云代码提交记录

3.2:截图PTA题集完成情况图


3.3:统计本周完成的代码量

周次 总代码量 新增加代码量 总文件夹 新增加文件夹
1 114 114 11 11
2 520 520 16 16
3 1089 569 22 22

转载于:https://www.cnblogs.com/862139498wcy/p/7606149.html

学号:201621123032 《Java程序设计》第3周学习总结相关推荐

  1. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  2. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  3. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  4. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  5. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  6. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  7. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  8. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  9. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  10. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

最新文章

  1. mysql filde_备份一个约250G的mysql实例【xtrabackup备份方案对比】
  2. Sublime Text 常用插件和快捷键
  3. Community Server专题五:IHttpHandlerFactory
  4. java 读写文件[多种方法]
  5. 【转】NuGet.org 无法访问的解决方法
  6. Hiredis库的简单使用
  7. 复用 TensorFlow 模型
  8. 【Android基础】Android Toast显示消息的几种方法
  9. Ubuntu 安装 TPM-2.0 TSS 软件栈
  10. java方法调用制作万年历,基于JAVA的万年历api调用代码实例
  11. 算法分析与设计——分治法实验报告
  12. C2:Unity3D制作智能家居设计软件——绘制户型(一)
  13. postman调用webservice接口
  14. 2022北京马拉松,特步助力阿奴拜克-库弯大幅PB夺冠
  15. 【从零开始vnpy量化投资】三. 手动安装vnpy环境
  16. 解决mysql sum求和返回null问题或IFNULL应用
  17. 华为Freebuds 5电量耐用吗?续航怎么样?
  18. SonrLint常见解决方案
  19. ORA-01119、ORA-27040的两种可能存在的错误
  20. 高度自适应布局 flew伸缩布局

热门文章

  1. 《数字逻辑设计与计算机组成》一 第2章 2.1 简介
  2. Python语言学习 (六)1.2
  3. PHP自己实现var_dump函数
  4. 转Git学习碰到的问题
  5. 查询存储过程,数据库对象的创建历史
  6. python怎么打包_如何将一整个python工程打包
  7. android真实项目教程(二)——漫画App初构_by_CJJ
  8. 用vs2008创建运行c++项目
  9. JSTL和EL的使用
  10. linux安装jdk笔记