20155201 2016-2017-2 《Java程序设计》第三周学习总结
20155201 2016-2017-2 《Java程序设计》第三周学习总结
教材学习内容总结
- 第四章要点:
- 4.1类与对象
- 类定义时使用class关键词,基本模式为
class name{
int a;
int b;
float c;
String d;
}
对比c语言中结构体struct的定义,帮助记忆。
想要在建立对象时,一并进行某个初始流程,比如指定数据成员值(int a,b),选择定义构造函数。
class name{
int a;
int b;
String d;
name(int a,int b,String d){
this.a=a;
this.b=b;
this.d=d;
}
}
在java.math.BigDecimal的使用中,数值的加减和等于由
result=op1+op2;
result2=op1-op2;
if(result==op1+op2)
对应为
BigDecimal result=op1.add(op2);
BigDecimal result2=op1.substract(op2);
if(op1.add(op2)equals(result))
“=”在基本类型与类类型中的差别:
=用于基本类型时,将值赋值给某个变量;用于基本类型时,是比较两个变量储存的值是否相同。
=在操作对象中,=用在指定参考名称参考某个对象,用在比较两个参考名称是否是参考同一对象。想要比较两个参考名称的对象内含值是否相同,则要使用a.equals(b)。
- 4.2基本类型打包器
| 基本类型 | 类类型 |
|---|---|
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| byte | Byte |
自动装箱:
int data1=1;
int data2=2;
Integer warpper1=new Integer(data1);
Integer warpper2=new Integer(data2);
对应如下:
Integer data1=1;
Integer data2=2;
- 4.3数组对象
定义一个数组:
int[] a={1,2,3};
数组的复制:
int[] score1={1,2,3};
int[] score2=score1;
这段代码只是将score1参考的数组对象也给score2参考,即书本中比喻将score1名牌绑的对象也绑上score1的名牌。
int[] score1={1,2,3};
int[] score2=new int[score1.length];
for(int i-0;i<score1.length;i++){
score2[i]=score1[i];
}
这段代码建立score2数组,长度与score1相同,逐一将score1中的索引元素指定到score2的对应索引位置。
浅层复制与深层复制的应用区别在于是否复制类中的属性。
浅层复制:
for(int i=0;i<c1.length;i++){
c2[i]=c1[i];
}
深层复制:
for(int i=0;i<c1.length;i++){
c2[i]=new Clothes(c1[i].color,c1[i].size);
}
- 字符串对象
字符串常量与字符串池:
public class compare {
public static void main(String[] args) {
String name1="Justin";
String name2="Justin";
String name3=new String("Justin");
String name4=new String("Justin");
System.out.println(name1==name2);
System.out.println(name1==name3);
System.out.println(name3==name4);
}
}
"Justin"建立的String在字符串池中维护,所以name12参考的是同一个对象,而name34因为是new String所以建立的两个不一样的字符串,所以name34参考的对象不同。
- 第五章要点:
- 5.1 何谓封装
使用java的构造函数语法,实现对象初始化流程的封装,拿到封装类的用户,不用重复撰写对象初始化流程。
封装对象操作流程实例:
void fun(int a){
if(a>0){
this.num++;
}
}
- 5.2类语法细节
public、private可以使用在类、方法、成员变量前定义。
构造函数:在定义类时,可以使用构造函数定义对象建立的初始流程。构造函数是与类名称同名,无需声明返回类型的方法。示例:
class name{
int a=0;
String strs;
name(int a,String strs){
this.a=a;
this.strs=strs;
}
}
数据成员初始值
| 数据类型 | 初始值 |
|---|---|
| byte | 0 |
| short | 0 |
| int | 0 |
| long | 0L |
| float | 0.0F |
| double | 0.0D |
| char | \u0000 |
| boolean | false |
| String | null |
| 类 | null |
编译程序会在你没有撰写任何构造函数时,自动加入默认构造函数,所以可以这样以无自变量方式调用构造函数:
Some some=new Some();
重载构造函数: 可以定义多个构造函数,只要参数类型不同或者个数不同。
public class Some{
private int a=10;
private String text ="n.a.";
public Some(int a){
if(a>0){
this.a=a;
}
}
public Some(int a ,String text){
if(a>0){
this.a=a;
}
if(text!=null){
this.text=text;
}
}
}
final与static的区别在于:
final double PI=3.14159;
表示仅成员对象PI拥有不变值3.14159,
static final double PI=3.14158;
表示整个类拥有PI值;取值时应用:
name(类名称).PI
传值调用中c.name="String"与c=new classname("String");后者产生了新的参考对象,在结束函数调用时被JVM清除,而前者直接改变了函数穿入值。
教材学习中的问题和解决过程
- 教材P121操作题斐波那契数列尝试:
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
System.out.printf("求几个斐波那契数?");
int num;
Scanner scanner=new Scanner(System.in);
num=scanner.nextInt();
int[] fb=new int[num];
fb[0]=0;
fb[1]=1;
int i=0;
for(i=0;i<num;i++){
if(i>1){
fb[i]=fb[i-1]+fb[i-2];
}
System.out.printf("%3d",fb[i]);
}
}
}
运行结果:

- P121操作题查找数组中用户指定数字是否存写
import java.util.Scanner;
public class Find {
public static void main(String[] args) {
int[] num={1,10,31,33,37,48,60,70,80};
System.out.println("Input find-number:");
Scanner scanner=new Scanner(System.in);
int find;
find=scanner.nextInt();
int i;
for(i=0;i<9;i++){
if(find==num[i]){
System.out.println("find it!");
break;
}
}
if(i==9){
System.out.println("No!");
}
}
}
运行结果:

代码调试中的问题和解决过程
- 教材P124页CashApp代码中缺少对CashCard类的定义,缺少编译不通过:

补上定义CashCard类:
class CashCard1{
String number;
int balance;
int bonus;
CashCard1(String number,int balance,int bonus){
this.number=number;
this.balance=balance;
this.bonus=bonus;
}
}
运行结果如下:

代码托管
代码提交过程截图:
- 运行 git log --pretty=format:"%h - %an, %cd : %s"

- 运行 git log --pretty=format:"%h - %an, %cd : %s"
代码量截图:
- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l

- 运行 find src -name "*.java" | xargs cat | grep -v ^$ | wc -l

上周考试错题总结
- 1.Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。
- 2.判断:Java中,非零数字等价于true.(X)
- 3.填空:编译p60 Comparison.java的命令为(javc –d xxx Comparison.java )
- 4.判断:P64 Shift.java中第三个printf的输出结果是”2的2次方:4”。(X)
- 5.判断:byte a=3;byte b=4; 那么 a+b的类型也是byte.(X)
其他(感悟、思考等,可选)
又一次尝试课后操作题,这次的操作题对于刚还是新手的我还是有一点难度的,起码不能很流畅、迅速的编出代码,还是需要翻翻前面的章节,好在一次运行通过,没出现什么错误,还是小有成就感的。大一学习c语言时,老师在期末总评中平时成绩一项采用部分作业系统的分数,最初我在作业系统上刷题是为了更高的平时成绩,刷着刷着我就发现我对于题目的理解变得更好了,也能更快、更好的写出答案。在作业系统上刷题不再仅仅只是为了分数,更是为了练习、提高自己的水平,学弟学妹问我们c语言如何学习的时候,我的答案就是多做题多练,掌握的很快。到了这学期学习java语言,虽然没有所谓的作业系统,但我觉得我更应该做到的是自律,没有作业系统也应该保持不间断的练习,这样才能刚快的入门,对java的理解才能更快。希望成长一年的我能够做到。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 第三周 | 554/700 | 1/1 | 17/20 |
计划学习时间:15小时
实际学习时间:17小时
参考资料
20155201 2016-2017-2 《Java程序设计》第三周学习总结的更多相关文章
- Java程序设计第三周学习总结
1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...
- 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...
- 20155201 2016-2017-2 《Java程序设计》第二周学习总结
20155201 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 编译运行P55各种类型可储存的数值范围代码,截图: 常用格式控制符: 符号 说明 %% 表示 ...
- 20155201 2016-2017-2 《Java程序设计》第一周学习总结
20155201 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 每一章的问题: 第一章 Java ME都有哪些成功的平台? 第二章 哪些情况可以使用impo ...
- 20155201 2016-2017-2 《Java程序设计》第九周学习总结
20155201 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC全名JavaDataBaseConnecticity,是Jav ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
随机推荐
- 【PHP】通过header发送自定义数据
发送header: 我们定义了三个参数,token.language.region,放入header发送过去 <?php $url = 'http://www.example.com'; $he ...
- MQTT的学习研究(八)基于HTTP DELETE MQTT 订阅消息服务端使用
HTTP DELETE 订阅主题请求协议和响应协议http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau ...
- 【python系列】python2.x和python3.x的区别
刚接触python使用的是python2.x的书籍,但是发现python3.x和python2.x有不小的区别,以下做一些记录 性能 Py3.0运行 pystone benchmark的速度比Py2. ...
- sencha touch 扩展篇之使用sass自定义主题样式 (下)通过css修改官方组件样式以及自定义图标
上一讲我们讲解了如何使用官方的api来修改主题样式,这讲我们继续讲解sass的样式修改, 编译官方自带的主题包 在生成的项目以及官方sdk的目录下,自带了一些主题sass包,我们也可以通过修改sas ...
- WEB安全番外第六篇--关于通过记录渗透工具的Payload来总结和学习测试用例
背景: 在WEB安全的学习过程中,了解过了原理之后,就是学习各种Payload,这里面蕴藏着丰富的知识含量,是在基本上覆盖了漏洞原理之后的进一步深入学习的必经之路.无理是Burpsuite还是Sqlm ...
- Sun公司的产品AnswerBook存在多种漏洞
一.未授权管理脚本访问漏洞: 1.受影响版本: Sun-AnswerBook2 1.2-1.4.2 2.攻击测试手段 http://a.b.c.d:8888/ab2/@AdminViewErr ...
- iOS - 常用iOS的第三方框架
图像:1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等 ...
- mysql动态sql 整理多个字段
原始表: 整理后的表: 方案一(动态sql): BEGIN #Routine body goes here... DECLARE v1 ); DECLARE v2 ); #DECLARE v3 VAR ...
- 微信小程序 --- 拨打电话
拨打电话:wx.makePhoneCall btnclick:function(){ wx.makePhoneCall({ phoneNumber:'12580' }); }
- 收集一些常用的CDN链接!无需下载快速使用!
一些常用的CDN链接,可以到这里看: http://www.bootcdn.cn/ 这个网站查找资源的方式很简单,后缀加上要查找的名字即可: 例如: http://www.bootcdn.cn/boo ...