学号:201621123032 《Java程序设计》第3周学习总结
1:本周学习总结
1. 写出你认为本周学习中比较重要的知识点关键词。
类,对象,封装,继承,方法。
2. 用思维导图或者Onenote或其他工具将这些关键词组织起来
2:书面作业
2.1:以面向对象方式改造数据结构作业'有理数'
- 截图你主要代码(需要在程序中出现你的学号和姓名)并粘贴程序的git地址
- 对比你的代码与历程的代码,说明面向对象编程与面向过程编程有何区别
面对过程需要去写一个个函数,然后在主函数里去调用,来实现计算功能。但是面对过程的话,就把它们写在一个类当中,在主函数中创建对象,来调用类中方法,实现计算。
2.2: 构造函数与初始化块
结合PTA 5(构造函数与toString)说明构造函数有什么用?其函数格式有何特征?
构造函数分为有参构造函数和无参构造函数。类想要创建对象就需要构造函数,创建对象需要进行初始化,构造函数可以对对象进行初始化。如果不声明带参数的构造函数,系统会生成一个无参数构造函数。 格式特征:构造函数函数名要与类名相同,且无返回值。如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
有,当我们不写构造函数时,JVM会自动生成一个无参数的构造函数。 有。查看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);
}
使用字符数组创建一个字符串。
- 结合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类
使用java.lang.Math类的方法时,为什么不需要new出一个Math对象,然后调用该对象上相应的方法?
因为Math是final类,public final class Math
构造函数被声明为final,所以不能被外部调用,不能new出一个对象。如果new Math()会产生什么错误?尝试阅读Math类源代码,分析原因。
因为Math是final类 不能被调用。
- 你觉得什么样的对象需要new出来才能用,调用什么方法时不必创建相应对象就可以使用?
静态方法和静态成员的使用不需要去new对象,可以直接使用,而调用非静态方法时,对象需要被创建。
2.4:重载Overload:
什么是重载?什么是构造函数重载?怎么才能区分两个重载的方法?
重载:同一个类中,存在多个方法是同一个名字,但是参数不同,就是重载。
构造函数重载:构造函数重载和方法重载很像,同一个类中可以有多个构造函数,但是参数不同。
区别:构造函数重载没有返回值,只需要看其参数的特点。在java.lang.Math类中举出1个方法重载的例子?
2.5:代码阅读: final
- 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封装
- 结合PTA(形状),请用自己的话简单总结一下面向对象中封装是什么意思?有何好处?
封装是面向对象编程的核心,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类。 好处:一般封装对用户隐藏其实现细节,保护了私有数据,提高程序的可维护性。 - 和封装有关的关键字有哪些?
封装的四种权限:public(公共的) ,private(私有) protected(保卫的) default(默认的)
2.8结对编程
- 找一个水平相近的同学完成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 |
学号:201621123032 《Java程序设计》第3周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 学号20145303 《Java程序设计》第一周学习总结
学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...
- 学号20145322 《Java程序设计》第一周学习总结
学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...
- 201521123061 《Java程序设计》第九周学习总结
201521123061 <Java程序设计>第九周学习总结 1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1 ...
- 201521123038 《Java程序设计》 第九周学习总结
201521123038 <Java程序设计> 第九周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 ...
- 201521123045 <java程序设计>第11周学习总结
201521123045 <java程序设计>第11周学习总结 1. 本周学习总结 2. 书面作业 2. 书面作业 Q1.1.互斥访问与同步访问完成题集4-4(互斥访问)与4-5(同步访问 ...
- 20175313 张黎仙《Java程序设计》第九周学习总结
目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 2018-2019-3《Java程序设计》第二周学习总结
学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...
- # 20175329 2018-2019-2 《Java程序设计》 第二周学习总结
学号 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨论一下JAVA与 ...
随机推荐
- VmWareTool安装
- SpringBoot集成Shiro并用MongoDB做Session存储
之前项目鉴权一直使用的Shiro,那是在Spring MVC里面使用的比较多,而且都是用XML来配置,用Shiro来做权限控制相对比较简单而且成熟,而且我一直都把Shiro的session放在mong ...
- 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...
- 实战绕过某医院的waf
最近遇到一个注入,我们直接来看吧.还是常规的单引号: 是一个很常规的注入.我们来尝试下获取一些信息: 然后发现是有防火墙的,安全狗.安全狗有很多针对php+mysql的绕过方法,比如这样:/*!uni ...
- 论文笔记(8):BING: Binarized Normed Gradients for Objectness Estimation at 300fps
译文: <基于二值化赋范梯度特征的一般对象估计> 摘要: 通过训练通用的对象估计方法来产生一组候选对象窗口,能够加速传统的滑动窗口对象检测方法.我们观察到一般对象都会有定义完好的封闭轮廓, ...
- 原来你是这样的Websocket--抓包分析
之前自己一个人负责完成了公司的消息推送服务,和移动端配合完成了扫码登录.订单消息推送.活动消息广播等功能.为了加深自己对Websocket协议的理解,自己通过进行抓包的方式学习了一番.现在分享出来,希 ...
- NancyFX 附录: Nuget程序包
Nancy.Authentication.Forms 该程序包向Nancy提供标准的基于ASP.NET/IIS的表单身份验证服务. 采用这个模块启用身份验证后,可以获得标准ASP.NET表单验证方式. ...
- Android 运行时权限及APP适配
Android 6.0起,Android加强了权限管理,引入运行时权限概念.对于: 1. Android 5.1(API 22)及以前版本,应用权限必须声明在AndroidManifest.xml中, ...
- createjs绘制扇形的方法
扇形由三段线条组成,两条直线和一条弧线,直线可以用createjs中的lineTo函数画出,弧线用Graphics.arc函数来画. 一.关于createjs中的Graphics.Arc API Gr ...
- http进阶
前言: 上一篇博文已经说到了,apache2.4简单的配置,端口,持久连接,MPM,DSO,路径下基于来源控制,页面特性,日志设置 安全域,虚拟主机等等. 一:URL URL是互联中获取标记资源的方式 ...