慕课链接 https://www.icourse163.org/learn/NJU-1002246017?tid=1460382443#/learn/content
今天学习了防御式编程,初步了解了静态变量和静态方法及简单类的初始化。
防御式编程其实就是一种提高容错率的编程方法。当用户输入各种可能非法的输入时,
为了保护我们的程序免遭非法输入数据的破坏,我们就要加上一段“防御代码”,首先检查
所有源于外部的数据,不仅仅只有键盘输入,还包括来自文件、网络、其他外部接口的数据。
然后检查子程序所有输入参数的值,最后来决定如何处理错误的输入数据。这里引入了一种
叫“断言”的代码,是在开发期间使用的,让程序在运行时自检的代码。若断言为真,代表程序
运行正常;若断言为假,则程序中存在错误。
静态方法的关键字是“static”,是只属于类的方法,和任何对象无关,只能通过类名来调用。
静态方法不能访问非静态变量,也不能访问非静态方法,例如我们无法在main函数中打印
类的成员变量。静态变量的初始化是在类被装载的时候,类的装载是由JVM(java虚拟机)决定的;
JVM能保证创建类的对象之前会初始化好对象,静态变量在静态方法调用前被初始化好。另外要注意
的是Static final定义的变量是常量,一旦初始化便无法更改,类似于C语言中的const。
对象初始化的步骤:首选初始化静态变量,静态初始化代码块,然后是变量和代码块的初始化,最后
在轮到构造方法。