二级Java考试辅导教程:3.2Java语言的面向对象特性[3]

文章作者 100test 发表时间 2007:03:10 18:44:22
来源 100Test.Com百考试题网


运行结果

  c:\> java Dispatch
  Inside Bs callme() method “

  方法重写时应遵循的原则:
  1)改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。
  2)改写后的方法不能比重写的方法产生更多的例外。

  4. 其它

  final 关键字
  final 关键字可以修饰类、类的成员变量和成员方法,但final 的作用不同。
  
  1) final 修饰成员变量:
  final修饰变量,则成为常量,例如
  final type variableName.
  修饰成员变量时,定义时同时给出初始值,而修饰局部变量时不做要求。

  2) final 修饰成员方法:
  final修饰方法,则该方法不能被子类重写
  final returnType methodName(paramList){
  …
  }

  3) final 类:
  final修饰类,则类不能被继承
  final class finalClassName{
  …
  }来源:www.examda.com

  实例成员和类成员
  用static 关键字可以声明类变量和类方法,其格式如下:
  static type classVar.
  static returnType classMethod({paramlist}) {
  …
  }
 
  如果在声明时不用static 关键字修饰,则声明为实例变量和实例方法。
  1) 实例变量和类变量
  每个对象的实例变量都分配内存,通过该对象来访问这些实例变量,不同的实例变量是不同的。
  类变量仅在生成第一个对象时分配内存,所有实例对象共享同一个类变量,每个实例对象对类变量的改变都会影响到其它的实例对象。类变量可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量。

  2) 实例方法和类方法
  实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作,实例方法由实例对象调用。
  但类方法不能访问实例变量,只能访问类变量。类方法可以由类名直接调用,也可由实例对象进行调用。类方法中不能使用this或super关键字。

  例3-7 是关于实例成员和类成员的例子。

  【例3-7】
  class Member {
    static int classVar.
    int instanceVar.
    static void setClassVar(int i) {
     classVar=i.
     // instanceVar=i. // 类方法不能访问实例变量
    }
    static int getClassVar()
     { return classVar. }
    void setInstanceVar(int i)
     { classVar=i. //实例方法不但可以访问类变量,也可以实例变量
     instanceVar=i. }
   int getInstanceVar( )
     { return instanceVar. }
    }
    public class MemberTest{
     public static void main(String args[]) {
         Member m1=new member().
         Member m2=new member().
         m1.setClassVar(1).
         m2.setClassVar(2).
         System.out.println("m1.classVar=" m1.getClassVar() "
                   m2.ClassVar=" m2.getClassVar()).
         m1.setInstanceVar(11).
         m2.setInstanceVar(22).
         System.out.println("m1.InstanceVar=" m1.getInstanceVar
              () " m2.InstanceVar=" m2.getInstanceVar()).
     }
    }

    运行结果

  c:\> java MemberTest
  m1.classVar=2 m2.classVar=2
  m1.InstanceVar=11 m2.InstanceVar=22



相关文章


二级Java考试辅导教程:4.3自定义例外类的使用[1]
二级Java考试辅导教程:4.2例外的处理
二级Java考试辅导教程:4.1什么是例外
二级Java考试辅导教程:3.2Java语言的面向对象特性[2]
二级Java考试辅导教程:3.2Java语言的面向对象特性[3]
二级Java考试辅导教程:3.1面向对象技术基础
二级Java考试辅导教程:2.5字符串的处理[2]
二级Java考试辅导教程:3.2Java语言的面向对象特性[1]
二级Java考试辅导教程:2.5字符串的处理[1]
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛