软件构造笔记4

数据类型与类型检验
软件构造的理论基础——ADT
软件构造的技术基础——OOP
变量:用特定数据类型定义,可存储满足类型约束的值
基本数据类型
对象数据类型
根据Java约定,基本数据类型为小写,而对象类型以大写字母开头
重载:同样的操作名可用于不同的数据类型
Java是一种静态类型的语言
在像Python这样的动态类型语言中,这种检查会被推迟到运行时(当程序运行时)。
静态检查:在程序运行之前就会自动发现这个错误。
动态检查:执行代码时自动发现错误
不检查:语言根本不能帮助您找到错误。你必须自己注意,否则就会得到错误的答案。
静态检查
语法错误,比如额外的标点符号或虚假的词。即使是像Python这样的动态类型语言也会进行这种静态检查。
类名/函数名错误
参数数目错误
参数类型错误
返回值类型错误
动态检查
非法的参数值
非法的返回值
越界
空指针
可变性和不变性
改变一个变量:将该变量指向另一个值的存储空间
改变一个变量的值:将该变量当前指向的值的存储空间中写入一个新的值
不变性:重要设计原则
不变数据类型:一旦被创建,其值不能改变
如果是引用类型(指针),也可以是不变的:一旦确定其指向的对象,不能再被改变
如果编译器无法确定final变量不会改变,就提示错误,这也是静态
类型检查的一部分
final类无法派生子类
final变量无法改变值/引用
final方法无法被子类重写
不变对象:一旦被创建,始终指向同一个值/引用
可变对象:拥有方法可以修改自己的值/引用
使用不可变类型,对其频繁修改会产生大量的临时拷贝
快照图
基本类型的值
原始值由裸常数表示。传入的箭头是对变量或对象字段中的值的引用
对象类型的值
对象值是按其类型标记的圆。-当我们要显示更多详细信息时,我们会在其中写入字段名,箭头指向它们的值。有关更多详细信息,这些字段可以包括其已声明的类型
不可变对象:用双线椭圆
不可变的引用:用双线箭头
引用是不可变的,但指向的值却可以是可变的
可变的引用,也可指向不可变的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值