Java学习笔记之访问控制权限

1.包:库单元

      包内包含一组类,它们在单一的名字空间之下被组织在了一起。包的结构就像文件目录一样,可以包内再包含子包。包就相当于C++中的名字空间,是为了协调开发,以防名字重复使用的。

        使用package关键字声明该类属于某个包,package语句必须是文件除注释外第一句程序代码。   

 package test;//包名为test,该类位于test包内
 package test.test2;//包test内还有一个子包test2。

包名对应着在工作空间里的文件结构,可以看到文件结构按照包的顺序生成了相应的目录。

        当需要使用别的包中的Java类,需要使用import关键字,导入我们希望使用的类。

        import packageName.className;

使用上面的形式导入一个需要使用的类,但是如果一个类库中有很多的类我们都需要使用到,那就可以使用如下形式:import packageName.*;这表示导入该包下的所有类。但这样需要有两点需要注意:

     1).如果有两个名称相同的类位于两个类库,而由于使用全部导入的方式,很可能在你未注意的情况下使用某个类,这时为了区分两个类,必须使用全限定名,即使用该类时要加上其包名,因为这可以唯一确定一个类:形如packageName.className;

      2).在移动应用上进行开发时,比如Android开发,如果并不是需要到很多类,但还是导入了全部类,因为移动设备的内存有限,这会影响到应用的运行。

2.访问权限限定

      Java文件组织形式:包—>类—>域和方法。

       访问权限可以按照这种组织形式来考虑,认为这三种结构各有自己的权限,只有满足一定条件下才可以使用。

      类的访问权限控制着别的包是否有使用自己的权利。可以用public和默认的缺省修饰。

       域和方法的访问权限控制着类是否可以使用自己的权利,可以用public、private、prtected以及默认的缺省修饰。

2.1public(接口访问权限)

    public类表示所有包、类都可以使用该类;

     public域和方法表示该类的对象可以使用该域和方法。

2.2缺省(包访问权限)

     缺省类表示只有该类所属的其他类可以使用该类;

     缺省域和方法表示只有该类所属包中的类可以通过该类的对象使用。

2.3protected(继承访问权限)

     只能用于修饰域和方法。

     protected域和方法除了和缺省具有相同访问控制权限外,还可以让其子类访问,所以称为继承访问权限。(哪怕该类位于其他包中)

2.4private(你无法访问)

     只能用于修饰域和方法。

     private域和方法表示只能在类定义内部访问,类的任何对象都无法访问。

3.总结

      包是一种组织代码结构的方式,必须放在除注释代码的第一行,可以用import关键字导入需要的类。

      访问权限从松到紧分比为:public,protected、包访问权限、private;

      和C++一点不同的是,Java有四种访问权限,而C++只有三种,尽管C++也有缺省的访问权限,不过却因类和结构体的不同而增加了不同的访问权限,类默认为paivate,结构体则默认为public。

      分析问题可以使用这个类在这里可用吗?类可用的话,那这个域或方法在这里可用吗?一步一步的缩小访问权限。

       


转载于:https://my.oschina.net/992257586/blog/344083

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值