学号:201521123116 《java程序设计》第三周学习总结
1. 本周学习总结
初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识组织起来。请使用纸笔或者下面的工具画出本周学习到的知识点。

书面作业
Q1:代码阅读
public class Test1 {
private int i = 1;//这行不能修改
private static int j = 2;
public static void main(String[] args) {
geti();
Test1.getj();
}
public static void geti() {
System.out.println(i);
}
public static void getj() {
System.out.println(j);
}
}
以上代码可否编译通过?哪里会出错?为什么?尝试改正?
如果创建3个Test1对象,有内存中有几个i,几个j?
答:不能编译通过。System.out.println(i)会出错。static是属于类的,非Static是属于对象,每个对象的值可能都不一样。geti是静态方法不能直接调用未经static定义的变量i。
修改后的代码:
public class Test1 {
private int i = 1;//这行不能修改
private static int j = 2;
public static void main(String[] args) {
geti();
Test1getj();//编写Test1getj()静态方法
}
public static void Test1getj() {
// TODO Auto-generated method stub
System.out.println(j);
}
public static void geti() {
Test1 t=new Test1();//新建一个Test1对象
System.out.println(t.i);//调用它的属性
}
public static void getj() {
System.out.println(j);
}
}
Q2. 构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
答:(1)构造函数可以简单使用函数,得到我们所需的数据,例如求圆的周长或是面积,直接调用函数得出,不需要在代码中重复书写圆的周长和面积的公式,节约成本
(2)编写格式是private/public void/类型(int,String等等) 方法名{}
(3)有,系统默认有一个无参构造函数;若是只有带参函数,需要自己构建,系统只默认有无参构造函数
Q3.使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?分析原因?
答:Math是final类,不是static类。且构造函数被声明为privata,说明不能被外部调用,所以不能new出来一个新的对象。Math类的所有方法都是静态方法,使用Math.方法名就可以。 强行使用new会提示`The constructor Math() is not visible`此构造函数Math()不可见。
Q4.什么是重载?什么是构造函数重载?在java.lang.Math类中举出1个函数重载的例子?怎么才能区分两个重载函数?
java.lang.Math类中函数重载:

答:重载即多个方法拥有相同的方法名但参数不同(参数类型不同,参数个数不同,参数顺序不同)。在一个类中定义多个构造函数,只要构造函数的参数不同,称为重载构造函数。根据重载函数中参数的类型,个数,顺序的不同
来区分两个重载函数。
Q5.final修饰的变量不能改变,为什么如下代码可以正常运行?
final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
Q6:阅读代码EmployeeTest.java,回答:
6.1为什么其属性均为private?这样设计有什么好处?
答:用private封装了类私有数据,不希望被外部的类访问。这样可以让用户无法直接存取,而必须通过管理者提供的操作方法,经过定义的流程才有可能存取私有数据。增强了保密性和安全性。
6.2为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。
6.3为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。
Q7.编写函数public static boolean isMondayToFriday()
功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
提示:使用LocalDateTime, DayOfWeek
public static boolean isMondayToFriday(){
LocalDateTime now = LocalDateTime.now();
DayOfWeek dayOfWeek = now.getDayOfWeek();
if(dayOfWeek!=DayOfWeek.SATURDAY && dayOfWeek!=DayOfWeek.SUNDAY){
System.out.println("上班时间");
return true;
}
else{
System.out.println("休息时间");
return false;
}
}
3. 码云代码提交记录
4.PTA实验总结
- 答:在IDE中,可以使用程序代码自动产生功能来生成取值方法,点击
source—>Generate Constructors from Superclass,创建一个空参的构造函数;点击Source–>Generate Getters and Setters自动生成Getter和Setter方法,可提高效率。 - 初始化类与对象时,先后的顺序应该是静态初始化块,初始化块,构造函数。
- 在Main()中调用时,跟Math一样,直接调用,但要注意参数,要根据自己所要调用的函数写进对应的参数,否则将调用错,达不到自己要的结果
学号:201521123116 《java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 学号20145303 《Java程序设计》第一周学习总结
学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...
- 学号20145322 《Java程序设计》第一周学习总结
学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...
- 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与 ...
- 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结
2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...
随机推荐
- chrome地址栏命令
Chrome作为一个前端开发的标准浏览器,用来体验和测试日新月异的新特性,自然是没话说. 有些新特性是需要特意开启设置的,有很多浏览器的内置功能也是要通过命令来开启或者使用的. Chrome 有很多的 ...
- .Net Core下通过Proxy 模式 使用 WCF
.NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费 ...
- Android App 压力测试 monkeyrunner
Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...
- NSThread创建线程的三种方法
- (IBAction)NSThreadBtnClick:(id)sender { [self threadObjectMethod]; [self threadClassMethod]; [self ...
- 基于spring mvc的图片验证码实现
本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...
- shell 多进程
shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [zheng@localhost ~]$ cat threads.sh #!/bin/bash ;i& ...
- vim 基本编辑操作
一.光标跳转到指定行 1.在命令模式下,跳转到指定行 :n (n为行号) 2.命令行加参数 vim +n fileName 3.命令行加参数 vim + fileName 光标移至文件底部 4. ...
- 【Centos】修改系统字符集
centos7: vim /etc/locale.conf LANG=zh_CN.gb2312 其他版本linux: vim /etc/sysconfig/i18n
- jenkins 设置 gitlab web hooks
背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job. 步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plug ...
- form enctype参数
application/x-www-form-urlencoded 表示在发送前编码所有字符(默认) multipart/form-data 不对字符编码.在使用包含文件上传控件的表单时,必须使用该值 ...

