Java访问控制修饰符

  • 访问限定修饰符图表

一 、private
1.为什么要使用private
​ 出于安全性考虑,避免传递非法数据,在写字段时,尽量考虑采用封装,这样可以隐藏类的细节,只对外开放接口即可实现对象之间的交互。

2.private关键字

  •  private是一个访问限定修饰符
  • 被修饰的成员只能在本类中才能访问,若该成员需要被其他类使用,要提供相应操作
  • 可修饰的的范围:

    修饰成员变量:表示当前成员变量只能在当前类中使用

    修饰成员方法:表示当前成员方法只能在当前类中使用

3.实例

//创建类
public class Friend{
     //属性
      private String name;
      private int age;
      //对于每个私有化成员变量均需提供 get set 方法
      //set方法:给成员变量赋值
      //get方法:对外提供成员变量的值
      

      //给成员变量name赋值
      public void setName(String n){//使用public,表示公共的,在所有地方均可使用
           name=n;
}
      //对外提供name属性
      public String getName(){
           return name;
}

      //age同理

      //行为
      public void sleep(){
           System.out.printf("shui jiao")   
}

}

二、default

即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问,外包的所有类都不能访问。

三·、protected

class AudioPlayer {
    /*
     *如果把openSpeaker()声明为private,那么除了AudioPlayer之外的类将不能访问该方法。
     *如果把openSpeaker()声明为public,那么所有的类都能够访问该方法。
     *如果我们只想让该方法对其所在类的子类可见,则将该方法声明为protected。
     */
    protected boolean openSpeaker(Speaker sp) {
    }
}
 
class StreamingAudioPlayer AudioPlayer {
    protected boolean openSpeaker(Speaker sp) {
    }
}

该关键字的权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问

注意: 要区分开 protected 权限、包访问权限
当某个成员能被所有的子类继承,但不能被外包的非子类访问,就是用protected;
当某个成员的访问权限只对同包的类开放,包括不能让外包的类继承这个成员,就用包访问权限

注意

1.四种访问权限范围的大小从小到大:private<default(默认访问权限)<protected<public。

2.当定义变量时不加任何修饰会默认为默认权限。

3.在子类中访问父类中的变量时需要用super。

访问控制和继承

请注意以下方法继承的规则:

1)父类中声明为 public 的方法在子类中也必须为 public。

2)父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

3)父类中声明为 private 的方法,不能够被继承。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值