20155302 2016-2017-2 《Java程序设计》第3周学习总结

教材学习内容总结

两个基本的标准类:java.util.Scanner与java.math.BigDecimal

当参数名与数据成员同名时要用this表示,如将color参数的值指定给这个对象(this)的color成员。

Scanner对每个基本类型都有对应的方法,如:nextByte()、nextShort()、nextLong()、nextFloat()、nextDouble()、nextBoolean()。

关于1.0-0.8的结果不等于0.2的问题:Java遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数,为了得到更好的精确度,可以使用java.math.BigDecimal类。BigDecimal提供plus()、substract()、multiply()、divide()等方法。

当=用于基本类型时,是将值赋给变量,当==用于基本类型时,是比较两个变量储存的值是否相同。如果在操作对象,=是用在指定参考名称参考某个对象,也就是说=使用在将某个名牌帮到某个对象,而==是用在比较两个名牌是否绑到同一对象。

J2SE 5.0 开始支持了自动装箱、拆箱。用Integer打包int类型数据,方法之一是用new创建Integer实例,传入int类型数据。compareTo()方法,如果打包值相同就返回0,小于传入对象就返回-1,否则就是1。

数组的复制方法现在至少有四个思路:

  1 使用循环结构 这种方法最灵活。唯一不足的地方可能就是代码较多

  2 使用Object类的clone()方法, 这种方法最简单,得到原数组的一个副本。灵活形也最差。效率最差,尤其是在数组元素很大或者复制对象数组时。

  3 使用Systems的arraycopy这种方法被告之速度最快,并且灵活性也较好,可以指定原数组名称、以及元素的开始位置、复制的元素的个数,目标数组名称、目标数组的位置。

  4 Arrarys类的copyOf()方法与copyOfRange()方法可实现对数组的复制

封装: 面向对象里面类的提出就是为了实现封装,我们将一类同样的对象的一些相同或相似的属性及方法抽象出来,封装在一起就实现了封装。封装的目的就是为了实现一些数据及方法的内部隐藏(通过修饰符来实现),并提供一些通用的方法供外部使用,而具体的内部实现细节无需对外公开,加强了安全性。封装类要注意一下几点:
1.类里面一般都要提供一个或多个构造函数,构造函数可以重载。一旦提供了有参数的构造函数,那么最好提供一个无参的构造函数,即使是空函数也好。因为下面讲到的继承发生时,总是先运行父类的构造函数,如果需要运行无参的父类构造函数而找不到的话就会报错。
2.在类里面可以通过this关键字来指向自身。
3.类里的属性一般都设置成private隐藏,如果需要外部访问或设置,可以通过get/set方法实现。

教材学习中的问题和解决过程

java中的函数(方法)是不是可以封装成对象?

-解答:自然可以,而且实际上已经封装好了。具体可以参考java.lang.reflect.Method

一个类的成员变量被封装起来,可以在创建对象的时候直接赋值吗

-解答:构造函数可以初始化变量,这个我们都清楚。
但是很多时候我们在构造函数中给私有变量赋值时,会直接给私有变量赋值,这其实就破坏了Java的封装特性。
一般正确的做法是在构造函数中调用set函数给私有变量进行赋值。

还有一点需要了解的是,我们赋值可以在创建对象的时候赋值(使用构造函数),也可以在创建对象后进行辅助,
但是,当我们创建一个对象,并且该对象创建完后不能对他再进行更改的时候,就必须在构造函数中赋值

https://git.oschina.net/bestiisjava2017/yxc20155302/tree/master/src?dir=1&filepath=src&oid=75bf5051cb425e3e61d1cda464c4601f7f361bd7&sha=3bd6d3da6d854a8d83ed794b83221b4b24ef7a2f


上周考试错题总结

1、0x10%9 的结果是( 7 )解析:0x为16进制,0x10为16 ,16%9=7;
2、Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。
3、~0b1011的十进制值是(-12)
计算机的一个byte为8位,1011存放为00001011,取反后得11110100,因为最高位为1,所以该数为负数,因此该数各位取反,末位加一后得10001100,即-12

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/20 2/2 20/20
第二周 140/160 2/4 18/38
第三周 113/273 1/5 20/58

20155302 2016-2017-2 《Java程序设计》第3周学习总结的更多相关文章

  1. 20155302 2016-2017-2 《Java程序设计》第九周学习总结

    20155302 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 基本数据库操作相关的JDBC接口或类是位于java.sql包中.在程序中要取得数据库联机,我 ...

  2. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20155328 2016-2017-2 《Java程序设计》第九周学习总结

    20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...

  4. 20155216 2016-2017-2 《Java程序设计》第九周学习总结

    20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...

  5. 20155320 2016-2017-2《Java程序设计》第九周学习总结

    20155320 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...

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

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

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

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

  8. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

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

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

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

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

随机推荐

  1. 树-二叉搜索树-AVL树

    树-二叉搜索树-AVL树 树 树的基本概念 节点的度:节点的儿子数 树的度:Max{节点的度} 节点的高度:节点到各叶节点的最大路径长度 树的高度:根节点的高度 节点的深度(层数):根节点到该节点的路 ...

  2. 打包工具的核心原理(转自:https://juejin.im/entry/5b223ebd518825748b569bda)

    打包工具就是负责把一些分散的小模块,按照一定的规则整合成一个大模块的工具.与此同时,打包工具也会处理好模块之间的依赖关系,最终这个大模块将可以被运行在合适的平台中. 打包工具会从一个入口文件开始,分析 ...

  3. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  4. Anaconda安装及pygame的安装

    python有很多版本,还是Anaconda最好用啦,因为它有强大而方便的包管理与环境管理的功能... Pygame是Python最经典的2D游戏开发第三方库,也支持3D游戏开发,,最近课余开始学这个 ...

  5. hql语句中的分页显示

    public List<User> getUserList(int pageInfo) { DBUtil dbutil = new DBUtil(); Session session = ...

  6. 学习python第二天数据库day1

    day01: 关键字:desc 作用:查看表结构(字段名,数据类型&长度) 举例: desc python1808_laoguo; 追加数据到表中:(新增操作) 关键字:insert into ...

  7. Xpath提取一个标签里的所有文本

    content = etree.HTML(text) h = content.xpath('//h1') h1 = h[0].xpath('string(.)').strip()

  8. Inno Setup添加中文安装语言文件

    如果你不添加中文安装语言文件,你编译生成的安装包的语言是不会有中文. 一,打开软件安装目录下的Languages文件夹下,有如下好多文件,可是就是没有Chianese.isl. 好了,你只需要随便拷贝 ...

  9. Java50道经典习题-程序34 三个数排序

    题目:输入3个数a,b,c,按大小顺序输出. import java.util.Scanner; public class Prog34 { public static void main(Strin ...

  10. javaSE、javaEE、javaME

    javaSE.javaEE.javaME区别: Java SE 是做电脑上运行的软件. Java EE 是用来做网站的-(我们常见的JSP技术) Java ME 是做手机软件的.