调用方法语句怎么写( 二 )


由于抽象类是它的所有子类的公共属性的集合 , 所以使用抽象类的一个优点就是可以充分利用这些公共属性来提高开发和维护程序的效率 。值得一提的是 , 面向对象技术是要用更接近于人类思维方式的方法来处理实际问题 , 抽象类的设立就是这种思想的具体体现之一 , 它是模仿人类的思维模式的产物 。
2 , 最终类: 如果一个类被final修饰符所修饰和限定 , 说明这个类不可能有子类 。被定义为final的类通常是一些有固定作用、用来完成某种标准功能的类 。
如Java系统定义好的用来实现网络功能的InterAddress、Socket等类都是final类 。abstract和final修饰符不能同时修饰一个类 , 因为abstract类自身没有具体对象 , 需要派生出子类后在创建子类的对象;而final类不可能有子类 。
这样放在一起修饰就没有意义了 。3 , 有些类的修饰符也可以用来修饰类中的域或方法: (1) 域:是类和对象的静态属性 , 定义域的操作就是说明变量或创建对象的操作 。
<1> 静态域: 用static修饰符修饰的域是仅属于类的静态域 。静态域是类中每个对象共享的域 。
他们是类的域 , 不属于任何一个类的具体对象 。是一个公共的存储单元 , 任何一个类的对象访问它时 , 取到的都是相同的数值 。
<2> 静态初始化器: 静态初始化器是由关键字static引导的一对大括号括起的语句组 。作用是:在加载时 , 初始化类的静态域 。
与构造函数相同 , 他们都是用来完成初始化的工作 , 但是静态初始化器与构造函数有三点不同: ①构造函数是对每个新创建的对象初始化 , 而静态初始化器是对类自身进行初始化 。②构造函数是在用new运算符产生新对象时由系统自动执行 , 而静态初始化器则是在它所属的类加载到内存时由系统调用执行 。
③不同于构造函数 , 静态初始化器不是方法 , 没有方法名、返回值和参数列表 。<3> 最终域: 用final修饰的域 , 实际上就是Java中的常量 。
用final修饰符说明常量时 , 需要注意以下几点: ①需要说明常量的数据类型 。②需要同时指出常量的具体取值 。
③因为所有类对象的常量成员 , 其数值都固定一致 , 为了节省空间 , 常量通常声明为static 。<4> 易失域: 如果一个域被volatile修饰符所修饰 , 说明这个域可能同时被几个线程所控制和修改 , 即这个域不仅仅被当前程序所掌握 , 在运行过程中可能在其他未知的程序操作影响和改变该域的取值 。
在使用当中应该特别注意 。通常 , volatile用来修饰接受外部输入的域 。
如表示当前时间的变量将系统的后台线程随时修改 , 以保证程序中取到的总是最新的当前系统时间 , 所以可以把它定义为易失域 。(2)方法:是类的动态属性 , 标志了类所具有的功能和操作 。
小括号是方法的标志 。<1> 抽象方法: 修饰符abstract修饰的抽象方法是一种仅有方法头 , 而没有具体的方法体和操作实现的方法 。
使用抽象方法的目的是使所有的子类 , 对外都呈现一个相同名字的方法 , 是一个统一的接口 。所有的抽象方法 , 都必须存在于抽象类之中 。
<2> 静态方法: 用static修饰符修饰的方法 , 是属于整个类的类方法 , 不用的是对象或实例的方法 。调用这种方法时 , 应该使用类名作前缀;这种方法在内存中的代码段将随着类的定义而分配和装载 , 不被任何一个对象专有;只能处理属于整个类的成员变量 。