Java中四种访问修饰符区

java中四种访问修饰符区别及详解全过程
  客户端程序员:即在其应用中使用数据类型的类消费者,他的目标是收集各种用来实现快速应用开发的类。

  类创建者:即创建新数据类型的程序员,目标是构建类。  

  访问控制存在的原因:a、让客户端程序员无法触及他们不应该触及的部分 ; b、允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员

  java的四个关键字:public、protected、default、private(他们决定了紧跟其后被定义的东西可以被谁使用)

适用范围<访问权限范围越小,安全性越高>

     **访问权限 类 包 子类 其他包
     public ∨ ∨ ∨ ∨ (对任何人都是可用的)
     protect ∨ ∨ ∨ ×    (继承的类可以访问以及和private一样的权限)
     default ∨ ∨ × ×    (包访问权限,即在整个包内均可被访问)
     private ∨ × × ×    (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)**

以下,用代码进行详解(建四个类 Person Student Teacher Parents 和一个测试类)

package com.zq.demo.test1;
/**
* 类内
* @author Administrator
*/
public class Person {
public String uname = “王五”;

public void introduceMyself(){                
    System.out.println(uname);             
}

}

package com.zq.demo.test1;
//同一个包
public class Student {
Person p = new Person();
public void test(){
System.out.println(p.uname);
}
}

package com.zq.demo.test1;
//子类
public class Teacher extends Person{
public int age;
Person p = new Person();
public void test1(){
System.out.println(p.uname);
}
}
package com.zq.demo.test2;
//不同包
import com.zq.demo.test1.Person;

public class Parents {
public String uname = “haha”;
Person p = new Person();
public void test2(){
System.out.println(p.uname);
}
}
这里写图片描述
测试类的结果 显示public在上述均能访问到

用同样的四个类 来测试protected

这里写图片描述

其他三个无影响
在将Person中的uanme改为protected后 类Parents便报错了 The field Person.uname is not visible (说明不能跨包)

说明除了跨包 其他均不影响访问

private

这里写图片描述

只有本类中可以访问 但是借助在Person类中有关uname的set、get方法便可以进行访问

这里写图片描述

这里写图片描述

  测试结果说明 只能在本包中进行访问 在其他包 即使是继承关系 也无法进行访问这里写图片描述
default

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值