全部代码均已托管html
地址https://git.oschina.net/qiaokeli26/codesjava
按照下面程序结果中的代码名来对应便可。git
一、定义类算法
这里引用书上的一段代码来理解:spring
class Clothes { String color; char size; } public class Field { public static void main(String[] args) { Clothes sun = new Clothes(); Clothes spring = new Clothes(); sun.color = "red"; sun.size = 'S'; spring.color = "green"; spring.size = 'M'; System.out.printf("sun(%s,%c)%n",sun.color,sun.size); System.out.printf("spring(%s,%c)%n",spring.color,spring.size);} }
这里,sun就是一个类类型变量,类类型变量指向的是对象。
运行结果1:数组
也是用一个书上的例子,代码托管上去,这里只给出运行结果2:数据结构
二、标准类ide
一、java.util.Scanner、java.math.BigDecimal分别为两个基本标准类。函数
java.util.Scanner的nextInt()方法会看标准输入中,录入下一个字符串,并会尝试将之剖析为int类。一旦直接取得上一个字符串,则使用next()。nextLine()这是一个更加方便的功能,直接取得用户输入的整行文字,相似于C中的gets和getc之间的关系。学习
另外,还有nextByte()、nextShort()之类的功能也是以此类推的。
接下来也用书上的例子进行练习:
同上,代码托管,给运行结果3-1,3-2(中间尝试了好久,爆炸):
二、java.math.BigDecimal则为更加精确的精度。实验截图以下(代码已托管),运行结果4:
用BigDecimal比较相等时,先调用add(),最后调用equals()比较两个BigDecimal实质上是否相同。
运行结果5以下:
二、基本类型打包器
Long、Integer、Double、Float、Boolean等,就是所谓的打包器。其主要目的是提供对象实例做为“壳”,将基本类型打包在对象之中,就能够将基本类型看成对象操做。书上的简单练习例子以下:
运行结果6:
这里出现了一个问题,当decimal类型进行devide运算时,出现了报错问题(陈俊达在上课时问过老师)。老师给出的回复是,在输出语句时还能够加上必定的后缀(一些精度信息)从而才能输出正确的值。
三、数组
一、数组的基本使用
与C中同样,数组的概念同样只是出现了使用方式上的不一样,采用前后两个数组录入。
二、操做数组对象
截图以下(运行结果7):
三、数组复制
首先,再创建一个数组,再对这个数组进行转移,就是一个简单的方法。另外,还可使用arrays.copyOf():
立刻就使用这个函数进行练习:
结果以下(运行结果8):
值得一提的是arrays.copyOf()和System.arraycopy()用在类类型声明的数组时,都是浅层复制。而什么是深层复制呢,arrays.copyOf()的第二个参数,实际上就是指定创建的新数组长度。以范例来分析深层复制:
运行结果9:
四、字符串
字符串使用java.lang.String实例,用来打包字符数组。
可使用length()取得字符串长度。
另外还可使用charAt()指定取得字符串中某个字符,使用toUppercase()将本来小写的字符串内容转为大写。
书上实例oneto100
截图以下(运行结果9):
接下来用另外两个实例继续熟悉一下字符串的用法:
运行结果10:
运行结果11:
至此,第四章内容结束,接下来直接总结下第五章的内容,再附上程序截图:
一、封装
封装即要隐藏对象细节,直接使用对象而忽略不重要因素。
二、构造函数
首先,函数名与类名必须相同。接着,咱们知道返回值类型将与前边一致,就能够忽略不定义。
三、this
this表明了其所在函数所属对象的引用。
四、static
被声明为static的成员,不会让个别对象拥有,而是属于类,将类名称做为名称空间。在static方法或区块中不能出现this关键字。
接下来跑几个书上的实用范例
1、构造函数与方法重载
运行截图(运行结果12):
2、运行结果13:
此次学习时,遇到一个问题,浮点类型能不能用 == 进行比较,只知道尽可能不要使用 == 对浮点数进行比较。我对这个问题比较好奇,由于当时C语言的时候没有深刻探究过,今天就好好研究一次。
首先咱们要了解浮点数在计算机中怎么存放的。我百度了一下,上面是这样说的,浮点数广泛的做为实数运算的近似值的计算,是颇有用的。
这里说的是实数的近似值的计算,因此浮点数在计算机中实际上是一种不精确的表示。它存在舍入(rounding)偏差。IEEE浮点标准用符号,尾数和阶码将浮点数的位表示划分为三个字段,单精度为32位,双精度为64位,由于表示方法限制了浮点数的范围和精度,浮点运算只能近似的表示实数运算。而 == 表示的是在计算机中的内存表示彻底同样,这样使用 == 来表示两个浮点数的相等就会出现问题了。
本次我没有编写本身的代码,都是模仿书上的代码。可是我看见了陈俊达同窗所改进的一次代码。即用decimal类型进行devide。结果4除以3,结果没法显示出来。
后来询问过老师后发现,输出时还须要加一个括号,括号中将录入必定的精度,从而才能完成显示。但这种方式实用性不高,这边就再也不深究了。
本章内容多,并且专业性强,学起来很费力。因此本次我就没有在书本例子的基础上进行创新。
可是,本次将录入数组,检索等方法都教过了,我能够凭借数据结构的算法,本身编写一些排序的代码了。
下周必定要完成这样的的程序!
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 1/2 | 20/20 | |
第二周 | 600/600 | 2/4 | 38/38 | |
第三周 | 276/600 | 1/7 | 60/60 | |
第四周 | /1300 | 2/9 | /90 |