1.本周学习总结

2.书面作业

1.代码阅读

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() {
Test1 test=new Test1();
System.out.println(test.i);
} public static void getj() {
System.out.println(j);
} }

以上代码可否编译通过?哪里会出错?为什么?尝试改正?如果创建3个Test1对象,有内存中有几个i,几个j?

  • 编译无法通过,i会报错,它不是一个静态的对象。第二行不能更改,所以增加Test1 test=new Test1();
  • 创建了三个Test1对象,内存中有三个i,一个j。因为静态对象的每个类就只有一个存储空间,三个j都是同一个。但是i不是静态对象,所以每次都会创建新的i,所以有三个。

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

  • 构造函数最大的好处是方便,能够便捷的快速调用编写好的一些程序,规则,同时也能区不同类型,用途的不同代码。
  • 编写格式 public(或者private)类名(有无参数都行){}构造函数不写返回类型。
  • 没有。如果一个类,没有定义构造函数,那么系统就会默认有一个无参的构造函数。但是如果定义了一个有参函数,为了保证正确性,系统不会创建无参构造函数。这时候如果还想允许无参构造,就必须显式的声明一个。

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

  • Math()是外部类,Math()类里面的方法是静态的。所以直接使用类访问就可以了。
  • 如果new Math(),那么也找不到math下面的其他方法。

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

  • 重载,简单来说就是函数活着方法有相同的名称,但是参数列表不相同的情况。可使函数、运算符等处理不同类型数据或接受不同个数的参数。
  • 函数名可以相同,但是特征标必须不同。用函数名来确定函数的不同,用特征标来确定重载函数的不同。同时,参数的顺序,类型不同也可以确定重载函数的不同。

5.final修饰的变量不能改变,为什么如下代码可以正常运行?

final int[] NUMBS= {1,2,3,4,5};
NUMBS[2] = 1;
  • 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。这里引用的是int型的变量,但是他的内容还是可以改变的,所以代码可以正常运行。输出NUMBS[2]的答案为1;

6.阅读代码EmployeeTest.java,回答:

(1)为什么其属性均为private?这样设计有什么好处?

  • 私有的,只能对自己使用,对别的类是不能访问的,也就是说对于别的类来说是隐藏不可见的。如果所有方法都public,万一被调用了本来应该封装的方法,那么很容易造成整个相关程序的修改。危害很大。

(2)为Employee类增加一个无参构造函数,调用其有参构造函数,设置name为雇员1, salary为3000, hireDay的年月日为2017年3月5日。

 public Employee(){
this("雇员1",3000.0,2015,3,5);
}

(3)为Employee类再增加一个有参构造函数,参数只有name与salary,hideDay为当前日期。

public Employee(String n, double s, LocalDate hireDay)
{
name = n;
salary = s;
hireDay = LocalDate.now();
}

7.编写函数public static boolean isMondayToFriday()

功能:判断今天如果是周一到周五,直接输出如“上班时间”并返回true,否则输出“休息时间”。

  public static boolean isMondayToFriday()
{
LocalDateTime now = LocalDateTime.now();
DayOfWeek dayOfWeek = now.getDayOfWeek();
System.out.println(dayOfWeek);
if(dayOfWeek!=DayOfWeek.SATURDAY && dayOfWeek!=DayOfWeek.SUNDAY)
return true;
return false;
} if(isMondayToFriday())
System.out.println("上班时间");
else
System.out.println("休息时间");

提示:使用LocalDateTime, DayOfWeek

参考资料:

JAVA 8:健壮、易用的时间-日期API - ImportNew.pdf

Java8DateTimeTest.java

3.码云

4. PTA实验总结

  • 初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化。初始化块里的代码可以包含任何可执行性语句,包括定义局部变量 ,调用其他对象的方法,以及使用分支,循环语句等。{}单纯被一个大括号括起来的叫初始化块,static{}叫做静态初始化。
  • 静态初始化的等级是最高的,会最优先执行
  • Shift+Alt+S,Generate toString()自动补全toString;Generate Getter and Setters,自动添加。
  • Private ,编程语句在模块级别中使用,用于声明私有变量及分配存储空间。使用private修饰符可以完全隐藏类的成员,使得不能从类外直接访问它们。相对的,使用public修饰符允许任何类访问类的成员。
  • 在main函数里调用新建的类中定义的函数,必须先new一个对象,然后对这个对象进行操作。
  • 这次的实验感觉不会太难,而且数量也比较适中,感觉这样挺好的。。。

Java 第三周总结的更多相关文章

  1. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  2. 20165210 Java第三周学习总结

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

  3. 20145304 Java第三周学习报告

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

  4. JAVA第三周学习总结

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

  5. JAVA 第三周学习总结

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

  6. #Java第三周总结

    第三周实验题目+总结 第一题:打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数 ...

  7. Java第三周课程总结&实验报告一

    第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在 ...

  8. 学习Java第三周

    这是学习java的第三周 上周想要学习的这周也完成了,研究和测试代码花费了大约2个小时,发现这些内容方法居多,想要熟练掌握就要好好记忆了 包装类 数字处理类 Object类 Java类包 内部类 下一 ...

  9. 1903021121—刘明伟—Java第三周作业—学习在eclipse上创建并运行java程序

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第三周作业 作业要求 每道题要有题目,代码,截图 扩展阅读 eclipse如何创建java程序 java语言基础(上) 扩展阅读心得: 想 ...

  10. Java第三周总结&实验报告(1)

    总结:不知不觉,到了第三周,回顾这一周,我更加深入了解了main方法,除此之外,学习了两个关键字,一个this,一个static,this在强调属性时,只能放在句首且不能循环调用,static声明用于 ...

随机推荐

  1. MySQL里创建外键时错误的解决

    --MySQL里创建外键时错误的解决 --------------------------------2014/04/30 在MySQL里创建外键时(Alter table xxx add const ...

  2. 我读<代码整洁之道>--读书笔记整理

    第一章 整洁代码 "我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的,整洁的代码总是看起来像是某位特别在意他的人写的.几乎没有改进的余地,代码作者设么都想到了,如果你企图改进它 ...

  3. tomcat 组件研究一--启动过程总结

    作为java 开发者,从开始学习java 便知道tomcat 这个容器了,但是一直却没有怎么研究过它的内部结构,以前对tomcat的认识也仅仅局限在那几个常用的目录放什么东西,那几个常用的配置文件应该 ...

  4. 读懂javascript深拷贝与浅拷贝

    1. 认识深拷贝和浅拷贝 javascript中一般有按值传递和按引用传递两种复制,按值传递的是基本数据类型(Number,String,Boolean,Null,Undefined),一般存放于内存 ...

  5. 文本排序的王者:玩透sort命令

    本文目录: 1.1 选项说明 1.2 sort示例 1.3 深入研究sort sort是排序工具,它完美贯彻了Unix哲学:"只做一件事,并做到完美".它的排序功能极强.极完整,只 ...

  6. 火币网现货API[Python3版]

    火币 期货 现货 API [Python3版] 一.Util.py,基础类,包括参数配置.签名,HTTP 请求方法,发送信息到API #coding=utf-8 import hashlib impo ...

  7. Spring(一)--作用、IOC容器细节、搭配环境、Spring实验

    1.Spring作用:      1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!]      2.将其他组件粘合在一起      比如将S ...

  8. hdu4336 Card Collector

    Problem Description In your childhood, do you crazy for collecting the beautiful cards in the snacks ...

  9. We’re Just Beginning

    "We are reading the first verse of the first chapter of a book whose pages are infinite…" ...

  10. [2017-08-07]ABP系列——QuickStartA:概述、思想、入门和HelloWorld

    唔,说好的文章,欠了好久,先水一篇. 本系列目录:Abp介绍和经验分享-目录 概述 先表个态:对绝大多数人来说,ABP是成熟的,足以用到生产环境的. 最适合的:业务非常复杂且不追求极致性能的(这里并不 ...