20155319 2016-2017-2 《Java程序设计》第3周学习总结

教材学习内容总结

 第三周的学习量还是很大的,需要学习的内容更难了而且   量也变多了,所以投入了更多的时间到Java的学习中去。
第四章主要讲了Java基本类型中的类类型,如何定义类、构造函数、使用标准类、基本类型打包器、数组复制、字符串等内容查询API文档。
第五章主要内容包括封装、封装对象、类语法细节、this、static类成员、不定长度自变量、内部类

定义类

产生对象必须先定义类,对象是类的实例,对象和实例在Java中几乎是等义的名词。

  • new新建一个对象
  • class定义类时使用的关键词
  • String变量的字符串表示
  • char类型声明变量
  • =参考至新建对象

使用标准类

  • 使用java.util.Scanner标准类来进行输入。对于不同的类有不同的写法nextInt() nextByte() nextFloat()等等
  • 使用java.math.BigDecimal来获得更好的精确度。加减乘除用plus() substract() multiply() divide()

数组

  • 数组打印:数组就像是一个有很多小隔间的容器,每个小隔间可以放入一个元素,用for语句进行输出。如果是顺序地从头到尾取出数组使用for(int score:scores)
  • 数组排序:数组的常见使用方法就是获取最值和排序,其实二者差别不是很大,都是对数组内每一个小隔间的元素进行判断及重排序。
  • 操作数组对象:如果事先不知道数组中的元素值,只知道元素个数,则可以通过new关键词指定长度来建立数组(例如:int[] scores=new int[10];)。此时数组初始值均为0,若要改变初始值,则可使用java.util.Arrays的fill()方法来设定新建数组的元素值。
  • 数组复制:数组复制的基本做法是另行建立新数组。但可以使用arrays.copyOf()方法。System.arraycopy()的五个参数分别是来源数组、来源起始索引、目的数组、目的起始索引、复制长度。

字符串对象

  • 字符串是由字符组成的文字符号。在java中,字符串是java.lang.String实例,用来打包字符数组。例如:

String name="justin" //建立String实例

System.out.println(name) //显示justin

System.out.println(name.length()) //显示长度为6

System.out.println(name.charAt(0)) //显示第一个字符j

System.out.println(name.toUpperCase()) //显示JUSTIN

封装

  • 封装可以理解为把方法封在类中,用打时候可以直接拿,就好比你要上学,类就是书包而方法就是书,要用方法打时候直接从书包中拿书就行。

类语法细节

  • public权限修饰

    public是个公开类,可以在其他包的类中使用。可以在构造函数上声明public,这表示其他包中的类可以直接调用这个构造函数。可以在方法上声明public,这表示其他包中的方法可以直接调用这个方法。
  • 关于构造函数

    函数名与类名相同,不用定义返回值类型,不可以写return语句。
  • 重载

    (1)重载的概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

    (2)重载的特点:与返回值类型无关,只看参数列表。

    (3)重载的好处:方便于阅读,优化了程序设计。

使用this

  • 除了被声明为static的地方外,this关键字可以出现在类中任何地方。在构建函数参数与对象数据成员同名时,可用this加以区别。

static类成员

  • 被声明为static的成员,不会让个别对象拥有,而是属于类,是将类名称作为名称空间。
  • 由于static成员是属于类,而非个别对象,所以在static成员中使用this,会是一种语意上的错误。
  • 静态变量必须在初始化之前进行赋值,否则会报错。静态方法通常都是被经常使用的方法,不需要每次都重新实例化,提高工作效率。

内部类

  • 可以在类中再定义类。
  • 内部类也可以使用public、protected或private声明。例如:
class Some{
private class Other{ }
}

代码调试中的问题和解决过程

  • 问题:在编写编写定义类的时候出现如下情况

  • 解决方案:在定义类中少加了一个}

  • 问题:在输出数组的时候出现了找不到变量i

  • 解决方案:在for后多打了;

代码托管

  • 代码提交过程截图:

    • 运行 git log --pretty=format:"%h - %an, %cd : %s"

  • 代码量截图:

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

上周考试错题总结

  • ~0b1011的十进制(-12):先取反,负数变反加一。
    1. CH03 判断: 0.123 == 1.23e-2 (X)
  • ...

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。

耗时估计的公式

:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:17小时

参考资料

#20155319 2016-2017-2 《Java程序设计》第3周学习总结的更多相关文章

  1. 20155319 2016-2017-2 《Java程序设计》第九周学习总结

    20155319 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 整合数据库 ==16.1.1 JDBC简介== JDBC全名Java DataBase Co ...

  2. 20155319 2016-2017-2 《Java程序设计》第一周学习总结

    20155319 2016-2007-2 <Java程序设计>第一周学习总结 考核方式 翻转课堂考核12次(5*12=60):每次考试20-30道题目,考试成绩规格化成5分(如总分20分就 ...

  3. 20155334 2016-2017-2 《Java程序设计》第九周学习总结

    20155334 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章:整合数据库 16.1 JDBC入门 JDBC(Java DataBase Conn ...

  4. 2016-2017-2 《Java程序设计》第二周学习总结

    20155319 2016-2017-2 <Java程序设计>第二周学习总结 课堂学习内容 git:版本控制 java -d bin(当地文件夹) src/Hello.java把生成的.c ...

  5. # 20155337 2016-2017-2 《Java程序设计》第九周学习总结

    20155337 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...

  6. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  7. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  8. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  9. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  10. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

随机推荐

  1. android中反射技术使用实例

    在计算机科学领域.反射是指一类应用,它们能够自描写叙述和自控制.也就是说,这类应用通过採用某种机制来实现对自己行为的描写叙述(self-representation)和监測(examination), ...

  2. flask开启debug模式的两种方法、加载配置文件的两种方法、URL传参的四种方法

    from flask import Flask app = Flask(__name__) # app.config.update(DEBUG=True)#开启debug模式 #加载配置文件方法一 # ...

  3. 【JavaScript】explode动画

    这是一个js实现的粒子聚合文字或图片的动画特效 部分程序如下 n.container = n.container[0] || n.container; /*有且仅有一个container*/ var ...

  4. 20155328 2016-2017-2 《Java程序设计》第九周学习总结

    20155328 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 16.1 JDBC入门 JDBC是Java联机数据库的标准规范,定义一组标准类与接口,应用程 ...

  5. numpy初始化

    一般的初始化就是用zeros这种去初始化,但你想测试一些函数的时候,如果是全0其实不好测试 可以先用python本身初始化一个list,然后转换成numpy的array a = [1.1,1.5,1. ...

  6. ROS C++ 规范概要

    一.动机 代码一致才能可读.联调.高效率.高复用.可移植性. 二.命名方式 CamelCased camelCased under_scored ALL_CAPITALS 2.1 Package命名方 ...

  7. VSCode调试C++

    在ubuntu下调试C++ 本人觉得VSCode比较好用. 步骤如下: 1. 编写.cpp,.h文件 自行完成自己的程序. 2. 编写CMakeLists.txt.下面是一个比较好用的模板. 根目录为 ...

  8. 关于CUDA5之后cutil.h不可用的问题

    用CUDA进行GPU加速开发的同学在移植一些代码片段时应该都有过这样的经历,如果自己用的是高版本的CUDA,系统有时会报错:CANNOT FIND CUTIL.H.查看代码才发现原来是多了CUTIL. ...

  9. PHP去重可用

    //国外 $arr6 = array_merge($arr2,$arr4); $arr8 = array(); $arr10 = array(); foreach($arr6 as $k6=> ...

  10. 如何导出SHP文件中的点坐标?(ArcGIS10)

    行政区域坐标,网上流传较广的版本是包括海域的,假如你仅仅想要把陆地边界绘出,那么怎么办呢? 现在讲一下用arcgis 10从shp线.面文件中获取对应区域的坐标呢?(点图层忽略第一步) 首先用在arc ...