java的访问权限控制

访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关

访问控制符的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、private

1.包:库单元 package

包内包含有一组类,它们在单一的名字空间之下被组织在了一起。

import关键字:如果要导入单一的类 import java.util.ArrayList

想要导入其下所有的类 import java.util.*

包机制:为了解决名字空间、名字冲突

当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.Java

而在编译单元内可以有一个(只能有一个)public类,该类的名称必须与文件的名称相同。如果在该编译单元

还有别的类,在包之外是无法看到的,因为它们不是public类,它们为public类提供支持。

1.代码组织

package语句:必须是文件中除注释以外的第一句程序代码

package和import关键字将单一的全局名字空间分隔开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。

2.创建独一无二的包名

按照惯例:package名称的第一部分是类的创建者的反顺序的internet域名。

Java解释器运行过程:首先,找出环境变量CLASSPATH。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到的路径名称会与CLASSPATH的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。

冲突:将两个含有相同名称的类库以“*”形式同时导入,将会出现冲突。为了解决冲突,必须明确指出调用类的全路径。

3.定制工具类

可以创建自己的工具库来减少或消除重复的代码。

4.用import改变行为

在不同的包中编写相同名称但行为不同的类,通过导入不同的类,可以改变类的行为。

5.对使用包的忠告

无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。

2.Java访问权限修饰词

1.包访问权限

默认访问权限没有任何关键字,通常是指包访问权限。

包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。

取得一个类中某个成员的访问权的唯一途径:

1.使该成员成为public

2.通过不加访问控制权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

3.继承访问public和protected成员,只有继承的两个类都处于同一个包内时,它才可以访问包访问权限的成员。

4.提供访问器和变异器(get和set方法)

2.public:接口访问权限

使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。

默认包:处于相同的目录并且没有给自己设定任何包名称。Java将这样的文件自动看作是隶属于

该目录的默认包中,于是它们为该目录中所有其他的文件都提供了包访问权限。

3.private:你无法访问

private:除了包含该成员的类之外,其他任何类都无法访问这个成员。

4.protected:继承访问权限

子类继承父类,子类可以访问父类protected成员

5.作用域public,private,protected,以及不写时的区别:

当前类  同一package  不同package子孙类  其他package

public          √            √                             √                               √  

protected    √            √                             √                               ×

friendly       √             √                             ×                               ×

private        √             ×                             ×                               ×

3.类的访问权限

1.每个编译单元都只能有一个public类

2.public类的名称必须完全与含有该编译单元的文件名相匹配

3.编译单元内完全不带public类也是可能的,这种情况下,可以随意对文件命名。

注:对于类的访问权限:仅有两个:包访问权限或public

时间: 2024-08-03 22:17:39

java的访问权限控制的相关文章

理解Java访问权限控制_java

今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理? 场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1.fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理? 此时,访问权限控制便可以起到作用了. 在Java中,提

java类访问权限与成员访问权限解析_java

在写代码的时候有个问题:包内定义了一个接口类,另外一个包要实现它,这里采用接口隔离与依赖倒置原则,将两个包的依赖关系倒置过来.但是,这里就遇到了一个问题,实现类采用工厂模式来实例化,所以实现类就不想暴露给包外,但是实现类还要实现public接口.所以这里有产生了一个疑问,如果类是default类型,成员函数是public类型,那么访问限制是怎样的呢? 实现验证 1. 先在一个包中定义一个接口类: package mytest public interface ClassAccessTest {

分析Java访问权限控制源代码

 代码如下 复制代码 import java.io.File; import java.io.FileOutputStream; //访问权限的控制 public class PolicyExample {  public static void main(String[] args){    try{      //写一个文件到c:/hello.txt      byte[] info = "Hello,这是测试信息".getBytes(); //定义写到文件的信息      Fil

第6章 访问权限控制

引言:访问权限(或隐藏具体实现)与"最初的实现并不恰当"有关. 先了解两个概念: 封装(encapsulation),即隐藏对象的属性和实现细节,仅对外公开接口. 重构(Refactoring),就是通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 程序员分为两类,类库的消费者和类库的开发者,类库的消费者希望类库出现新版本的时候,他们并不需要改写他们的代码,而类库的开发者则必须有权限对类库进行修改和改进,而不影响客户端程序员. 这就要求

ASP.NET中Webservice安全 实现访问权限控制_实用技巧

一. 概述: Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务.它逻辑性的为 其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.由于它通过internet进行调用,必然存在网络用户都可以调用的安全问题.如何实现webservice的访问 权限限制,是使用webservice用户

【转】Apache Solr 访问权限控制

本文转自:http://www.cnblogs.com/ibook360/archive/2011/11/07/2239247.html 在Tomcat6增加 Solr的访问权限方法如下: 编辑tomcat6/Catalina/localhost/solr.xml <Context docBase="/var/solr/solr.war" debug="0" privileged="true" allowLinking="true

访问权限控制-menustrip怎样对子菜单进行权限控制,

问题描述 menustrip怎样对子菜单进行权限控制, menustrip怎样对子菜单进行权限控制,如图对基础资料设定,条码列印进行更细的权限设置 解决方案 无非就是递归遍历menustrip,得到菜单的名字或者tag,根据用户名,查询数据库,有没有对应的权限,如果没有,就禁用或者删除菜单. 解决方案二: C#Winform主窗体Load事件中对菜单权限进行控制jquery 权限控制菜单struts下通过过滤器进行权限控制

redis密码设置、访问权限控制等安全设置_数据库其它

redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护. 1.比较安全的办法是采用绑定IP的方式来进行控制. 复制代码 代码如下: bind 127.0.0.1 表示仅仅允许通过127.0.0.1这个ip地址进行访问.那么其实只有自己才能访问自己了,其他机器都无法访问他. 这段命令要去redis.conf里修改. 这里请注意 我们常用的启动方式src/redis-server 改为src/redis-server redis.conf 因为它需要加载配置文件. 这个方法有一点不

redis访问权限控制,密码设置

redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护. 1.比较安全的办法是采用绑定IP的方式来进行控制.  代码如下 复制代码 bind 127.0.0.1 表示仅仅允许通过127.0.0.1这个ip地址进行访问.那么其实只有自己才能访问自己了,其他机器都无法访问他. 这段命令要去redis.conf里修改. 这里请注意 我们常用的启动方式src/redis-server 改为  代码如下 复制代码 src/redis-server redis.conf 因为它需要加载配置