jav修饰符.docVIP

  • 16
  • 0
  • 约3.2万字
  • 约 21页
  • 2017-06-13 发布于河南
  • 举报
jav修饰符

Java修饰符的使用 武汉理工大学计算机科学与技术学院软件工程 1004班 陈文伟 理论部分 java中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性。类的修饰符分为访问控制符和非访问控制符两大类。修饰符之间的先后排列次序对类的性质没有任何影响。 一,非访问修饰符。 abstract修饰符 Abstract修饰符表示所修饰的类没有完全实现,还不能实例化。如果在类的方法声明中使用abstract修饰符,表明该方法是一个抽象方法,它需要在子类实现。如果一个类包含抽象函数,则这个类也是抽象类,必须使用abstract修饰符,并且不能实例化。 在下面的情况下,类必须是抽象类: 1.类中包含一个明确声明的抽象方法; 2.类的任何一个父类包含一个没有实现的抽象方法; 3.类的直接父接口声明或者继承了一个抽象方法,并且该类没有声明或者实现该抽象方法。 如下例所示: abstract class a1 { public int v1; abstract void test(); } abstract class a2 extends a1 { public int v2; } class Sample extends v2 { void test() { } } 因为包含一个抽象方法test,类v1必须被声明为抽象类。它的子类v2继承了抽象方法test,但没有实现它,所以它 也必须声明为抽象类。然而,v2的子类Sample因为实现了test,所以它不必声明为抽象的。 注意: 如果试图创建一个抽象类的实例就会产生编译错误; 如果一个类是非抽象类却包含一个抽象方法,就会产生编译错误; 构造函数和静态函数以及Final修饰的函数不能使用abstract修饰符;接口缺省为abstract Static修饰符 通常,在创建类的实例时,每个实例都会创建自己实例变量。但是在变量的声明中可以使用Static修饰符,它表明该成员变量属于类本身,独立于类产生的任何对象。这种成员变量称为静态变量(静态属性)。方法的声明中也可以使用static修饰符,表明该方法从属于类本身。 在静态成员函数中只能直接调用其它的静态成员函数或引用静态属性,否则会造成编译错误。静态成员函数中也不能使用this或者super,因为它们是和类的对象相关联的。 静态属性和静态方法不需要创建实例就可以使用。 典型的例子是java.lang包中的System类中的方法和变量。我们常用 System.out.println(“message”); 输出信息,并没有创建System的实例,是因为println方法声明为System类的静态方法,它不需创建实例就可以使用。 下面的例子会帮助你更深刻的理解Static修饰符。注意各个代码块的加载次序。 Class Sample { static int s1=3; static int s2; static void display() { System.out.println(s1=+s1); System.out.println(s2=+s2); } static { System.out.println(static block); S2=s1+1; } public static void main(Stringargs[]) { Sample.display(); } } 一旦这个类被调用,所有的静态变量都被初始化,s1被赋为3,然后运行static块,这将打印出一段消息,并且把s2赋为s1+1,即4。然后解释器调用main成员函数,它调用了成员函数display,该函数输出s1和s2的信息。运行结果如下: C:\java Sample static block s1=3 s2=4 通过上面的例子还可以看出,一

文档评论(0)

1亿VIP精品文档

相关文档