1.本周学习总结

初学面向对象,会学习到很多碎片化的概念与知识。尝试学会使用思维导图将这些碎片化的概念、知识组织起来。请使用纸笔或者下面的工具画出本周学习到的知识点。截图或者拍照上传。

  本周学习总结:
*学习类与对象的基本知识框架。
*Static\final\this等的使用范围以及在使用中的注意事项
*构造函数与方法重载
*还在进一步学习敲代码中,感觉这周的收获比上周多,理解的多一点。 第一次使用XMind画结构图,画的很烂。。。

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);
}
}

以上代码可否编译通过?哪里会出错?为什么?尝试改正?

如果创建3个Test1对象,内存中有几个i,几个j?

      答:1.编译不能通过。Test1getj();
System.out.println(i);这两个地方编译错误。
Test1getj(); :没有建立新的函数 private static void Test1getj() {
System.out.println(j);
}
System.out.println(i);:变量i是int型,在static下不能访问非static变量。
2.如果创建3个Test1对象,内存中有3个i,1个j。

2.构造函数有什么用?其编写格式是什么?如果一个类不写构造函数,它有构造函数吗?如果一个类中只有带参的构造函数,它有没有不带参数的默认构造函数?

答:1、构造函数能够初始化刚创建的对象,如果我们没有指定对象的初始值,则自动使用默认初始化。
2、编写格式(例如):pibilc class Some{
private int a = 100;
private String text;
public Some(int a,String text){
this.a = a;
this.text = text;
}
} 3、如果在定义一个类时不写构造函数,它有构造函数,编译程序时会自动加入一个无参数,无内容的构造函数。
4、如果一个类中只有带参数的构造函数,编译程序就不会自动建立一个无参数的默认构造函数。

3.使用java.lang.Math类的函数时,为什么不需要new?如果new Math()会产生什么错误?

答:因为Math类的方法及成员变量都是静态的,可以直接使用类名.方法来直接访问。(例如:System.out.println(Math.PI);)
如果构造函数new Math()会发生编译错误,构造的该函数是不可见的。

4.什么是重载?什么是构造函数重载?在java.lang.Math类中举出函数重载的例子?怎么才能区分两个重载函数?

 答:重载就是用相同的方法名称却可以做不一样的事。就好像我们使用同一个工具可以做不同的事情,比如炒锅,可以用来炒菜,煮汤,煮面,炸东西等等。
又或者:public class SomeClass{
public void someMathod(){ }
public void someMathod(int i){ }
public void someMathod(float i){ }
}
构造函数重载:建立很多个相同的方法名的函数,只要参数类型或者个数不同就可以。

*例子如图:

     区分两个重载函数:看他两所使用的参数类型或者个数的多少。

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为当前日期。(粘贴代码)

  答:1.因为一旦用private定义私有成员,别人将无法直接取得这些成员数据,可以保证这些数据的安全,如果别人
要篡改这些隐私的数据,将无法成功。除非我们有提供取值方法(Getter),用户才可以取得。
2. public Employee(){
this("雇员1", 3000 , 2017 , 3, 5);
}
3. public Employee(String n,double s){
name = n;
salary = s;
Calendar now = Calendar.getInstance();
hireDay = now.getTime();
}

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实验总结

   1、这周的实验依然没有写完,但是相比于上周好了一点,至少现在有一点头绪,知道往哪个方向去做。
2、构造函数这块有些还不是特别清楚,使用方法什么的,我想这几天再学习学习。
3、初始化类与对象时,先后的顺序应该是静态初始化块,初始化块,构造函数。

201521123093 java 第三周学习总结的更多相关文章

  1. 20165210 Java第三周学习总结

    20165210 Java第三周学习总结 教材学习内容总结 - 第四章学习总结 编程语言的几个发展阶段: 面向机器语言 面向过程语言 面向对象语言 类: 类声明: class People { ... ...

  2. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  3. JAVA第三周学习总结

    20175303 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 •编程语言的发展分为三个阶段,分别是:面向机器,面向过程,面向对象的语言.Java属于面向对 ...

  4. JAVA 第三周学习总结

    20175308 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 本周的学习内容为整个第四章的内容,学习中感觉知识点既多又杂,故在总结时尽量选用重要的或高度概 ...

  5. java第三周学习

    这一周学习的是java数组面向对象 数组中存放的数据的类型:既可以是基本数据类型也可以是引用数据类型. 数组的定义方式: 1 数据类型[] 数组名; 2 数据类型 数组名[]; 数组的初始化: 1.静 ...

  6. 20165221 JAVA第三周学习心得

    知识点回顾 类与对象学习总结 类:java作为面向对象型语言具有三个特性:①封装性.②继承性.③多态性.java中类是基本要素,类声明的变量叫对象.在类中定义体的函数题叫方法. 类与程序的基本结构: ...

  7. Java第三周学习日记

    Day01 1.线程 进程:进程就是正在运行的应用程序.进程负责了内存空间的划分. 线程:一个进程中的代码是由线程去执行的,线程也就是其中一个执行路径. 多线程:一个进程中有多个线程可以同时执行任务. ...

  8. 201521123093 java 第六周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  9. 201521123093 java 第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

随机推荐

  1. CentOS7.3利用kubeadm安装kubernetes1.7.3完整版(官方文档填坑篇)

    安装前记: 近来容器对企业来说已经不是什么陌生的概念,Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿 ...

  2. 在Entity Framework 中用 Code First 创建新的数据库

    在Entity Framework 中用 Code First 创建新的数据库 (原文链接) 本文将逐步介绍怎样用Code First 创建新数据库,使用在代码中定义类和API中提供的特性(Attri ...

  3. js实现轮播图动画

    在网页浏览中,可以看到轮播图是无处不在的,这是一个前端工程最基本的技巧.首先看看几个网页的呈现的效果. QQ音乐: 网易云音乐: 天猫: 接下来将从简到难总结几种实现轮播图的方法. 1.样式一:鼠标滑 ...

  4. Linux - 简明Shell编程13 - 用户输入(UserInput)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 1 - arguments #!/bin/bash i ...

  5. 在Linux下更新或安装curl

    问题 我这有一个项目是.net core写的,然后运行到centos机器上,刚开始发请求都能正常处理,但是时间长了,程序会报Segmentation fault,然后退出,我查了一下系统log,说的是 ...

  6. HTML5.1 推荐中 1.5.3. Extensibility 段落翻译

    可拓展性 HTML有广泛的可扩展性机制,可用于以安全的方式添加语义: 作者可以使用class属性来扩展元素,有效地创建自己的元素,同时使用最适用的现有的"real"HTML元素,这 ...

  7. StringBulider简单用法

    StringBuild的是个动态对象,可直接拼加上字符串:而string对象的步骤:先初始化对象并赋值了,而后在拼加字符串时,先要创建需要拼加的字符串,然后再拼加,所以这就是StirngBuild远比 ...

  8. 设计模式(7)--Bridge(桥接模式)--结构型

    1.模式定义: 桥接模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥接模式的用意是“将抽象化(Abstraction)与实现化(Impleme ...

  9. Android开发之SoundPool使用详解

    使用SoundPool播放音效 如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长 ...

  10. 错误Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future:

    今天写PHP代码,遇到了这个非常不友好的报错(Deprecated: mysql_connect(): The mysql extension is deprecated and will be re ...