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


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

    教材学习内容总结

    第四章

    类与对象

    • 定义:

      • 对象(Object):存在的具体实体,具有明确的状态和行为。
      • 类(Class):具有相同属性和行为的一组对象的集合,用于组合各个对象所共有操作和属性的一种机制。
      • 从类看对象:类定义可视为具有类似性质与共同行为的对象的模板,用来产生对象。
      • 从对象看类:类的产生,是实例,推广到大量相似实例的抽象化过程。
      • 二者关系:类是对象的设计图,对象是类的实例,生成对象要先定义类。
    • 特点

      • 在java中,需要的功能,就可以去找一个对象,这个对象就包含这个功能,通过new建立对象,通过“文件名+.+功能”调用一些该类的功能。
      • 在编译过程中,可以定义类。一个原始码中可以有多个类定义,但只能有一个是公开类,且文档中的主文档名必须与公开类名称相同。

    数组对象

    • 概念:数组在java语言中就是对象。

    • 特点:

      • 在定义数组时候不论知不知道数组长度都可以进行。如果知道具体数可以采用p95,不知道具体的数可以采用p98。
      • 因为数组是对象,需要注意性质,对于数组本身来说,不能超过其索引范围,否则会报错。
      • 对于数组复制的相关有两种方法,采用System.arraycopy()和Arrays.copyOf()
      • 上一条就是简单的浅层复制,而对于深层复制,则需要自己操作,需要自己自行完成复制元素。

    基本类型打包器

    • 概念:在java中把一些基本类型变量打包成对象之中,这样就 可以像操作对象操作原本的“基本类型”的变量

    • 特点:

      • 重点要在于理解把固有的“面向过程”转换成“面向对象”,这样对象可以提供许多功能,简化我们的编程。
      • 在对于自动装箱、自动拆箱,可以简便的建立对象。
      • 注意类似于Integer类型的有默认值,在编译的时候需要注意。

    字符串对象

    • 概念:在java中,字符串本质是打包字符数组的对象,是java.lang.String.

    • 特点:

      • 通过一些如Byte.parseByte(number)等方法将字符串转换为整数、浮点数等基本类型。
      • 在字符串池,以" "包括的字符串内容相同,无论在源代码中出现几次,JVM都只建立一个String实例,都在字符串池中维护。
      • 利用+连接字符串,会产生新的String实例。
      • 使用javac指令没有指定-encoding选项时候,会使用操作系统默认编码。

    第五章

    封装

    • 概念:封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,仅对外提供公共访问方式,隐藏对象细节,将对象当作黑箱进行操作。

    • 特点:

      • 自己可以定义类,创建属性,方法,如果其它需要用到相应的功能,只需要拿着“类设计图” 设计一个对象实例,,再根据公开提供的提供的方法,就可以使用相应的功能。
      • 封装对象类似于c语言中的模块化编程,在java中做到了一类一文件,而且在java中更灵活方便。
      • 可以像书中提到的,使用private对关键信息进行隐藏,设置访问数据的程度,防止用户恶意使用。

    语法细节

    • Public:

      • 用在类前,表示的这个类是公开类,这样就可以在其他包的类中使用。
      • 用在函数前,这表示其它包中的类可以直接调用这个构造函数。
      • 用在成员变量前,表示这个成员变量是公开的,这样别人可以直接调取你类中的变量。
    • 方法重载:

      • 根据自己的理解重载就好比是用相同的词表达多种不同的含义。
      • 只要参数类型和个数不同,就可以定义多个构造函数,可用一致的名称来调用类似功能的方法。
    • final:

      • 用在类前,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。
      • 用在方法前,使用final方法的原因有两个:第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。
      • 用在成员变量前,修饰变量是final用得最多的地方
      • 注意:
        • 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类。
        • 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。
    • 变长参数:在调用方法时,如果自变量的个数事先无法决定,则可以在声明参数列时在关键字后加上...,实际上不定长度自变量是编译程序蜜糖。

    • 内部类:可以在内中再定义类,内部类亦可以使用public、protected、private声明。一个被声明为static的内部类,通常是将外部类当作名称空间。

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

    • 问题一:如何得到精确的计算结果?

     - 解惑:可以使用java.math.BigDecimal类,解决问题!

    • 问题二:对于本章出现的增强式for语法,在开始看书的时候不太了解,后来用eclipse编译了几遍后了解了一些,后来发现好像记住增强式for语法似乎容易一些。

    • 问题三:如何判断建立了几个Iteger实例,还是很分不清楚,后来采用书上的方法,对于不懂得程序,采用画图法,这样很清楚就判断出结果。

    • 问题四:在细节语法细节中,对于一些public、private、this与super等,在前四章的代码学习中都有用过,但是了解的却不是很详细,学完第五章后就很系统的了解了。但是对于final存在着知识欠缺,通过看java学习视频也学习到了很多 在使用final修饰类的时候,要注意谨慎选择,除非这个类真的在以后不会用来继承或者出于安全的考虑,尽量不要将类设计为final类于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

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

    其中在于操作数组中对于二维数组的理解还欠缺一些,后来将其理解成一维数组每个元素在索引一个数组就方便了理解。 

    同样在第五章有个知识点,在创建对象之后、调用函数之前,若有想执行的流程,可以使用{}定义。剩下的所有代码也全部敲了一遍,有了全新的认识,已经全部传到了开源中国,代码托管里了。

    可能因为管家把我之前装的Git当垃圾清理掉了。所以我重新下载了一个Git文件来提交代码。git add .和git commit都可以成功,但是到git push 阶段 总是出现这种情况~~实在是解决不了。老师能不能帮忙解释一下哪里出现了问题T-T

    而且之前提交代码的时候还出现全是delate 的情况~~~~

    代码托管https://git.oschina.net/bestiisjava2017/hgy20155336

    老师,因为那个git push环节出现问题。。。。所以截不了图,等我解决了问题,再补上截图T-T

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

    其实感觉这周的学习量挺大的,要自学两个章节,而且都是比较陌生抽象难懂的知识,接受起来比较慢。

    从最开始的java平台概论,JDK到IDE的介绍,基础语法的运用到现在的类与对象,封装。前三章的知识其实都不是特别难。但到第四章就感觉逐渐接触java程序设计的核心知识了。在经过不断的重复后,我对这两章的知识点已经掌握了,把书上所有的代码都敲了一遍,世上无难事,是怕有心人。任何事情,万事开头难,但只要坚持下来了,一定会受益匪浅!!比如托管代码,最开始觉得很难,学会了后就会很轻松。

    学习第四章第五章,最重要的是要有能将抽象问题具体化的能力,将其建立成一个模型,这样才能方便理解。

    学习进度条

    | | 代码行数(新增/累积)| 博客量(新增/累积)|学习时间(新增/累积)|重要成长|

    | -------- | :----------------:|:----------------:|:---------------: |:-----:|

    | 目标 | 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 | |

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

  • 相关阅读:
    XML及XML的解析
    单例设计模式(Singleton)的优化
    Java反射初识
    TCP协议的简单应用一
    Java中实现线程同步的三种方法
    Java集合框架Map接口
    JDK1.8新特性之Stream类初识
    Java JDK1.8新特性之四大函数式接口
    tomcat 启动报 找不到 StrutsPrepareAndExecuteFilter。。
    easyjweb ejs 2014.2.25
  • 原文地址:https://www.cnblogs.com/hxl681207/p/6539379.html
Copyright © 2020-2023  润新知