查看“使用Java的访问控制符”的源代码
←
使用Java的访问控制符
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==使用访问控制符== 在定义类中成员变量和成员方法时,都会使用一些修饰符来做出某些限制。修饰符分为访问控制修饰符和非访问控制修饰符。访问控制修饰符是来限定类、属性或方法在程序其他地方访问和调用权限的,包括public、private、protected等。Java的非访问控制修饰符包括:static、final、abstract、native、volatile、synchronized等。 ===public修饰符=== public修饰符表示公有,可以修饰类、属性和方法。如果使用了public访问控制符,则它可以被包内其他类、对象以及包外的类和对象方法使用。 '''【经验】''' 每个 Java 程序的主类都必须是public 类。若在一个Java源文件中定义了多个类,只能有一个类是公有类。一般的构造方法都会使用public来修饰。 ===private 修饰符=== private修饰符只能修饰成员变量和成员方法。若使用private声明的变量和方法则只能'''由它所在类本身使用''',其他的类和对象无权使用该变量和方法。封装中就是利用了这一点特性让属性私有化。如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。 ===protected修饰符=== protected修饰符表示受保护,只能用来修饰成员变量和成员方法,不能修饰类。受保护的变量和方法的访问权限被限制在'''类本身、包内的所有类和定义它的类派生出的子类(可以在同一个包中,也可以在不同包)范围内'''。(子类在后面任务中详细介绍)。 ===默认(friendly)修饰符=== 如果一个类、方法或变量名前没有使用任何访问控制符,就称这个成员所拥有的是默认的访问控制符。默认的访问控制成员'''可以被这个包中的其它类访问''',及称之为包访问特性。friendly并不是Java的关键字,只是对默认修饰符的一种字符形式上的定义,一般不会出现在程序中。 *头脑风暴:什么修饰符修饰的变量只能被该类本身访问? *头脑风暴:什么修饰符修饰的变量能被同一个包内的其他类所访问? 各访问修饰符的作用效果如表3-1所示(包在下面说明) *[[文件:java3-3.png]] '''【实例3-6】'''Book类有如下4种方法,思考:它们都分别能被哪些类所访问?。 *[[文件:java3-14.png]] <nowiki>package entity; public class Book { private void priMethod(){//私有方法,只能本类使用 System.out.println("only myclass can visit me !"); } protected void proMethod(){//受保护方法,能被类本身、包内的所有类和子类所访问 System.out.println("类本身、包内的所有类和子类 can visit me !"); } public void pubMethod(){//公有方法,可以被包内其他类、对象以及包外的类和对象方法使用。 System.out.println("Everyone can visit me !"); } void friMethod(){//默认(友好)方法,可以被这个包中的其它类访问 System.out.println("包中的其它类 can visit me !"); } }</nowiki> 注解: #private void priMethod(),访问权限为私有权限,只能在VisitP中使用; #protected void proMethod(),访问权限为受保护,能被类本身和定义它的类的子类访问; #public void pubMethod(),访问权限为公有,可以被任何类使用; #void friMethod(),访问权限为默认(友好),可以被与定义它的类在同一包中的所有类使用。
返回至
使用Java的访问控制符
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息