我们在前面的文章中详细的写了关于类,对象的基本语法,JAVA 也提供了一些高级类特性
JAVA 为8个基本类型提供了对应的包装类,通过这些包装类可以把8个基本类型的值包装成对象使用,JDK1
5提供了自动装箱和自动拆箱,允许把基本类型值直接赋给对应的包装类引用变量,也允许把包装类对象直接赋给对应的基本类型变量
JAVA 提供了final 关键字来修饰变量,方法和类,系统不允许为 final 变量重新赋值,子类不允许覆盖父类的final 方法,final 类不能派生子类
通过使用 final 关键字,允许 JAVA 实现不可变类,不可变类会让系统更加安全
abstract 和 interface 两个关键字分别用于定义抽象类和接口,抽象类和接口都是从多个子类中抽象出来的共同物征
但抽象类主要作为多类类的模板,而接口则定义了多类应该遵守的规范
enu m 关键字则用于创建枚举类,枚举类是一种不能自由创建对象的类,枚举类的对象在定义类时已经固定下来
枚举类特别适合定义像行星,季节这样的类,它们能创建的实例是有限且确定的
我们现在先看下基本数据类型的包装类 JAVA 是面向对象的编程语言,但它也包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有属性,方法可以被调用
JAVA 之所以提供这8种基本数据类型,主要是为了照顾程序员传统的习惯
这8种基本数据类型带来了一定的方便之处,例如可以进行简单,有效的常规数据处理
但在某些时候,基本数据类型就有一些制约,例如所有引用 类型的变量都继承了Object 类,都可当成 Object 类型变量使用
但基本数据类型的变量就不可以,如果有个方法需要 Object 类型的参数,但实际需要的值却是2,3等,这可能就比较难以处理
为了解决8个基本数据类型的变量不能当成 Objec