Java 修饰符

一、final

final数据

  必须在域的定义处或每个构造器中用表达式对final进行赋值,java允许函数参数声明为final,这意味着在方法中无法更改此参数。final的基本类型表示值不可变,引用类型表示无法将其指向另一个对象,但对象本身内容可以修改。

final方法

  final方法明确禁止覆盖,使得继承的类中行为保持不变。类中所有的private方法都隐式地指定是final的,如果父类中有一个private或private final的方法f(),子类中可以有与该方法同名的函数,因为对于子类来说,父类中的f()行为不可见,因此编译器不会报错。覆盖只针对基类的public 和 protected的字段或方法。

final类  

  final类禁止继承

 

二、static

 

三、abstract

 

四、Java访问控制权限  

  Java提供了访问权限修饰词,可以用来确定库中的哪些类对该库的使用者是可用的。在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词。访问权限控制的作用如下:

a. 为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作时必要的,但是它并不属于客户端程序员所需接口的一部分。

b. 为了让类库设计者可用更改类的内部工作方式,而不必担心会对用户造成重大影响。

(1)public         

  接口访问权限一般不会用public暴露一个域,除非这个域已经被声明为final。(跨包访问)

(2)protected   

  protected修饰符提供一个从包外部访问包的方法,即包中类被包外类继承重用

(3)包访问权限   

  默认访问权限,没有任何关键字。包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用,包访问权限为包的存在提供了意义

(4)private        

  private实现了数据隐藏。任何可以肯定只是该类的一个“助手”方法的方法,都可以将它指定为private,以确保不会再包内的其他地方误用到它,于是也就防止你去改变或删除这个方法。

package

  Java中的包如同文件夹一样,包也采用了树形目录的存储方式。Java包主要是为了防止类文件命名冲突以及方便进行代码组织和管理,把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

类的访问权限

  Java中类的修饰词仅有public和包访问权两种,没有private和protected。有一个特例是“内部类”,其可以是private或protected的。如果你不希望其他任何人对该类拥有访问权,你可以把所有的构造器都指定为private,但是可以在该类的 static成员内部(如静态方法生成类实例)进行创建。

  如果一个类的访问权限为“包访问权”,并且其内部有一个static的成员为public的话,则其他包中的类仍旧可以访问该static成员,哪怕它们并不能生成该类的对象。

  对于一个java文件,最多只能有一个public类,若没有Public类则表明其仅供包内使用,对外界不可见。每个java文件还可以有任意数量的非public类,所在包外无法访问这些类,因为其主要用来为public类提供支持。

posted @ 2017-06-14 09:47  安小  阅读(161)  评论(0编辑  收藏  举报