java基础-访问权限控制

访问权限控制

关于java中的访问权限控制,需要先理解以下几个概念:

(1)编译单元:当我们编写出一个java源代码文件时,这个文件就被称为编译单元(或转译单元),这个编译单元的后缀名为.java。在编译单元内则可以有一个public类和多个非public的类,但是如果有public类的话,编译单元的名字必须和public类的名字一致,否则编译时会报错。如果此编译单元内没有public类的话,编译单元的名字就无所谓了。

(2)类文件:当编译一个.java文件(编译单元)时,在.java文件中的每一个类都会有一个输出文件,该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀.class。每一个.java文件编译后生成的这些.class文件集合称为类文件。所以,每一个.java文件编译后都会得到一个类文件,这个类文件中包含了大量的.class文件。

(3)类库:类库就是一组类文件的集合。每一个类文件中都包含了一个public类以及任意数量的非public类。

思考一个问题:如果类名称冲突了怎么办?比如我自己写了一个A类需要加载到一台机器上,但是这台机器上已经有别人写好的另外一个A类,这时该如何处理呢?这时就引出了包的概念。

包:关键字为package,包的出现完美的解决了类名冲突的问题,把具有相同类名,但有可能具有不同功能的类放置于不同的包里,这样当我们需要使用某类时,通过指定不同的包,从而区别出应该正确调用的类。

(4)包:类库单元,包中管理组织了类库中一部分类文件,不同的包中管理着不同的类文件,从而将类库完美的区分开来。如果在java编译单元中使用package语句,那么它必须位于编译单元的除注释外的首行。例如在文件起始处写:package access;那么它表示你在声明该编译单元是名为access的类库的一部分。或者说你正在声明的该编译单元中的public类名称是位于access名称的保护伞下,任何想要使用该名称的人都必须在使用前给出选择,指定全名或与access结合使用import导入。

java中的访问权限:java中为什么需要访问权限控制呢?思考以下2个场景:

场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所有的类都访问到,那么该如何处理?

场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1、fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理?

此时,访问权限控制便可以起到作用了。在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。

 

一.修饰类

修饰类的话,只能有2个关键字来修饰

默认访问权限(包访问权限):用来修饰类的话,表示该类只对自己和同一个包中的其他类可见。常见的就是源文件中的非public类。

public&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值