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程序设计》第三周学习总结的更多相关文章

  1. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  2. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  3. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  4. 学号20145303 《Java程序设计》第一周学习总结

    学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...

  5. 学号20145322 《Java程序设计》第一周学习总结

    学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...

  6. 20175313 张黎仙《Java程序设计》第九周学习总结

    目录 学号 20175313 <Java程序设计>第九周学习总结 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 学号 20 ...

  7. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  8. 2018-2019-3《Java程序设计》第二周学习总结

    学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...

  9. # 20175329 2018-2019-2 《Java程序设计》 第二周学习总结

    学号 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨论一下JAVA与 ...

  10. 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结

    2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...

随机推荐

  1. chrome地址栏命令

    Chrome作为一个前端开发的标准浏览器,用来体验和测试日新月异的新特性,自然是没话说. 有些新特性是需要特意开启设置的,有很多浏览器的内置功能也是要通过命令来开启或者使用的. Chrome 有很多的 ...

  2. .Net Core下通过Proxy 模式 使用 WCF

    .NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费 ...

  3. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  4. NSThread创建线程的三种方法

    - (IBAction)NSThreadBtnClick:(id)sender { [self threadObjectMethod]; [self threadClassMethod]; [self ...

  5. 基于spring mvc的图片验证码实现

    本文实现基于spring mvc的图片验证码,分后台代码和前端页面的展现以及验证码的验证. 首看后台实现代码: @RequestMapping({"authCode"}) publ ...

  6. shell 多进程

    shell 多进程来模拟多线程 (1){ } 建立代码块 (2)使用 & 将进程放入后台 [zheng@localhost ~]$ cat threads.sh #!/bin/bash ;i& ...

  7. vim 基本编辑操作

    一.光标跳转到指定行 1.在命令模式下,跳转到指定行  :n   (n为行号) 2.命令行加参数 vim +n fileName 3.命令行加参数 vim + fileName 光标移至文件底部 4. ...

  8. 【Centos】修改系统字符集

    centos7: vim /etc/locale.conf LANG=zh_CN.gb2312 其他版本linux: vim /etc/sysconfig/i18n

  9. jenkins 设置 gitlab web hooks

    背景 接口自动化期望代码push后触发实现持续集成,代码push后,自动化执行jenkins的job. 步骤 准备工作 工具:jenkins,gitlab jenkins需要安装插件:git plug ...

  10. form enctype参数

    application/x-www-form-urlencoded 表示在发送前编码所有字符(默认) multipart/form-data 不对字符编码.在使用包含文件上传控件的表单时,必须使用该值 ...