20145103 《Java程序设计》第3周学习总结
20145103 《Java程序设计》第3周学习总结
教材学习内容总结
第四章我首先了解了CPU与内存的关系,栈与堆的关系。要产生对象必须先定义类,类是对象的设计图,对象是累的实例。以类名称声明的变量,就是参考名称。Java语言遵守IEEE754浮点数运算规范,使用分数与指数来表示浮点数。无论System.arraycopy()还是Arrays.copyOf(),用在类类型声明的数组时,都是执行浅层复制。所谓浅层复制,大概就是只复制指向对象的指针,而不是那个对象吧。在我们使用javac指令没有指定-encoding选项时,会使用操作系统默认编码。第五章中,了解到除了“static","this"关键字可以出现在类中任何地方,因为static方法中不能用非static数据或方法成员。有些名称冲突编译程序可通过以下顺序解析:
局部变量覆盖
选用方法中的同名变量、参数、方法名称。
成员覆盖
选用类中定义的同名数据成员、方法名称。
重载方法比较
使用import static的各个静态成员,若有同名冲突,尝试通过重载判断。
定义类代码
package cc.openhome;
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);
}
}
对象指定与相等性代码
BigDecimal a=new BigDecimal("0.1");
BigDecimal b=new BigDecimal("0.1");
System.out.println(a==b);
System.out.println(a.equals(b));
数组对象代码
package cc.openhome;
public class Score{
public static void main{String[] args){
int[]scores={88,81,74,68,78,76,77,85,95,93};
for(int i=0;i<scores.length;i++){
Stetem.out.printf("学生分数:%d %n",scores[i]);
}
}
}
封装对象初始流程代码
package cc.openhome;
class CashCard{
String number;
int balance;
int bonus;
}
this代码
package cc.openhome;
ckass Other{
{
System.out.println("对象初始区块");
}
Other(){
System.out.println("Other()构造函数");
}
Other(int o){
this();
System.out.println("Other(int o)构造函数");
}
}
public class ObjectInitialBlock{
public static void main(String[] args){
new Other(1);
}
}
第五章
5.1 何谓封装
1、封装对象初始流程:定义构造函数实际上就是一种封装的初始流程。
2、封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作
黑箱进行操作,可将函数、流程、值都封装在类中,即可直接调用。
5.2类语法细节
public
用在类前,表示的这个类是公开类,这样就可以在其他包的类中使用。
用在方法前,这样就表示其它包中的方法可以直接调用这个方法。这里需要注意的是,如果类上没有声明public关键字,类中的方法就算是public,也等于是包权限了,因为类本身是包权限,其它包就根本无法使用类,更别说当中定义的方法。
用在函数前,这表示其它包中的类可以直接调用这个构造函数。
用在成员变量前,表示这个成员变量是公开的,这样别人可以直接调取你类中的变量。
private
用在成员变量前,这是一种保护机制,不让自己这个类以外的方法去随便使用存取这个类的数据,可以保护私有数据,只能通过调用自己类的方法去操纵这些数据,这样会很安全。
private如果用在类或方法前,程序就会报错。也可以用在方法或构造函数声明上,私有方法或构造函数通常是类内部某个共享的演算流程,外界不用知道私有方法的存在。一般用在内部类声明中。
public & private
一般来说,public用在类、方法、函数前,private用在成员变量前,这样用户就可以通过你类中提供的方法和函数来进行操作,但是不会改变类中私有数据。这样,既能满足用户的使用,又能保护自己的数据不被随意更改。
this与super
除了被声明为static的地方外,this关键字可以出现在类中的任何地方,在对象建立后为“这个对象”的参考名称。
super一般用在父类中,指代父类对象的参考名称。
如果定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();那么在A中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();。
final
用在类前,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。
用在方法前,使用final方法的原因有两个:
第一个原因是把方法锁定,以防任何继承类修改它的含义;
第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。因此,如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。
注:类的private方法会隐式地被指定为final方法
## 教材学习中的问题和解决过程
基本类型的打包和装箱拆箱的实质不太理解,需要在以后学习和编译的过程中逐步理解。
## 代码调试中的问题和解决过程
书中109的代码不太理解
```
public class Average{
public static void main(String[] args){
long sum=0;
for(String arg : args){
sum +=Long.parseLong(arg);
}
System.out.println("平均:"+(float) sum/ args.length);
}
}
```
出现了NaN,Not a Number。NaN 用于处理计算中出现的错误情况。代码中没有输入,所以没有办法计算出所有整数的平均。

## 其他(感悟、思考等,可选)
本周的学习任务很重,而且接触了很多C语言中没有涉及到的知识,学起来比较吃力,再加上把平时的任务都堆到了周末,所以周末两天都非常累,而且这样学习效率也不高。以后会把任务都均分到每天,这样既高效,时间又不会太紧张。
## 学习进度条
| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|
| -------- | :----------------:|:----------------:|:---------------: |:-----:|
| 目标 | 2000行 | 16篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 100/300 | 1/3 | 30/50 | |
| 第三周 | 200/500 | 1/4 | 30/80 | |
20145103 《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 ...
随机推荐
- 分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
转自:http://blog.sina.com.cn/s/blog_48964b12010157p0.html 配置错误说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息 ...
- php遍历mysql资源
mysql_query('use test'); //选库 mysql_query('set names utf8'); //编码 $sql="sele ...
- ListCtrl接受拖动文件
[引言] 拖放操作在电脑中很常用,例如我们经常复制文件就可以按住ctrl键不放,然后再拖到另外一个窗口中,或者,可以把一个WORD文档直接拖动到WORD窗口即可打开,以前我使用过VB,里面直接有Ole ...
- 从手机获取图片让WebView支持本地上传图片
一,从本地获取相册中的图片,并获取图片的URI 从本地选择图片上传到服务器时,首先要打开本地图片或文件管理器选择要上传的文件,代码如下 Intent intent =newIntent(Intent. ...
- zedboard上移植OPENCV库
zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...
- bea weblogic workshop中文乱码
重装系统后,weblogic 8.1 workshop中的中文字体是乱码. 可通过菜单中的 Tools -> IDE Properties -> Display, 在Window font ...
- POJ C++程序设计 编程题#1 编程作业—运算符重载
编程题 #2 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面的MyIn ...
- 刚开始学IOS遇到的类和方法
框架:Core FoundationCFGetRetainCount. 类:NSRunLoop.NSAutoreleasePool.NSStringFormClass.UIApplicationMai ...
- [Redis] RDB & AOF
http://my.oschina.net/davehe/blog/174662 rdb - 存在dump.rdb 的二进制文件中 dump 整个db, 数据多的时候,不合适频繁保存,保存的时间间隔应 ...
- 【Zend Studio】10.6.0版本设置默认字体
1.打开Windows->Prefefences 2.找到General->Appearance->Colors and Fonts->Basic->Text Font- ...