Java中的各类修饰符

1.类修饰符,分为两类,可访问控制符:public;非访问控制符:abstract,final。

  1. 公共类修饰符public,每个Java程序都必须有一个public类作为主类。
  2. 抽象类修饰符abstract,抽象类不能new出对象。但是抽象类中方法不一定都是抽象的。
  3. 最终类修饰符final,被定义的类不能被继承,完成特殊或固定功能的类被定义成该类。
  4. 类缺省访问控制符,一个类没有访问控制符,就具有缺省的访问控制符。这个类只能被同一个包的类访问或引用。

2.属性修饰符也分为:可访问控制符和非访问控制符

  1. 可访问控制符有4种:公共访问控制符:public;私有访问控制符:private;保护访问控制符:protected;私有保护访问控制符:private protected
  2. 非访问控制符也有4种:静态域修饰符:static;最终域修饰符:final;易失(共享)域修饰符:volatile;暂时域修饰符:transient
  • public:用public修饰的域称为公共域。如果公共域属于一个公共类,则可以被所有其他类所引用。这样会降低运行的安全性和数据的封装性,很少使用。
  • private:用private修饰的域只能被该类自身所访问,而不能被任何其他类(包括子类)所引用。
  • protected:用protected修饰的域能被三种类所引用:①该类自身;②与它在同一个包中的其它类;③在其它包中的该类的子类。
  • private protected:用private protected修饰的域能被类自身和该类的子类两种类访问和引用。(在eclipse中测试,此修饰符似乎有问题!)
  • static:用static修饰的域属于类的变量,不属于任何一个对象。静态成员变量存储在类内存区域的公共存储单元,而不是某一个对象的内存区域。
  • final:final用来定义符号常量的。一个类的域被声明成final,它的值在程序的整个执行阶段都不会变。
  • volatile:volatile被用来说明成员变量可以被几个线程控制和修改。也就是说在程序执行过程中,这个成员变量有可能被其他的程序影响或改变。通常volatile用来修饰接受外部输入的域。
  • transient:transient用来声明一个暂时性变量。表明此变量不属于对象的永久性状态,对象序列化时不保存此变量的值。

3.方法修饰符也分为可访问控制符和非访问控制符

  1. 可访问控制符有4种:公共访问控制符:public;私有访问控制符:private;保护访问控制符:protected;私有保护访问控制符:private protected
  2. 非访问控制符有5种:抽象方法控制符:abstract;静态方法控制符:static;最终方法控制符:final;本地方法控制符:native;同步方法控制符:synchronized

可访问控制符与属性相似,不再赘述。下面介绍非访问控制符。

  • abstract:用abstract修饰的方法称为抽象方法。抽象方法只有方法头,没有方法体,也就是没有具体实现。
  • static:用static修饰的方法称为静态方法。静态方法是属于整个类的方法,不属于某一个对象,可用类名直接调用。
  • final:用final修饰的方法称为最终方法。最终方法是功能和内部语句不能被更改的方法,即不能被覆盖,以防止子类对父类方法的错误定义。所有被private修饰的方法以及所有final类中的方法都是最终方法。
  • native:用native修饰的方法称为本地方法。为了提高程序的运行速度,需要用其他的高级语言实现方法的方法体,可以用native修饰,与abstract不同,其没有方法体。
  • synchronized:该修饰主要用于多线程共存的程序中的协调和同步。被修饰的方法不能被多个线程同时执行。

转帖自:kuaiwei2009

发表评论

电子邮件地址不会被公开。