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. ios 加密

    0728 加密 MD5加密 可解 因为有MD5库 但是可以通过 加盐(也就是拼接字符串  在进行加密)的方法进行加密这样在解得时候就不会那么容易 也可以使用时间戳 进行加盐 加密 时间戳 可只用到分钟 ...

  2. sqlite 的基本使用1

    mac 下自带的sqlite3 直接在终端键入 sqlite3 即进入 sqlite的交互界面 1,创建数据库 sqlite3 命令 被用来创建新的数据库 比如sqlite3 mydb,即创建了一个m ...

  3. python学习之数字

    数字python中的数字比较典型,典型在可以表示很小的数,也可以表示很大的数,c语言的数字类型如果表示很大的数的话,可能会报溢出错误,但是python不会,python 数字类型的完整工具包括整数和浮 ...

  4. Python实现登录接口

    要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...

  5. 初探 spring data(一)--- spring data 概述

    由于自己一个项目要用多到Sql与NoSql两种截然不同的数据结构,但在编程上我希望统一接口API,让不同类型的数据库能在相同的编程接口模式下运作.于是找了一个spring的官网,发现一个spring ...

  6. java代码_按要求输出相应沙漏

    package Callatz;/* 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印******* *****   ***    *   ...

  7. CodeSmith系列(三)——使用CodeSmith生成ASP.NET页面

    仍然使用之前的XML文件,然后设置生成参数如下: 生成调整后的页面如下: 生成的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  8. jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图

    package com.potevio.rnd; import java.io.File; import java.io.FileNotFoundException; import java.io.F ...

  9. 【PL/SQL Developer】动态执行表不可访问,本会话的自动统计被禁止

    在执行菜单里你可以禁止统计,或在v_$session,v_$sesstat 和 v_$statname 表里获得select权限 解决办法 [oracle@localhost ~]$ sqlplus ...

  10. Swift语言中与C/C++和Java不同的语法(五)

    这一节将会提到Swift中其他的关于函数的应用,这些内容包括有: 默认参数值和可变参数值.常量参数.返回函数类型和函数嵌套: 一.默认参数值和可变参数值 对默认参数值是指在函数的声明中就已经定义了参数 ...