20145129 《Java程序设计》第3周学习总结

20145129 《Java程序设计》第3周学习总结

教材学习内容总结

  • 类与对象
    • 定义类
      1. 一个原始码中可以有多个类定义,但只有一个是公开类(public),并且文档中的主文档名必须和公开类名称相同。
      2. 使用new创建对象时,可以直接传入数据成员值(书中例子为直接传入字符串与字符,执行结果不变)。
    • 使用标准类
      1. java.util.Scanner——会帮你完成标准输入。Scanner对每个基本类型,都会有对应的nextxxx()方法,如nextByte()。直接取得上一个字符串用next();取得用户输入的整行文字用nextLine()。
      2. java.math.BigDecimal——会以默认精度进行计算(可以得到更好的精确度,避免浮点数运算出现误差。BigDecimal可以进行加减乘除等运算分别为plus()、substract()、multiply()、divide(),这些方法都会返回代表运算结果的BigDecimal。
    • 对象指定与相等性
      1. '=='用在对象类型是比较两个名称是否参考同一对象。
      2. 使用'equals()'比较二者索引对象的内含值是否相同。
  • 基本类型打包器
    • 打包基本类型
      1. Long、Integer、double、float、boolean等类为打包器,主要是将基本类型打包在对象中。P91代码执行结果可理解可以将基本类型当做对象操作。
    • 自动装箱、拆箱
      1. 通过书P91最下方的两行代码 'Integer data1=10;、Integer data1=10;',data1与data2在运行时会参考Integer实例,可以直接进行对象操作,这样程序就简洁许多。
      2. 通过书P92代码'int i=10; Integer wrapper=i;'、'Number number=3.14f'在运算时3.14f会被自动装箱为Float,然后指定给number。
      3. 自动拆箱:自动取出打包器中的基本形态信息。
    • 自动装箱拆箱的内幕
      1. 注意传入的int是否在默认值之间,若不在可在启动JVM时使用系统属性java.lang.IntegerCache.high来指定。(执行时期默认值无法更改)。
  • 数组对象
    • 数组基础
      1. 数组:基本上是用来收集数据的,是具有索引的数据结构。
      2. 数组声明一般将[]放在类型关键词之后。
      3. 数组的length属性可以取得数组长度。
      4. 声明二维数组中,有两个维度,必须先通过cords.length得知列数,对于每一列再利用 cords[x].length得知每列有几个元素。
    • 操作数组对象
      1. 在用'new'建立数组后每个索引元素会有默认值(数组就是对象)。
      2. 使用'java.util.Arrays'的'fill()'方法来设定新建数组的元素值。
      3. 'Integer[] scorse = new Integer[3];',此处建立的数组,每个索引都是参考至Null,所以建立了0个Inteder对象。
    • 数组复制
      1. 使用'System.arraycopy()'或者'Arrays.copyOf()'方法进行数组复制,书P104中前两行代码并不是数组复制,而是给予参考对象,叫复制参考。
  • 字符串对象
    • 字符串基础
      1. 由字符组成的文字符号称为字符串。在Java中是对象。用""包括一串字符来建立字符串。
      2. 同样可使用length()取得字符串长度;用charAt()可以指定取得字符串中某个字符(索引从0开始);用toUpperCase()将原本小写的字符串内容转为大写的字符串内容。
      3. 在Java中可以使用+运算来连接字符串,例如:'String name = "justin"'、'System.out.println("你的名字是:"+name);'。
    • 字符串特性
      1. 基于节省内存考虑,以""包括的字符串,只要内容相同(序列、大小写相同),无论在程序代码中出现几次,JVM都只会建立一个String实例,并在字符串池中维护。书中P110最下面的代码片段中name3与name4为用new建立了新对象,所以它们分别参考至新建的String实例。
      2. 使用'equals()'比较字符串实际内容是否相同。例如:'name1.equals(name2)'为书P111上一行代码中的片段,表示name1与name2相比较字符串实际内容是否相同。
      3. +连接数据虽然方便但是在循环只用会频繁产生新对象会造成效能上的负担,可以改用StringBuilder进行改善。
    • 字符串编码
      1. 简体中文Windows,使用Windows默认的纯文本编辑器,则是GB 2312(Eclipse与其相同);NetBeans为UTF-8。
      2. '>java -encoding UTF-8 Main.java'——使用java指令指定-encoding选项(没指定时会使用操作系统默认编码),即让编译程序使用UTF-8来读取内容。
    • 查询Java API文件:可了解更多的类与方法。
  • 何谓封装:(是指隐藏对象的属性和实现细节,仅对外提供 公共访问方式)
    1. 使用Java的构造函数语法,实现对象初始化流程的封装。
    2. 在类中定义方法,如果不用返回值方法名称前可以声明void。(封装流程可方便用户使用并且避免不必要的失误)
    3. 如果数据为类私有,可以使用private关键字定义。此时用户必须通过定义好的方法对数值修改。(封装类私有数据,让用户无法直接存取)
  • 类语法细节
    • 权限修饰
    • Java中有三个权限修饰:private、public、protected。
    • 如果想在其他包的类程序代码中存取某包的类或对象成员,则该类或对象必须是公开成员,要使用public加以声明。
  • 关于构造函数
    • 如果定义类时,没有撰写任何构造函数,编译程序会自动加入一个无参数内容为空的构造函数,因此可以这样以无自变量方式构造函数。
  • 构造函数与方法重载
    • 定义多个参数类型或个数不同的构造函数,称为重载构造函数。
    • 定义方法时也可以进行重载,可为类似功能的方法提供统一名称,但根据参数类型或个数的不同调用对应的方法。根据传递的自变量类型不同,会调用对应的方法。
  • 使用this
    • 在构造函数参数与对象数据成员同名时用this加以区别。
    • 'this()'代表了调用另一个构造函数,调用哪个函数则视调用this()时给的自变量类型与个数而定。
  • 'static'类成员
    • 被声明为static成员属于类,不会被个别对象拥有。且将类名称作为名称空间。
    • 由于static成员属于类,而非个别对象,所以在static方法或区块中不能出现this关键字。在static方法中不能用非static数据成员或方法。
  • 不定长度自变量
    • 声明参数列时要在类型关键字后加上'...'。
    • 使用不定长度自变量时,方法上声明的不定长度参数必须是参数列最后一个。
  • 内部类:在类中再定义类)
    • 可定义在类区块中。
    • 可以使用private、public、protected声明。
    • 内部类本身可以存取外部类成员。
    • 可以被声明为static。此内部类通常是将外部类当作名称空间,是个独立类,可以存取外部类static成员,不能存取外部非static成员。
    • 方法中也可使用,做辅助用,方法外无法使用。
  • 传值调用
    • Java中只有传值调用。

教材学习中的问题和解决过程

在仔细阅览课本以及实际操作后,第五章传值调用具体传值方法理解模糊。需要在进行后两章学习后再深入理解。

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

在IDEA上进行代码编辑并执行没有出现太大的问题,中途尝试用+连接字符串失败了,经过筛查发现'M'写成"M",修改后执行成功。

其他(感悟、思考等,可选)

经过4、5章学习,发现只有前面几章基础打好后才能更好的理解后面部分,并且只有将新知识与旧知识相结合才能更好的掌握这门课程,当然实际操作很必要并且在实际操作中除了抄书上的代码外,自己改写或者创新也对学习很有用。然后,老师给的教学视频和课件结合教材学习也是很有效果,视频是将好几章的内容相结合来讲解的并且会讲到一些书上没有提到的小知识点。

学习进度条

| | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长| | -------- | :----------------:|:----------------:|:---------------: |:-----:| | 目标 | 3000行 | 15篇 | 300小时 | | | 第一周 | 50/50 | 2/2 | 14/14 | | 第二周 | 100/150 | 1/3 | 10/24 | | 第三周 | 300/450 | 1/4 | 15/39 |

posted @ 2016-03-23 17:28  20145129  阅读(141)  评论(0编辑  收藏  举报