zoukankan      html  css  js  c++  java
  • 软件构造 第三章第一节 数据类型与类型检查

    第三章第一节 数据类型与类型检查

    1.数据类型

    -基本数据类型

    -对象数据类型

    Boxed primitives

    – Boolean, Integer, Short, Long, Character, Float, Double

    一般可以自动转换

     

    2.类型检查

    -静态类型检查:关于"值"的检查

        Syntax errors 语法错误

    Wrong names 类名/函数名错误

    Wrong number of arguments 参数数目错误

    Wrong argument types 参数类型错误

    Wrong return types 返回值类型错误,

    -动态类型检查:关于"类型"的检查

        Illegal argument values 非法的参数值

    Unrepresentable return values 非法的返回值

    Out-of-range indexes 越界

    Calling a method on a null object reference.

    3.可变性与不可变性

    改变一个变量:将该变量指向另一个值的存储空间

    改变一个变量的值:将该变量当前指向的值的存储空间中写入一个新的值。

     

    final类无法派生子类

    final变量无法改变值/引用

    final方法无法被子类重写

     

    不变对象:一旦被创建,始终指向同一个值/引用

    可变对象:拥有方法可以修改自己的值/引用

     

    -可变数据类型最小化的拷贝以提高效率;使用 不可变类型,对其频繁修改会产生大量的临时拷贝 (需要垃圾回收 )

    -可变数据类型,可获得更好的效能;

    -可变数据类型也适合在多个模块之间共享数据;

    -不可变数据类型更安全,更易于理解,也更方便改变

     

    -防御性拷贝

    如果一个方法或构造函数允许可变对象进/出,那么就要考虑一下使用者是否有可能改变它。如果是的话,那你必须对该对象进行保护性拷贝,使进入方法内部的对象是外部时的拷贝而不它本身(因为外部的对象有可能还会被改变)。

     

    4.快照图(Snapshot diagram)

    基本类型的值:原始值由裸露的常量表示。传入箭头引用变量或对象字段的值

    对象类型的值:一个对象值是一个由它的类型标记的圆。当我们想要显示更多的细节时,我们在它里面写字段名称,箭头指向他们的值。 

    不可变对象:用双线椭圆。

    不可变的引用:用双线箭头

    注意:

    引用时不可变的,但指向的值可以是可变的

    可变的引用,也可指向不可变的值

  • 相关阅读:
    20165223 week6测试错题总结
    20165223《Java程序设计》第七周Java学习总结
    20165207 第八周学习总结
    2017-2018-2 20165207实验二《Java面向对象程序设计》实验报告
    20165207 第七周学习总结
    20165207 第六周学习总结
    20165207 实验一 Java开发环境的熟悉
    20165207 第五周学习总结
    20165207 第四周学习总结
    20165207 第三周学习总结
  • 原文地址:https://www.cnblogs.com/masteryellow/p/9214210.html
Copyright © 2011-2022 走看看