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 |

20145129 《Java程序设计》第3周学习总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

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

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

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

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. CentOS 卸载已安装软件

    根据软件的安装类型,选择合适的卸载方式: 卸载前确定软件的完整的版本号:#rpm -qa ×××*#rpm -ql xxx-xxx  //查找安装目录 执行卸载命令:#rpm -e xxx-xxx # ...

  2. Linux下vi编辑器粘贴复制剪切功能

    RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到 ...

  3. Webservice SOAP传输序列化总结 以及webservice之序列化以及反序列化实例

    一.所有Webservice中传递的对象都必须能够序列化,这个是作为在网络之间传输的必要条件.XML WebService和SOAP标准支持的数据类型如下: 1.基本数据类型. 标准类型,如:int ...

  4. getComputedStyle(and currentStyle)

    1.getComputedStyle 1.1 用法: currentStyle获取计算后的样式,也叫当前样式.最终样式.优点:可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获取行间样 ...

  5. keytool 获取证书信息

    keytool -list -v -keystore E:\androidkestore 红色部分为证书地址 输入密码后得到md5及sha1 google地图和百度地图申请key可能用到

  6. Firbird 将可 null 的列更新为 not null

    在GOOGLE上搜到2种方法:   第一种是新加一列 C2, 然后 update myTable set C2=原字段,再删除[原字段], 但这种方法有限制,当很多其它表引到此表时,非常麻烦.   第 ...

  7. emlog模板制作帮助手册

    emlog基本模板文件 必须文件: main.css: CSS(样式表)文件 log_list.php: 日志列表页模板 echo_log.php: 日志页模板 page.php: 页面(page)模 ...

  8. scrapy爬虫框架入门教程

    scrapy安装请参考:安装指南. 我们将使用开放目录项目(dmoz)作为抓取的例子. 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行 ...

  9. 第六章 管理类型(In .net4.5) 之 创建类型

    1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使 ...

  10. flask程序部署在openshift上的一些注意事项

    https://www.openshift.com/blogs/how-to-install-and-configure-a-python-flask-dev-environment-deploy-t ...