11.01-包和访问控制(笔记)

本文详细解析了Java中类、成员变量及方法的访问权限,包括private、default、protected及public等关键字的区别,并解释了包访问权限的具体含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、

  同一包中的类默认可以相互访问,所以在同一个包中,不能出现类名相同的类。

  这里有两个说明:

  1、即使是子包和父包也是不同的包,例如com.test 和 com.test.utils 这是两个不同的包。

  2、所谓的同一包的类默认访问是指不需要用 import 关键字来引入类,不要和方法、属性、变量的访问

        权限混肴。

 

  成员变量和方法的访问权限如下:

 

  private default protectedpublic 
 类内部 √  √  √  √
 同包子类   √  √  √
 同包非子类   √  √  √
 不同包子类       √
 不同包非子类     √

 

  private:只能类内部不创建对象或创建对象访问

  default:包权限(private权限 + 同一包下的访问权限)  

  protected:包权限 + 子类可以访问父类的方法或属性 (该新增加的功能由于继承的概念只是在类级别概念上增加了访问权限,可以通过super关键字来调用父类的方法,创建对调用方法的话不过不在同一个包下的情况下是不可见的)

  public:任何地方都能访问

 

重要注释:√  表示只能不创建对象的方式访问 

         不创建对象访问:指的是通过this或super关键字来调用方法,当然在不创建对象的情况即使没有显

 式的调用其实默认前面也是加上了this关键字,因为子类会继承父类的protected方法,所以相当于调用自己的protected方法。

         通过这个总结也证明,this和super关键字并不代表对象,只是指明调用的方法是自己的还是父类

  的,可以将this和super关键字理解成表示符。

 

对于包访问权限的解释:

       某类的protected方法和属性在包外是不能通过该类对象进行访问的。某类所在的包的以外的任何地方,你不可以通过该类的对象引用来调用它的protected 方法和属性,哪怕是在该类的子类中也不可以这样做。在该类包外的子类中能“看到“的只是子类自己继承来的protected 方法和属性,它是不能“看到“它的父类对象的protected方法和属性的。

     从上面这段描述来看一定要把Java中的类和对象区分清楚,完全是两个不同的概念。

 

二、native 关键字的使用(目前作为遗留)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值