20145218 《Java程序设计》第三周学习总结

教材学习内容总结

定义类

编写程序要产生对象就要先定义类。类是对象的设计图,对象是类的实例。类定义时使用class关键词,建立实例时,要使用new关键词。
代码如下:

运行结果如下:

在Field.java中,存在公开的Field类(即存在public class Field语句),所以文档名称必须是Field,而当我保存文件起名为Clothes时,编译就会出现错误。

使用标准类

  • 两个标准类:java.util.Scanner和java.math.BigDecimal
  • java.util.Scanner
    之前编写的程序都是直接输出结果,没办法接受输入,C语言中只要有scanf便可接受用户输入,在java中,当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。先编写一个简单地判断奇偶数的程序。
    代码如下:

运行结果如下:

  • java.math.BigDecimal
    0.1+0.1+0.1在Java的运算中并不等于0.3
    代码如下:

运行结果如下:

这是因为Java遵守IEEE754浮点数运算,简而言之,在Java中编写程序进行浮点数运算多多少少会产生误差。而使用java.math.BigDecimal则可以产生更好的精度。
代码如下:

运行结果如下:

数组的基本学习

  • 数组打印:数组就像是一个有很多小隔间的容器,每个小隔间可以放入一个元素,例如在数组中存入六个数字,并打印出来
    代码如下:

运行结果如下:

  • 数组排序:数组的常见使用方法就是获取最值和排序,其实二者差别不是很大,都是对数组内每一个小隔间的元素进行判断及重排序。排序要比获取最值复杂一点,排序的代码如下
    代码如下:

运行结果如下:

图中排序方法为冒泡排序法。

操作数组对象

如果事先不知道数组中的元素值,只知道元素个数,则可以通过new关键词指定长度来建立数组(例如:int[] scores=new int[10];)。此时数组初始值均为0,若要改变初始值,则可使用java.util.Arrays的fill()方法来设定新建数组的元素值。
代码如下:

运行结果如下:

数组复制

数组复制的基本做法是另行建立新数组。但可以使用arrays.copyOf()方法。System.arraycopy()的五个参数分别是来源数组、来源起始索引、目的数组、目的起始索引、复制长度。
代码如下:

运行结果如下:

字符串对象

字符串是由字符组成的文字符号。在java中,字符串是java.lang.String实例,用来打包字符数组。例如:
String name="justin"; //建立String实例
System.out.println(name); //显示justin
System.out.println(name.length()); //显示长度为6
System.out.println(name.charAt(0)); //显示第一个字符j
System.out.println(name.toUpperCase()); //显示JUSTIN

  • 练习让用户输入整数,输入0后计算所有整数总和
    代码如下:

运行结果如下:

封装

  • 封装可以理解为把方法封在类中,用打时候可以直接拿,就好比你要上学,类就是书包而方法就是书,要用方法打时候直接从书包中拿书就行。
    代码如下:

类语法细节

  • public权限修饰
    public是个公开类,可以在其他包的类中使用。可以在构造函数上声明public,这表示其他包中的类可以直接调用这个构造函数。可以在方法上声明public,这表示其他包中的方法可以直接调用这个方法。
  • 关于构造函数
    函数名与类名相同,不用定义返回值类型,不可以写return语句。
  • 重载
    (1)重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
    (2)重载的特点:与返回值类型无关,只看参数列表。
    (3)重载的好处:方便于阅读,优化了程序设计。
    方法重载代码如下:

运行结果如下:

若想让上面的程序结果显示为“Integer被调用”则代码修改如下:

运行结果如下:

使用this

除了被声明为static的地方外,this关键字可以出现在类中任何地方。在构建函数参数与对象数据成员同名时,可用this加以区别。
代码如下:

运行结果如下:

static类成员

  • 被声明为static的成员,不会让个别对象拥有,而是属于类,是将类名称作为名称空间。
  • 由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
  • 静态变量必须在初始化之前进行赋值,否则会报错。静态方法通常都是被经常使用的方法,不需要每次都重新实例化,提高工作效率。
    import static语法代码如下:

运行结果如下:

不定长度自变量

  • 要使用不定长度自变量,声明参数列时要在类型关键字后加上...。

    内部类

  • 可以在类中再定义类。
  • 内部类也可以使用public、protected或private声明。例如:
    class Some{
    private class Other{

    }
    }

代码托管

代码托管可以更直观的反应我们所写的代码。

代码调试中的问题和解决过程

课本上的代码敲上去之后却运行不了,出现了上图中的错误。

感悟

与前两周轻松的学习不同,第三周的任务量与难度同时加大了,出现了很多以前从未接触过的名词及定义。但通过对第四章第五章的学习,我对java的认识更深了一层,原来没有自己想象中的那么简单,有的代码明明和书上的一模一样,到了自己的电脑上却无法运行,而且出现了问题也不知道怎么去解决,希望通过以后的学习可以慢慢提高自己的水平,遇到问题不再慌张,也试着自己去解决。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 1/3 18/40
第三周 400/1000 1/4 25/60

参考资料

20145218 《Java程序设计》第三周学习总结的更多相关文章

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

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

  2. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

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

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  8. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  9. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  10. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

随机推荐

  1. C语言培训第一天

    下面是一些命令,先来谈谈今天的若干收获吧! 计算机中的一切文件都是以二进制补码的形式存在,问题也就来了. 第一个问题 如果我们给一个无符号的数赋值一个负数,他会读取到什么,又会输出什么?(似乎问题和上 ...

  2. Cheatsheet: 2013 12.17 ~ 12.31

    .NET Introducing ASP.NET Web API Throttling handler C# async and await: A Deeper Dive PARALLEL PROGR ...

  3. linux unzip命令

      zip文件是一种常用的压缩文件格式,WinZip.WinRar等压缩软件都支持zip文件格式,就连java的jar包也是zip格式的,Firefox插件xpi文件也是zip格式的.Linux在zi ...

  4. eclipse启动报错eclipse failed to create the java virutal machine

    早上一来,我的eclipse就无法启动了,错误就是这句话: eclipse failed to create the java virutal machine 直译就是eclipse无法创建JAVA虚 ...

  5. Vmware10.0 安装系统以及使用笔记

    1.安装教程参考 大致分为:vmware10.0安装-------建立虚拟机---------设置虚拟机---------启动虚拟机(IOS安装)---------安装系统---------安装vmt ...

  6. 泛型之Dictionary

    Dictionary<string, string>是一个泛型 他本身有集合的功能有时候可以把它看成数组 他的结构是这样的:Dictionary<[key], [value]> ...

  7. hibernate缓存说明

    hibernate缓存说明: 1.一级缓存(session级别缓存)     一级缓存,不是用来提升性能,是用来处理事务的 2.二级缓存(sessionFactory级别缓存):     二级缓存,对 ...

  8. Installing Python 3.5.2 from source

    Here are the procedures we are to follow, Download the source code of an official Python release. Co ...

  9. How to crack interviews ...

    Code practice: Leetcode: www.leetcode.com HackerRank: www.hackerrank.com Topcoder: https://www.topco ...

  10. python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)

    python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...