201521123072《java程序设计》第三周学习总结
201521123072《java程序设计》第三周学习总结
标签: java学习
1. 本周学习总结

2. 书面作业
1,代码阅读
public class Test1 {
private int i = 1;//这行不能修改
private static int j = 2;
public static void main(String[] args) {
geti();
Test1getj();
}
public static void geti() {
System.out.println(i);
}
public static void getj() {
System.out.println(j);
}
}
以上代码可否编译通过?哪里会出错?为什么?尝试改正?
不可以通过编译,第7行,第11行出错。因为geti()方法是静态的,可是i却是非静态的,应该改为:public void geti(),
Test1 Test=new Test1();
Test.geti();
第7行调用方法时的格式写错了,应该为:Test1.getj();
如果创建3个Test1对象,有内存中有几个i,几个j?
三个i,一个j
2,构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?
构造函数的作用:给对象中的属性进行初始化,编写格式为:构造函数名与类名相同即可
如果一个类不写构造函数,它有构造函数
如果一个类中只有带参的构造函数,它没有不带参数的默认构造函数
3,使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?
Math类的源代码如下:(只是部分)
public final class Math {
/**
* Don't let anyone instantiate this class.
*/
private Math() {}
/**
* The {@code double} value that is closer than any other to
* <i>e</i>, the base of the natural logarithms.
*/
public static final double E = 2.7182818284590452354;
}
由上可见,Math类的构造函数是没有参数的,并且为私有的,其他的方法也全为私有的,在外部是不能改变的。
如果new Math(),会提示:The constructor Math() is not visible
4,什么是重载?什么是构造函数重载?在java.lang.Math类中举出函数重载的例子?怎么才能区分两个重载函数?
重载:函数的函数名相同,自变量的类型不同或者参数的个数不同
构造函数重载:函数的函数名与类名相同,自变量的类型不同或者参数的个数不同
java.lang.Math类中函数重载的例子:
根据自变量的类型不同或者参数的个数来区分
5,final修饰的变量不能改变,为什么如下代码可以正常运行?
final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
因为数组是对象,用final定义数组对象,只是数组这个对象不可变,即该数组名不能指向其他的数组,但是里面的数值还是可以改变的
6,阅读代码EmployeeTest.java,回答:
为什么其属性均为private?这样设计有什么好处?
为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。(粘贴代码)
为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。(粘贴代码)
其属性为private,限制了访问权限,可以不让外部随意更改类中已经打包好的代码,体现了封装的特性
为Employee类增加一个无参构造函数:
public Employee(){
this ("雇员1",3000,2017,3,5);
}
为Employee类再增加一个有参构造函数:
public Employee(String name, double salary){
System.out.println(LocalDate.now());//当前日期,当前系统默认时区
}
7,编写函数public static boolean isMondayToFriday()
功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。
提示:使用LocalDateTime, DayOfWeek
参考资料:
JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf
Java8DateTimeTest.java
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实验
题目集:jmu-Java-03-面向对象1-基础-封装继承 中的编程(5-1, 5-2, 5-3)
实验1:
可以通过以下方法建立对象数组:
Person []persons = new Person[n];
for(int i=0;i<n;i++){
persons[i]= new Person(in.next(),in.nextInt(),in.nextBoolean());
}
学会了用快捷方法写Getter,Setter,toString方法
实验2:
对象建立之后会先执行对象初始区块,若有静态初始区块,则先执行静态初始化块,并且只执行一次,接着才调用指定的构造函数
201521123072《java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
随机推荐
- 使用pg_upgrade工具为PostgreSQL进行版本升级
公司的测试环境和生产环境都是9.2.4版本,而开发环境是9.0.18版本. PS: 不知道公司里的其它同事,是如何做数据库迁移的,利用第三方可视化工具备份数据库,然后恢复到其它高版本的环境?反正我没成 ...
- Python打包EXE神器 pyinstaller
最近由于项目需要,以前的python文件需要编辑为EXE供前端客户使用. 由于最早接触的是distutils,所以一开始准备使用distutils和py2exe搭配来进行python的exe化,也就是 ...
- layer弹出层详解
前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的). layer至今仍作为layui的代表作,她的受众广泛并 ...
- C/C++ 知识点---设计模式
在软件工程中,设计模式用来描述在各种不同情况下,要怎么解决问题的一种方案.面向对象设计模式通常以类或对象来描述其中的关系和相互作用,是软件“设计”层次上的问题.使用设计模式可提高代码的重用性和可靠性, ...
- Java的static和final关键字的用法
static关键字的用法 static的意思是"'静态的",在java里面可用于修饰属性和方法. static关键字的应用应注意以下几种情形: 1.static作用于某个字段,一个 ...
- 绿盟RSAS配置小记
拿到了一个漏扫的虚拟机,可是配置一直上不了网,最后是配置扫描端口网卡,并在主网卡上不做网关配置从而得到解决. 漏扫虚拟机的网络配置是这样一共七块桥接网卡,一块是主网卡,其余六块是扫描口网卡. 主网卡只 ...
- 像Linux终端一样使用windows命令行【cmder】
像Linux终端一样使用windows命令行[cmder] 下载cmder 我下载的是full版,下载之后是个压缩包,解压之后点击cmder.exe即可运行. 需要解决的几个问题 默认的是λ,当然还是 ...
- Android NDK Application.mk(中文翻译)
作者:阿宝 更新:2016-08-31 来源:彩色世界(https://blog.hz601.org/2016/07/26/android-NDK-application-mk/index.html) ...
- 最短路 - floyd算法
floyd算法是多源最短路算法 也就是说,floyd可以一次跑出所以点两两之间的最短路 floyd类似动态规划 如下图: 用橙色表示边权,蓝色表示最短路 求最短路的流程是这样的: 先把点1到其他点的最 ...
- 【Spring 核心】高级装配
高级装配用来适应开发和生产 不同环境下的软切换 一.环境与profile 1.开发环境下的profile package com.bonc.config; import javax.sql.DataS ...