20155305乔磊2016-2017-2《Java程序设计》第三周学习总结
20155305乔磊 2016-2017-2 《Java程序设计》第三周学习总结
教材学习内容总结
- 对象(Object):存在的具体实体,具有明确的状态和行为
- 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制
- 从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象
- 从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)
- 类是对象的设计图,对象是类的实例,生成对象要先定义类
4.1 类与对象
Clothes c1 = new Clothes();
c1是引用,在栈上
new Clothes()
在堆上生成对象
c1 可以近似看成指向对象的指针封装 = 类 + 访问控制(public,protected,private...)
java.util.Scanner
与java.math.BigDecimal
注意类的构造方法
Scanner
类大大简化了Java的输入,要熟练掌握其方法,关键是会查API文档,能自学对象相等
==
与equals
的区别
==
比较的对象的地址
equals
是逻辑上相等函数
又称方法,是定义在类中的具有特定功能的一段独立的小程序。格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型
函数运行后结果的数据类型,return
结束函数,返回值
返回给调用处,形式参数
变量,存储调用函数时传递给函数的实际参数,实际参数
传递给形式参数的具体数值。不用返回值的函数可以用void声明。
程序示例
class Clothes2
{
String color;
char size;
Clothes2(String color, char size)
{
this.color=color;
this.size=size;
}
} public class Field2
{
public static void main(String[] args)
{
Clothes2 sun = new Clothes2("red",'S');
Clothes2 spring = new Clothes2("green",'M');
System.out.printf("sun(%s,%c)%n",sun.color,sun.size);
System.out.printf("spring(%s,%c)%n",spring.color,spring.size);
}
}
4.2 基本类型包装
为了让Java 基本类型像类一样使用
int-Integer
long-Long
byte-Byte
float-Float
double-Double
boolean-Boolean
...程序示例
public class IntegerDemo
{
public static void main(String[] args)
{
int data1 = 10;
int data2 = 20;
Integer w1 = new Integer(data1);
Integer w2 = new Integer(data2);
System.out.println(data1/3);
System.out.println(w1.doubleValue()/3);
System.out.println(w1.compareTo(w2));
}
}
理解
Autoboxing和
Unboxing
Autoboxing
和Unboxing
是编译器语法
4.3 数组对象
Java中,数组是对象
与C语言不同,Java检查数组边界,越界会触发ArrayIndexOutOfBoundsException
异常数组访问的
foreach
语法是同一类型数据的集合,是一个容器。它会自动从0开始编号。
格式:
元素类型[] 数组名=new 元素类型[元素个数或数组长度];
元素类型[] 数组名=new 元素类型[]{元素,元素,...};
元素类型[] 数组名={元素,元素,...};
数组一被定义即有默认初始值。
javac -encoding
指定字符编码思考题:
举例说明什么是浅拷贝与深拷贝?深拷贝:采用了在堆内存中申请新的空间来存储数据,这样每个可以避免指针悬挂。 浅拷贝:也就是在对象复制时,只是对对象中的数据成员进行简单的赋值,如果对象中存在动态成员,即指针,浅拷贝就会出现问题。
4.4 字符串对象
String
/StringBuffer
/StringBuilder
4.5 查询API文档
- 学习Java,同样要学会使用
Java API
,在Windows下一定要下载CHM
格式的Java API
,这个版本具有检索功能,使用非常方便。
5.1 何谓封装
- 封装实际上使用方法
(Method)
将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作 - 封装的好处
模块化(Modularity)
信息隐藏(Information hiding)
5.2 类语法细节
public
用在类前
用在方法前
用在成员变量前private
用在类前不可以
用在方法前不可以
用在成员变量前this
除了被声明为static的地方外,this关键字可以出现在类中任何地方,在构造函数与对象数据成员同名时,可用this加以区别。
static:所有对象公有的
被声明为
static
的成员,不会让个别对象拥有,而是属于类,将类名称作为名称空间。
教材学习中的问题和解决过程
- 1 问题:在操作对象时,=和==的区别,并且不太能够熟练区分应用。
- 1 解决方案:首先理解概念,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一个对象。然后我编代码时注意这些特殊的点,渐渐掌握。
- 2 问题:Java编写中事先建立的数组长度不够怎么办?
- 2 解决方案:利用
Arrays.copyOf()
方法建立新数组,将原数组内容复制至新数组。理解到Arrys.copyOf()
的第二个参数就是指定建立的新数组长度。
代码调试中的问题和解决过程
1 问题:在编译书上
p96
的Score
程序时,我错将System.out.printf("学生分数:%d %n",scores[i])
打成System.out.println("学生分数:%d %n",scores[i])
,结果弹出来很多错误。在上一章中书上说System.out.printf
是按格式输出,而System.out.println
是输出后换行,如果仅仅只是换行的差别的话那为什么用后面一种不行呢?1 解决方案:后来了解到这主要是因为println是用于输出参数内容,然后换行,其参数个数固定为一个,而printf是用于输出带各种数据类型的占位符的参数,其参数个数是不定的,所以上面的代码应该用printf。
2 问题:书上代码平均值结果是NaN
2 解决方案:应该是因为没有输入数字的结果吧,没有解决。
代码托管
上周考试错题总结
填空:~0b1011的十进制值是(-12)
00001011取反得11110100,因为java语音中带符号得不骂形式,所以对他区补码,则得10001100,即-12.
填空 :0x10%9 的结果是( 7 )
0x是16进制的意思,0x10是16,16%9答案是7
填空 :0x10&9 的结果是(0)。
同上一题,16和9位运算,得0。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3000行 | 20篇 | 400小时 | |
第一周 | 200/200 | 1/1 | 18/18 | |
第二周 | 153/353 | 1/2 | 18/36 | |
第三周 | 356/709 | 1/3 | 24/60 |
计划学习时间:30小时
实际学习时间:24小时
改进情况:计划时间提高了,所以学习时间有所提高,但是由于缺乏经验,可能计划学习时间没有能够达到。
参考资料
20155305乔磊2016-2017-2《Java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 20155305乔磊2016-2017-2《Java程序设计》第二周学习总结
20155305乔磊 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 第三章学习了基本类型 整数(short.int.long) 字节(byte) 浮点数(f ...
- 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结
20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20155331 2016-2017-2 《Java程序设计》第九周学习总结
20155331 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC是什么? JDBC代表Java数据库连接,这对Java编程语言和广泛的数据库之间独立 ...
- 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程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
随机推荐
- JavaScript的DOM_通过元素的class属性操作样式
使用 style 属性可以设置行内的 CSS 样式,而通过 id 和 class 调用是最常用的方法. <script type="text/javascript"> ...
- 创建 JavaScript 对象
http://www.w3school.com.cn/js/js_objects.asp 创建 JavaScript 对象 通过 JavaScript,您能够定义并创建自己的对象. 创建新对象有两种不 ...
- BZOJ1079:[SCOI2008]着色方案(DP)
Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块. 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个 ...
- python open 追加
今天操作失误,导致home目录没空间了,结果跑了3天的程序断了,还好代码可以重新运行. 读写的文件使用追加方式: # a # 打开一个文件用于追加(只写),写入内容为str # 如果该文件已存在,文件 ...
- D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...
- 【JavaScript】富文本编辑器
这是js写的富文本编辑器,还存在一些bug,但基本功能已经实现,通过这个练习,巩固了js富文本编辑方面的知识,里面包含颜色选择器.全屏.表情.上传图片等功能,每个功能实际对应的就是一个小插件啦 部分程 ...
- HomeKit 开发指南(中文版)
转载自cocoachina 本文由CocoaChina翻译组成员iBenjamin_Go和浅夏@旧时光翻译自苹果开发文档:HomeKit Developer Guide,敬请勘误. 本文档内容包括 第 ...
- 获取url中?后面传递的参数
function getUrlArgs(){ var url=location.href; var i=url.indexOf('?'); if(i==-1)return; var querystr= ...
- 黑少微服务商店之Iron Cloud微服务开发云
近日,由黑少微服务研发团队推出的Iron Cloud微服务开发云已经正式对外提供服务,这是国内第一家基于云端操作的微服务专业开发工具. Iron Cloud 微服务开发云(www.ironz.com) ...
- zookeeper学习记录第二篇-----安装、配置、启动
搭建zk集群,起码保证3台虚拟机的配置,本人使用的虚拟机环境为wm14+centos7+jdk1.8 下载地址 zk的tar包下载地址:http://mirror.bit.edu.cn/apache/ ...