20145314郑凯杰 《Java程序设计》第3周学习总结
20145314郑凯杰 《Java程序设计》第3周学习总结
所有代码均已托管

地址https://git.oschina.net/qiaokeli26/codes
按照下面程序结果中的代码名来对应即可。
教材学习内容总结
1、定义类
- 按照书上的形象比喻,知道的关系是:类是对象的设计图,对象是类的实际类型。另外,定义时用class,建实例用new。
这里引用书上的一段代码来理解:
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:

- this关键字的使用:参考名称与对象数据成员同名时,可以在数据成员前使用this区别。
也是用一个书上的例子,代码托管上去,这里只给出运行结果2:

2、标准类
1、java.util.Scanner、java.math.BigDecimal分别为两个基本标准类。
java.util.Scanner的nextInt()方法会看标准输入中,录入下一个字符串,并会尝试将之剖析为int类。一旦直接取得上一个字符串,则使用next()。nextLine()这是一个更加方便的功能,直接取得用户输入的整行文字,类似于C中的gets和getc之间的关系。
另外,还有nextByte()、nextShort()之类的功能也是以此类推的。
接下来也用书上的例子进行练习:
同上,代码托管,给运行结果3-1,3-2(中间尝试了很久,爆炸):


2、java.math.BigDecimal则为更加精确的精度。实验截图如下(代码已托管),运行结果4:

用BigDecimal比较相等时,先调用add(),最后调用equals()比较两个BigDecimal实质上是否相同。
运行结果5如下:


2、基本类型打包器
Long、Integer、Double、Float、Boolean等,就是所谓的打包器。其主要目的是提供对象实例作为“壳”,将基本类型打包在对象之中,就可以将基本类型当作对象操作。书上的简单练习例子如下:
运行结果6:

这里出现了一个问题,当decimal类型进行devide运算时,出现了报错问题(陈俊达在上课时问过老师)。老师给出的回复是,在输出语句时还可以加上一定的后缀(一些精度信息)从而才能输出正确的值。
3、数组
1、数组的基本使用
与C中一样,数组的概念一样只是出现了使用方式上的不同,采用先后两个数组录入。
2、操作数组对象
截图如下(运行结果7):

3、数组复制
首先,再建立一个数组,再对这个数组进行转移,就是一个简单的方法。另外,还可以使用arrays.copyOf():
马上就使用这个函数进行练习:
结果如下(运行结果8):

值得一提的是arrays.copyOf()和System.arraycopy()用在类类型声明的数组时,都是浅层复制。而什么是深层复制呢,arrays.copyOf()的第二个参数,实际上就是指定建立的新数组长度。以范例来分析深层复制:
运行结果9:
4、字符串
字符串使用java.lang.String实例,用来打包字符数组。
可以使用length()取得字符串长度。
另外还可以使用charAt()指定取得字符串中某个字符,使用toUppercase()将原本小写的字符串内容转为大写。
书上实例oneto100
截图如下(运行结果9):
接下来用另外两个实例继续熟悉一下字符串的用法:
运行结果10:

运行结果11:

至此,第四章内容结束,接下来直接总结下第五章的内容,再附上程序截图:
1、封装
封装即要隐藏对象细节,直接使用对象而忽略不重要因素。
2、构造函数
首先,函数名与类名必须相同。接着,我们知道返回值类型将与前边一致,就可以忽略不定义。
3、this
this代表了其所在函数所属对象的引用。
4、static
被声明为static的成员,不会让个别对象拥有,而是属于类,将类名称作为名称空间。在static方法或区块中不能出现this关键字。
接下来跑几个书上的实用范例
一、构造函数与方法重载
运行截图(运行结果12):

二、运行结果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 |
参考资料
20145314郑凯杰 《Java程序设计》第3周学习总结的更多相关文章
- 20145314郑凯杰 《Java程序设计》第10周学习总结
20145314郑凯杰 <Java程序设计>第10周学习总结 代码托管: 学习内容总结 网络编程 会打手机吗? 第一个问题:会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛 ...
- 20145314郑凯杰 《Java程序设计》课程总结
20145314郑凯杰 <Java程序设计>课程总结 每周读书笔记链接汇总 ①寒假预习--"helloworld" ②第一周读书笔记 ③第二周读书笔记 ④第三周读书笔记 ...
- 20145314郑凯杰 《Java程序设计》实验五 实验报告
20145314郑凯杰 <Java程序设计>实验五 实验报告 实验搭档王亦徐:http://www.cnblogs.com/1152wyx/p/5471524.html 实验要求 完成实验 ...
- 20145314郑凯杰 《Java程序设计》第9周学习总结 积极主动敲代码
20145314郑凯杰 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 ①JDBC(Java DataBase Connectivity) 即java数据库连接,是一种用于 ...
- 20145314郑凯杰 《Java程序设计》实验四 实验报告
20145314郑凯杰 <Java程序设计>实验四 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...
- 20145314郑凯杰 《Java程序设计》实验三 敏捷开发与XP实践实验报告
20145314郑凯杰 <Java程序设计>实验二 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...
- 20145314郑凯杰 《Java程序设计》第8周学习总结
20145314郑凯杰 <Java程序设计>第8周学习总结 教材学习内容总结 代码已托管 第十五章 通用API ①日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用到日志信息 使 ...
- 20145314郑凯杰 《Java程序设计》第7周学习总结
20145314郑凯杰 <Java程序设计>第7周学习总结 教材学习内容总结 首先放上代码托管图片和本地代码图片: 插图4: 插图5: 插图6: 第十三章 时间与日期 13.1 认识时间与 ...
- 20145314郑凯杰 《Java程序设计》实验二 实验报告
20145314郑凯杰 <Java程序设计>实验二 实验报告 实验要求 完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用 ...
- 20145314郑凯杰 《Java程序设计》实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告
20145314郑凯杰 <Java程序设计>实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告 实验要求 •使用JDK编译.运行简单的Java程序: •使用Ecl ...
随机推荐
- Spring 之注解事务 @Transactional(转载)
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播: 事务传播行为类型 事务传播行为类型 说明 P ...
- 170321、Spring+Quartz实现定时任务的配置方法
Quartz是Java版开源定时调度器. 核心概念: Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void execute(JobExecutionContext context): ...
- Cgroups子系统介绍
blkio -- 这个子系统为块设备设定输入/输出限制,比如物理设备(磁盘,固态硬盘,USB 等等). cpu -- 这个子系统使用调度程序提供对 CPU 的 cgroup 任务访问. cpuacct ...
- 前端开发 - Bootstrap
一.bootstrap简介 插件 == js 在js 的基础上写了一些功能 一个插件就是一个功能/方法组件 = js + css + html 组件包含着插件 官网: http://www.bootc ...
- 网络编程 - UDP协议
UDP协议 服务端 ''' UDP 协议 又称 数据报协议 SOCK_DGRAM ''' from socket import * # 一般不这样做 会重名 但写socket可以这样写 因为要用到太多 ...
- 可能引起「We Were Unable to Load Disqus」错误的一种情况分析
今天想往Octopress里加评论,之前看了网上的教程,应该是简单的事情,因为Octopress本来为你准备好了评论插件Disqus的代码,只需要去Disqus注册个帐号,然后在_config.yml ...
- java7(3)——增强的catch之自动释放资源
跟mutilcatch一样,java7提供了自动释放资源的方法,但还是很少看到人使用,估计是麻烦去重写close方法.不过jdk内部一些类已经改成使用增强的catch来释放资源的写法,所以我们有必要了 ...
- UVA Team Queue
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013840081/article/details/26180081 题目例如以下: Team Qu ...
- Android ListView工作原理完全解析(转自 郭霖老师博客)
原文地址:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是ListVie ...
- 009-Shell 函数
一.函数定义 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action; ...