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


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

    教材学习内容总结

    学习目标

    • 区分基本类型与类类型
    • 理解对象的生成与引用的关系
    • 掌握String类和数组
    • 理解封装的概念
    • 掌握构造方法的定义
    • 理解重载的概念
    • 掌握static的应用

    第四章 认识对象:

    • 定义
    1. class:定义类
    2. char:类型声明变量
    3. new:新建对象
    4. 名称 X:参考
    5. =:可用于指定参考至新建变量
    6. 构造函数:与类名称同名,无须声明返回类型的方法
    • 两个基本标准类
    1. util.Scanner
    • scanner扫描标准输入,看看用户有无输入字符
    • scanner对每个基本类型都有个对应的next ...()方法
    1. java.math.BigDecimal
    • 使用ava.math.BigDecimal得到更好的精确度

    • java使用分数与指数来表示浮点数,不可以用==直接比较浮点数运算的结果

    • 创建Decimal的方法之一是使用字符串,可进行加、减、乘、除运算

    • 加法代码形式:BigDecimal result=XXX1.subtract(XXX2); System.out.println(result);

    • 对象指定

    1. 操作对象是,=用于指定参考名称参考某个对象,而==用于比较两个参考名称是否参考同一对象,!=用于比较两个名称是否没参考同一对象
    2. 打包
    • 打包基本类型:让基本类型像对象一样操作
    • 打包器:Long、Integer、Double、Float、Boolean、Byte等类
    1. 编译程序蜜糖
    • 编译蜜糖程序:参考实例4进行操作(自动装箱),运作时自行取出打包器中的基本形态信息(自动拆箱)
    • 增强式for:for(int[] row:cords)
    1. 数组对象
    • 数组:用int[]声明,具有索引的数据结构
    • fill()可新建元素值
    • 对象是根据类而建立的实例,代表建立数组对象的类定义由JVM动态产生
    • 基本类型数组复制:Array.copyOf()
    • 类类型申明的数组,在使用for循环进行复制时并没有实际复制出cloehes对象,称为复制参考或浅层复制
    1. 比较对象实质内容是否相同用equals(),不要用==
    2. 字符串对象
    • 字符串用来打包字符数组,可以用“”包括一串字符来建立字符串
    • 字符串池:JVM创建String实例用于对象参考,并在字符串池中维护
    • 字符串常量:用“”写下的字符串称为字符串常量
    • 用+连接字符串会产生新字符串
    • javac -encoding 指定字符编码

    第五章 类与对象

    1. 封装
    • 封装 = 类 + 访问控制(public,protected,private...)
    • Java可以使用private关键字定义类私有的数据,声明为private的成员表示为类私有
    • 封装的主要目的:隐藏对象细节,将对象当作黑箱进行操作。用户要操作对象,要使用你定义的函数,通过你的方法调用,但是不知道构造函数的细节,也不知道私有数据
    1. 类语法细节
    • public声明:表示它是个公开类,可以在其他包的类中使用,用在成员变量前
    • 重载构造函数:定义多个只要参数类型火哦个数不同的构造函数
      public class Some{ ... public Some(inta){ ... } public Some(int a,String text){ ... } }
      方法重载可用一致的名称调用类似功能的方法
    • this:构造函数参数与对象数据成员同名时,用this加以区别
    • static:所有对象公有的 ,用在类前,用在方法前,用在成员变量前
    • 访问惯例:类名.static成员
    • 内部类:类中可在定义类
    • 传值:Java中方法都是传值(Pass By Value)的 ,传值(Pass By Value,Call by Value),传引用(Pass By Reference,Call by Reference)

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

    • 课本126页CashCard类中,不用返回值,方法名称前可以声明void

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

    问题:课本87页0.1+0.1+0.1结果不等于0.3

    解决:Java遵守IEEE 754浮点数运算规范,使用分数与指数来表示浮点数,而恰好0.1使用分数表示为无限循环,无法精确表示,从而造成运算上的误差;
    补充:为了得到更好的精确度,可以使用java.math.BigDecimal类。

    代码托管

    • 代码量截图:

    上周考试错题总结

    5.CH03 判断: Java中, 数字235.00的类型是float. (X)
    6.CH03 填空:~0b1011的十进制值是(-12)
    13.CH03 填空 :0x10%9 的结果是( 7 )
    18.CH03 判断:P64 Shift.java中第三个printf的输出结果是”2的2次方:4”。(X)
    19.CH03 填空:运行p69 Odd.class的命令为(java cc.openhome.Odd)。
    20.CH03 判断:byte a=3;byte b=4; 那么 a+b的类型也是byte.(X)

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

    本周的代码都是周末写的,之后应该形成日常,提前完成

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第三周 287/398 1/3 22/60

    参考资料

  • 相关阅读:
    sdnu 1513 字符串翻转
    hdu-1559 最大子矩阵(二维树状数组模板题)
    hdu-1556 树状数组
    1049.饭盒
    1092.校门外的树
    1012.区间合并
    1054.数独
    1175.开心的金明 01背包
    空格(Space)的ASCII码值是:32
    js为lable和div赋值
  • 原文地址:https://www.cnblogs.com/javasyn/p/6539959.html
Copyright © 2020-2023  润新知