20155208徐子涵 2016-2017-2 《Java程序设计》第3周学习总结
20155208徐子涵 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
第四章 认识对象
4.1 类与对象
•对象(Object):存在的具体实体,具有明确的状态和行为
•类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制
•从类看对象:类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象
•从对象看类:类的产生,是从少数实例,推广到大量相似实例的抽象化过程(abstraction)
•类是对象的设计图,对象是类的实例,生成对象要先定义类。类定义时使用class关键词,建立实例要使用new关键词。以类名称声明的变量,称为参考名称、参考变量或直接叫参考。
•一个原始码中可以有很多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同。只要有一个类定义,编译程序就会产生一个.class文档。
•对象指定与相等性:
当=用于基本类型时,是将值复制给变量,当==用于基本类型时,是比较两个变量储存的值是否相同。
当你在操作对象时,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一对象。
注意:别使用==或!=来比较两个对象实质内容值是否相同,要使用equals()
class Clothes{
String color;
char size;
}
public class Field{
public static void main(String[] args){
Clothes sun = new Clothes();
Clothes spring = new Clothes();
}
}这一代码就是面向对象知识的简单举例。
4.2基本类型打包器
- 要使基本类型如同对象一样操作,可以使用Long、Integer、Double、Float、Boolean、Byte等类型打包。
4.3数组对象
•在Java中,数组是对象。
•与C语言不同,Java需要检查数组边界,越界会触发ArrayIndexOutOfBoundsException异常。
•无论System.arraycopy()还是Arrays.copyof(),用在类类型声明的数组时,都是执行浅层复制。
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); } }4.4字符串对象
•在Java中,字符串是java.lang.String实例,用来打包字符数组。
•在Java中,以""包括的字符串,只要内容相同(序列、大小写相同),无论在代码中出现几次,JVM都只会建立一个String实例。
class Clothes3 { 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 Clothes("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); }第五章 对象封装
5.1 封装概念
•封装(Encapsulation)实际上使用方法(Method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当作黑箱进行操作。
通过构造方法(构造函数)封装初始化流程
通过成员方法(函数)封装操作
通过成员变量封装数据
5.2类语法细节
•如果没有声明权限修饰的成员,只有在相同包的类程序代码中才可以直接存取,也就是“包范围权限”。如果想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象成员必须是公开成员,在Java中要使用public加以声明。
•如果定义类时,没有撰写任何构造函数,编译程序会自动加入一个无参数、内容为空的构造函数,称为默认构造函数。可以定义多个构造函数,只要参数类型或个数不同,这称为重载构造函数。
•在Java中,this()代表了调用另一个构造函数,且this()调用只能出现在构造函数的第一行。
•被声明为static的成员,不会让个别对象拥有,而是属于类。
•以类命名实例来说,首字母是大写,以static使用习惯来说,是通过类名称与“.”运算符来存取。
•在static方法或区块中不能出现this关键字。static方法中不能用非static数据或方法成员。
•使用import static语法要注意名称冲突问题,有些名称冲突编译程序可通过以下顺序来解析。
局部变量覆盖:选用方法中的同名变量、参数、方法名称。
成员覆盖:选用类中定义的同名数据成员、方法名称。
重载方法比较:使用import static的各个静态成员,若有同名冲突,尝试通过重载判断
教材学习中的问题和解决过程
问题:
由于以前学的C语言中for循环语法都是:
for(初始式;执行结果必须是boolean的重复式;重复式){
描述句;
}
所以当看到书上p96页的for循环语法时(具体语句如下),便感到很难理解。
for(int score:scores){
System.out.printf("学生分数:%d %n",score);
}
解决过程:
通过反复看书上的解释和上网查找资料,我知道了该语法是增强式for循环,执行结果其实与以前学的for循环语句相同 ,但是编写代码时会更简洁方便。其具体执行过程是:上面的程序片段取得scores数组第一个元素,指定给score变量 后执行循环体,接着取得scores中第二个元素,指定给score变量后执行循环体,依次类推,直到scores数组中所有 元素都访问完为止。
代码调试中的问题和解决过程
问题: 命令提示符中不能显示中文字
解决方法: 后来上网查发现要在Editplus里面设置文件编码为ANSI格式,然后直接保存还是不能正常显示中文,必须重新写一个JAVA程序才能实现。

其他(感悟、思考等,可选)
我感觉这周的学习任务比较多,教材上两章有80多页,看起来也有一点困难,有些知识是第一次接触,弄了好久才弄懂,而且还留存了一些问题,和室友讨论之后才基本弄懂,不过我还是会坚持下去的。
学习进度条
代码行数(新增/积累) 博客量(新增/积累 学习时间(新增/累积) 目标 5000行 30篇 400小时 第一周 16/16 1/1 8/8 第二周 120/120 2/2 12/12 第三周 130/150 1/1 9/9 参考资料
20155208徐子涵 2016-2017-2 《Java程序设计》第3周学习总结的更多相关文章
- 20155334 2016-2017-2 《Java程序设计》第九周学习总结
20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...
- 20155321 2016-2017-2 《Java程序设计》第九周学习总结
20155321 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 厂商在实现JDBC驱动程序时,依方式可将驱动程序分为四种类型: JDBC-OD ...
- 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学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
随机推荐
- python 自然语言处理(三)____条件频率分布
条件频率分布就是频率分布的集合,每个频率分布有一个不同的“条件”,这个条件通常是文本的类别.当语料文本分为几类(文体,主题,作者等)时,可以计算每个类别独立的频率分布,这样,就可以通过条件频率分布研究 ...
- am335x system upgrade uboot sd boot(一)
由于上层应用的需求,需要运行arm docker,在kernel3.2上面还不支持,且编译器的glibc版本比较低的问题,故需要做系统升级 新的内核4.14.40驱动开发和以往有很大的不同,关键在于d ...
- day18 类与类之间的关系
今日所学内容: 1.类与类之间的关系 2.self 到底是谁? 3. 特殊成员 : 1.类与类之间的关系 在我们的世界中事物和事物之前总会有一些联系 在面向对象中,类与类之间也可以产生相关的联系 1) ...
- bluemix部署(二)构建kubernetes工作环境
本文接上篇.在bluemix中构建kubernetes容器. 1.创建集群 左上角的三横,选容器,然后创建集群. 注意区域,免费版,给个名字,创建集群吧. 继续正在部署,这个可能要15-30分钟,真不 ...
- caffe,Inception v2 Check failed: top_shape[j] == bottom[i]->shape(j)
使用Caffe 跑 Google 的Inception V2 对输入图片的shape有要求,某些shape输进去可能会报错. Inception model中有从conv和pooling层concat ...
- Java实现将数字转为大写汉字
public class Int2Big { static String int2big(int src) { final String num[] = {"零", "壹 ...
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- Python Select模型(程序流程)(转)
缘由 之前写socket的CS模型代码,都是利用最原始的多线程方式.服务端是主线程,接到客户端的连接请求就从线程池中获取一个线程去处理整个socket连接的所有操作,虽然在连接数较短的情况下没有什么影 ...
- win8 下面 listen 的队列长度貌似无效了 上c/s 代码 并附截图,有图有真相
#include <WinSock2.h> #include <stdio.h> #include <windows.h> DWORD ServerRoutine( ...
- SharePoint REST API - 概述
博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...