20145129 《Java程序设计》第3周学习总结
20145129 《Java程序设计》第3周学习总结
教材学习内容总结
- 类与对象
- 定义类
- 一个原始码中可以有多个类定义,但只有一个是公开类(public),并且文档中的主文档名必须和公开类名称相同。
- 使用new创建对象时,可以直接传入数据成员值(书中例子为直接传入字符串与字符,执行结果不变)。
- 使用标准类
- java.util.Scanner——会帮你完成标准输入。Scanner对每个基本类型,都会有对应的nextxxx()方法,如nextByte()。直接取得上一个字符串用next();取得用户输入的整行文字用nextLine()。
- java.math.BigDecimal——会以默认精度进行计算(可以得到更好的精确度,避免浮点数运算出现误差。BigDecimal可以进行加减乘除等运算分别为plus()、substract()、multiply()、divide(),这些方法都会返回代表运算结果的BigDecimal。
- 对象指定与相等性
- '=='用在对象类型是比较两个名称是否参考同一对象。
- 使用'equals()'比较二者索引对象的内含值是否相同。
- 定义类
- 基本类型打包器
- 打包基本类型
- Long、Integer、double、float、boolean等类为打包器,主要是将基本类型打包在对象中。P91代码执行结果可理解可以将基本类型当做对象操作。
- 自动装箱、拆箱
- 通过书P91最下方的两行代码 'Integer data1=10;、Integer data1=10;',data1与data2在运行时会参考Integer实例,可以直接进行对象操作,这样程序就简洁许多。
- 通过书P92代码'int i=10; Integer wrapper=i;'、'Number number=3.14f'在运算时3.14f会被自动装箱为Float,然后指定给number。
- 自动拆箱:自动取出打包器中的基本形态信息。
- 自动装箱拆箱的内幕
- 注意传入的int是否在默认值之间,若不在可在启动JVM时使用系统属性java.lang.IntegerCache.high来指定。(执行时期默认值无法更改)。
- 打包基本类型
- 数组对象
- 数组基础
- 数组:基本上是用来收集数据的,是具有索引的数据结构。
- 数组声明一般将[]放在类型关键词之后。
- 数组的length属性可以取得数组长度。
- 声明二维数组中,有两个维度,必须先通过cords.length得知列数,对于每一列再利用 cords[x].length得知每列有几个元素。
- 操作数组对象
- 在用'new'建立数组后每个索引元素会有默认值(数组就是对象)。
- 使用'java.util.Arrays'的'fill()'方法来设定新建数组的元素值。
- 'Integer[] scorse = new Integer[3];',此处建立的数组,每个索引都是参考至Null,所以建立了0个Inteder对象。
- 数组复制
- 使用'System.arraycopy()'或者'Arrays.copyOf()'方法进行数组复制,书P104中前两行代码并不是数组复制,而是给予参考对象,叫复制参考。
- 数组基础
- 字符串对象
- 字符串基础
- 由字符组成的文字符号称为字符串。在Java中是对象。用""包括一串字符来建立字符串。
- 同样可使用length()取得字符串长度;用charAt()可以指定取得字符串中某个字符(索引从0开始);用toUpperCase()将原本小写的字符串内容转为大写的字符串内容。
- 在Java中可以使用+运算来连接字符串,例如:'String name = "justin"'、'System.out.println("你的名字是:"+name);'。
- 字符串特性
- 基于节省内存考虑,以""包括的字符串,只要内容相同(序列、大小写相同),无论在程序代码中出现几次,JVM都只会建立一个String实例,并在字符串池中维护。书中P110最下面的代码片段中name3与name4为用new建立了新对象,所以它们分别参考至新建的String实例。
- 使用'equals()'比较字符串实际内容是否相同。例如:'name1.equals(name2)'为书P111上一行代码中的片段,表示name1与name2相比较字符串实际内容是否相同。
- +连接数据虽然方便但是在循环只用会频繁产生新对象会造成效能上的负担,可以改用StringBuilder进行改善。
- 字符串编码
- 简体中文Windows,使用Windows默认的纯文本编辑器,则是GB 2312(Eclipse与其相同);NetBeans为UTF-8。
- '>java -encoding UTF-8 Main.java'——使用java指令指定-encoding选项(没指定时会使用操作系统默认编码),即让编译程序使用UTF-8来读取内容。
- 查询Java API文件:可了解更多的类与方法。
- 字符串基础
- 何谓封装:(是指隐藏对象的属性和实现细节,仅对外提供 公共访问方式)
- 使用Java的构造函数语法,实现对象初始化流程的封装。
- 在类中定义方法,如果不用返回值方法名称前可以声明void。(封装流程可方便用户使用并且避免不必要的失误)
- 如果数据为类私有,可以使用private关键字定义。此时用户必须通过定义好的方法对数值修改。(封装类私有数据,让用户无法直接存取)
- 类语法细节
- 权限修饰
- Java中有三个权限修饰:private、public、protected。
- 如果想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象必须是公开成员,要使用public加以声明。
- 关于构造函数
- 如果定义类时,没有撰写任何构造函数,编译程序会自动加入一个无参数内容为空的构造函数,因此可以这样以无自变量方式构造函数。
- 构造函数与方法重载
- 定义多个参数类型或个数不同的构造函数,称为重载构造函数。
- 定义方法时也可以进行重载,可为类似功能的方法提供统一名称,但根据参数类型或个数的不同调用对应的方法。根据传递的自变量类型不同,会调用对应的方法。
- 使用this
- 在构造函数参数与对象数据成员同名时用this加以区别。
- 'this()'代表了调用另一个构造函数,调用哪个函数则视调用this()时给的自变量类型与个数而定。
- 'static'类成员
- 被声明为static成员属于类,不会被个别对象拥有。且将类名称作为名称空间。
- 由于static成员属于类,而非个别对象,所以在static方法或区块中不能出现this关键字。在static方法中不能用非static数据成员或方法。
- 不定长度自变量
- 声明参数列时要在类型关键字后加上'...'。
- 使用不定长度自变量时,方法上声明的不定长度参数必须是参数列最后一个。
- 内部类:在类中再定义类)
- 可定义在类区块中。
- 可以使用private、public、protected声明。
- 内部类本身可以存取外部类成员。
- 可以被声明为static。此内部类通常是将外部类当作名称空间,是个独立类,可以存取外部类static成员,不能存取外部非static成员。
- 方法中也可使用,做辅助用,方法外无法使用。
- 传值调用
- Java中只有传值调用。
教材学习中的问题和解决过程
在仔细阅览课本以及实际操作后,第五章传值调用具体传值方法理解模糊。需要在进行后两章学习后再深入理解。
代码调试中的问题和解决过程
在IDEA上进行代码编辑并执行没有出现太大的问题,中途尝试用+连接字符串失败了,经过筛查发现'M'写成"M",修改后执行成功。
其他(感悟、思考等,可选)
经过4、5章学习,发现只有前面几章基础打好后才能更好的理解后面部分,并且只有将新知识与旧知识相结合才能更好的掌握这门课程,当然实际操作很必要并且在实际操作中除了抄书上的代码外,自己改写或者创新也对学习很有用。然后,老师给的教学视频和课件结合教材学习也是很有效果,视频是将好几章的内容相结合来讲解的并且会讲到一些书上没有提到的小知识点。
学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长| | -------- | :----------------:|:----------------:|:---------------: |:-----:| | 目标 | 3000行 | 15篇 | 300小时 | | | 第一周 | 50/50 | 2/2 | 14/14 | | 第二周 | 100/150 | 1/3 | 10/24 | | 第三周 | 300/450 | 1/4 | 15/39 |
20145129 《Java程序设计》第3周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- LINE最新版6.5.0在iOS上的删除信息取证
iOS: 9.3.2版 LINE: 6.5.0版 取出LINE的数据库 Line.sqlite,路径如下所示: 检视删除的信息,发现还有不少残留,虽然都是片段,但拼拼凑凑总还是能有些蛛丝马迹,毕竟,总 ...
- poj1005 I Think I Need a Houseboat
这题目只要读懂了意思就好做了,先求出来(0.0)到(x.y)的距离为r,然后求出来以r为半径的半圆的面积,然后再用这个面积除以50,再向上取整就可以啦. #include <stdio.h> ...
- C++ STL 简单记录
1,STL提供三种类型的组件:容器.迭代器.算法. 容器: 顺序容器(vector.list.deque.string等)是一系列元素的有序集合: 关联容器(set.multiset.map.mult ...
- 快速清理Visual Studio起始页最近打开项目
清除vs2008起始页最近打开项目 第一种:最简单的方式: 把以下内容保存为.bat批处理文件 @echo off@REG Delete HKCU\Software\Microsoft\VisualS ...
- 【转】详解JavaScript中的this
ref:http://blog.jobbole.com/39305/ 来源:foocoder 详解JavaScript中的this JavaScript中的this总是让人迷惑,应该是js众所周知的坑 ...
- c#操作Zip压缩文件
SharpZipLib 文件/文件夹压缩 一.ZipFile ZipFile类用于选择文件或文件夹进行压缩生成压缩包. 常用属性: 属性 说明 Count 文件数目(注意是在ComitUpdat之后才 ...
- SublimeText快捷键大全(附GIF演示图)
Sublime Text是码农必备之神器,有助于码农快速开垦,如果掌握了Sublime强大的快捷键就可以飞起来了.下面下载吧小编汇总了SublimeText支持的全部快捷键(适用SublimeText ...
- 如何保护java程序不被反编译
Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此 ...
- JS 获取浏览器和屏幕宽高等信息代码
JS 获取浏览器和屏幕宽高等信息. 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:doc ...
- (原创)Windows8下安装配置WAMP
Windows8下安装配置WAMP 2013/12/28 最近这段时间一直在研究linuxshell编程,虽然还是初级水平,但比之前有了不小的进度,但是shell的命令很多,很难在短时间 ...