Java中的包和public、protected、private

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

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学生类。

在这里插入图片描述

一个类的代码的第一行是当前类所在的包,如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框架上游刃有余。

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小虎哥的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值