20145104张家明 《Java程序设计》第3周学习总结
20145104张家明 《Java程序设计》第4周学习总结
教材学习内容总结
第四章 认识对象
4.1 类与对象
4.1.1 定义类
类定义时使用class关键词,建立实例要用new关键词,在对象术语中,这叫作新建一个对象:
new clothes();
参考变量或声明参考名称或参考:
Clothes c1;
给新建对象一个标签:
Clothes c1 = new Clothes();
package four;
class Clothes{
String color;
char size;
}
public class ClassObject {
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);
}
}
4.1.2使用标准类
java.util.Scanner会帮你扫描标准输入。
java.math.BigDecimal会以默认精度进行计算,防止浮点数运算错误的情况。
4.1.3对象指定与相等性
'='用于绑定对象,'=='用于比较二者参考对象是否相同,'a.equals(b)'表示二者所绑对象的内含值是否相同。
4.2 基本类型打包器
4.2.1打包基本类型
Long、Integer、double、float、boolean等类是所谓打包器,主要目的是提供对象实例作为“壳”,价格基本类型打包在对象中,可以将基本类型答案做对象操作。
4.2.2自动装箱、拆箱
自动装箱拆箱可以使程序更简洁,如'Integer data1=10'、'int i=10;Integer wrapper=i;''Number number=3.14f'。在运算时编译程序会自动拆箱。
4.2.3自动装箱拆箱的内幕
如果数值超出类的范围,就会建立新的实例,用'=='做比较易出错,若想比较数值应用equals()。
4.3 数组对象
4.3.1数组基础
java中的数组和C语言有一些不同之处。一般声明数组是在类型关键词后如'int[] score',定义的时候不必规定数组长度,指出单个数值时需要在'[]'里标明序号,若想知道数组长度则需要用length属性,若是二维数组则需要用'cords.length'得知列数,再由'cords[x].length'得知行数。
4.3.2操作数组对象
使用'new'建立数组后每个索引元素会有初始值,可以用'java.util.Arrays'的'fill()'方法更改默认值。
4.3.3数组复制
'int[] scores2=scores1'并不是数组复制,只是把'scores1'的参考对象也给'scores2'做参考对象。所以要复制数组需要用到for循环新建数组,或者直接使用'System.arraycopy()'方法/'Arrays.copyOf()'方法。
4.4 字符串对象
4.4.1字符串基础
字符串在Java中是对象,可以用'+'连接字符串。
4.4.2字符串特性
在Java中为了效率,相同的字符串无论出现多少次都只建立一个实例,但是用'new'一定是建立新对象。
第五章 对象封装
5.1何谓封装
封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。用户使用程序却不知道细节,要调用数据必须通过提供的方法。
package cc.openhome;
public class CardApp{
public static void main(String[] arge){
CashCard[] cards = {
new CashCard("A001",500,0),
new CashCard("A002",300,0),
new CashCard("A003",1000,1),
new CashCard("A004",2000,2),
new CashCard("A005",3000,3)
};
for(CashCard card : cards) {
System.out.printf("(%s,%d,%d)%n",card.number,card.balance,card.bouns);
}
}
}
5.2类语法细节
如果想在其他包的类程序代码中存取某包的类或对象成员,则必须是公开成员,要用public加以声明。'this()'代表了调用另一个构造函数,调用哪个函数视自变量类型与数量而定。声明'static',表示属于类,不会被个别对象拥有。在'static'区块中不能出现'this',在其方法中不能使用非static数据或方法成员。
this关键字
this代表其所在函数所属对象的引用,简而言之就是this代本类对象的引用,当在函数内需要用到调用该函数的对象时,我们就可以使用this。 this()代表了调用另一个构造函数,至于调用哪个构造函数,则视调用this()时给的自变量类型与个数而定。注意:this()调用只能出现在构造函数的第一行
static关键字
static用于修饰成员(成员变量和成员函数),被声明为static的成员,不会让个别对象拥有,而是属于类。 在static方法中不能出现this关键字,static方法中不能用非static数据或方法成员。 import static语法是为了偷懒,但要注意名称冲突的问题。被声明为static的成员,是将类名称作为名称空间。
代码托管
教材学习中的问题和解决过程
在本周的学习中,我发现第四章比较基础,主要是定义类的问题,打包封装的问题,这些代码放到idea中都可以直接运行,也比较好理解。而第五章就比较困难,在第五章中有一些代码不是直接进行编译就能运行的,这里与第四章的不同。教材所讲的内容也比较晦涩难懂,经过仔细的分析和观看了一点视频后,才对第五章有了更进一步的了解,希望在在下一周再复习一下第五章的知识。
代码调试中的问题和解决过程
在代码的调试中,我对于书中的使用标准类的概念不是很理解,有一些程序也都是半懂不懂的进行编译,在经过了几个程序的编译后,我才发现java.util.Scanner就相当于c语言中的输入语句,而java.math.BigDecimal的作用就是是计算出的数据更加精确,,在java的学习中,与c语言进行比较学习会使java的学习变得轻松很多。
其他(感悟、思考等,可选)
在本周的学习中,我发现在书本上的学习还是不够的,有些知识还需要从别的地方进行补充(视频),有些代码还是要好好想想才能明白。而且java与c语言还有很多的相似之处,相对借鉴学习会使java语言更好地学习。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 |
---|
| 第二周 | 200/300 | 1/4 | 18/38 | |
| 第三周 | 300/600 | 2/6 | 22/60 | |
参考资料
20145104张家明 《Java程序设计》第3周学习总结的更多相关文章
- 20145302张薇 《Java程序设计》第二周学习总结
20145302张薇 <Java程序设计>第一周学习总结 教材学习内容总结 第三章 第三章讲的是基本类型,变量,运算符和基本条件语句. 基本类型分为: 整数:short(2 byte),i ...
- 20145302张薇《Java程序设计》第九周学习总结
20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...
- 20145104张家明 《Java程序设计》第10周学习总结
20145104张家明 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是两个或多个设备(程序)之间的数据交换. 识别网络上的每个设备:①IP地址②域名(Dom ...
- 20145104张家明 《Java程序设计》第四次实验设计
20145104张家明 <Java程序设计>第四次实验设计 这第四次实验报告 我们开始着手安卓了 在电脑上安装了安卓虚拟机
- 20145104张家明 《Java程序设计》第9周学习总结
20145104张家明 <Java程序设计>第9周学习总结 教材学习内容总结 第16章 -撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. -JDBC目的:让Java ...
- 20145104张家明 《Java程序设计》第8周学习总结
20145104张家明 <Java程序设计>第8周学习总结 教材学习内容总结 第15章 -java.util.logging包提供了日志功能相关类与接口,不必额外配置日志组件,就可以在标准 ...
- 20145104张家明 《Java程序设计》第7周学习总结
20145104张家明 <Java程序设计>第7周学习总结 教材学习内容总结 第13章 简单认识时间和日期 -时间的度量:GMT.UT.TAI.UTC.Unix.epoch. -UTC:保 ...
- 20145104张家明 《Java程序设计》第一周学习总结
20145104张家明 <Java程序设计>第1周学习总结 教材学习内容总结 在开学的第一周,通过了看书进行了系统的学习java,首先简单的了解java的发展历程,然后了解了JVM.JRE ...
- 20145104张家明 《Java程序设计》第2周学习总结
20145104张家明 <Java程序设计>第2周学习总结 教材学习内容总结 本周学习了第三章的内容,看过之后呢,学的和c语言是相通的,看起来就是非常的顺畅,自我感觉良好,第三章主要讲了一 ...
随机推荐
- 图论之最短路径(1)——Floyd Warshall & Dijkstra算法
开始图论学习的第二部分:最短路径. 由于知识储备还不充足,暂时不使用邻接表的方法来计算. 最短路径主要分为两部分:多源最短路径和单源最短路径问题 多源最短路径: 介绍最简单的Floyd Warshal ...
- 【BZOJ2946】[Poi2000]公共串 后缀数组+二分
[BZOJ2946][Poi2000]公共串 Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. 任务: l 读入单词 l 计 ...
- 【BZOJ3362-3365】USACO水题四连A
[BZOJ3362][Usaco2004 Feb]Navigation Nightmare 导航噩梦 Description 农夫约翰有N(2≤N≤40000)个农场,标号1到N,M(2≤M≤ ...
- 【Android】Android实现自定义带文字和图片的Button
在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最 ...
- Unity3D笔记四 基础知识概念
1. Project视图 主要存放游戏中用到的所有资源文件,常见的包括:游戏脚本.预设.材质.动画.自定义字体.纹理.物理材质和GUI皮肤等. 1> Folder: 文件夹,用于资源的分 ...
- BFS+状态压缩DP+二分枚举+TSP
http://acm.hdu.edu.cn/showproblem.php?pid=3681 Prison Break Time Limit: 5000/2000 MS (Java/Others) ...
- 混合欧拉回路的判断(Dinic)
POJ1637 Sightseeing tour Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7483 Accepte ...
- react 侧栏二级菜单组件
侧边栏菜单组件 component 下新建menu文件,menu下建index.jsx和subitem.jsx index.jsx import React, { Component } from ' ...
- JAVA内存构成详解
java memory = direct memory(直接内存) + jvm memory(MaxPermSize +Xmx) 1)直接内存跟堆 直接内存则是一块由程序本身管理的一块内存空间,它 ...
- 玩转JavaScript Callback函数
如果你对Jquery没有足够的经验,但是你又用过JQuery,这么来说没你已经用过了回调函数了.但是你可能不知道它是如何工作和实现的. 这篇文章主要基于我所了解的回调函数,我试图启发大家基于最常规的J ...