美文网首页
Java中的包和public、protected、private

Java中的包和public、protected、private

作者: 小虎哥的技术博客 | 来源:发表于2022-07-23 13:28 被阅读0次

    你所看到的,只是别人所想让你看到的......

    Java是安全的语言,一方面是因为虚拟机帮开发人员管理了内存分配回收,另一方面是因为有访问权限修饰符。

    0、Java的包

    为了防止包重复,包命名规范是域名反过来的。

    如:

    • 百度的域名是baidu.com,包名是com.baidu
    • 腾讯的是tecent.com,包名是com.tencent
    • 我们经常看到的包名org.springframework.***,它的域名其实是springframework.orgorg一般是组织或机构的域名后缀。

    baidu.com是一级域名,www.baidu.comxxx.baidu.com等都是二级域名,理论上二级域名可以无限多。


    如下:是两个包com.baidu.studycom.tencent.study。分别有Teacher老师类和Student学生类。

    01.png

    一个类的代码的第一行是当前类所在的包,如Teacher类代码的第一行package com.baidu.study;,说明Teachercom.baidu.study包(目录)下。

    package com.baidu.study;
    
    public class Teacher {
    
    }
    

    一个类需要用到其它包的类可以通过import关键字引入。如Student类需要用到Teacher类可以通过import com.baidu.study.Teacher;引入。

    package com.tencent.study;
    
    import com.baidu.study.Teacher;
    
    public class Student {
        public static void main(String[] args) {
            Teacher teacher = new Teacher();
        }
    }
    

    可以用通配符*引入com.baidu.study包下所有的类,如:import com.baidu.study.*

    2、访问权限修饰符

    访问权限修饰符包括:public、protected、private和默认修饰符(friendly/包访问权限)。 可以修饰在字段方法前面。

    public:公开权限,所有类都可以访问。

    protected:继承访问权限,只有当前类子类可以访问。

    private:私有访问权限,只有当前类可以访问。

    默认修饰符:类、属性、方法前面不加任何修饰符就是默认修饰符,也被称为包访问权限,只有当前包可以访问。


    举几个栗子:

    1)如果a包下的A类是public的,它的字段和方法都是private的。在b包下的B类可以创建A类的对象,但是无法访问A类对象的字段和方法。

    2)如果a包下的A类没有修饰符。在b包下的B类无法创建A类的对象。

    3)如果a包下的A类没有修饰符,它的字段和方法都是private的。在a包下的B类可以创建A类的对象,但无法访问A类对象的字段和方法。

    类库的设计者只需要把使用者需要的字段和方法暴露出去,不希望被使用者修改的就隐藏。

    2、结语

    万法归宗,夯实基础才能在不断变化的Java框架上游刃有余。

    关注微信公众号:小虎哥的技术博客

    相关文章

      网友评论

          本文标题:Java中的包和public、protected、private

          本文链接:https://www.haomeiwen.com/subject/iplbirtx.html