JAVA中的四种访问修饰符区别以及详解

JAVA中的四种访问修饰符区别以及详解
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);
    }
}

JAVA中的四种访问修饰符区别以及详解|public

测试类的结果  显示public在上述能访问到

用同样的四个类    来测试protected

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

其他三个无影响

JAVA中的四种访问修饰符区别以及详解|protectet

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

private:

JAVA中的四种访问修饰符区别以及详解|private

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

default:

JAVA中的四种访问修饰符区别以及详解|default测试结果说明  只能在本包中进行访问  在其他包   即使是继承关系  也无法进行访问

版权声明 本站资源大多来自网络,如有侵犯你的权益请联系管理员QQ:3641180084或给邮箱发送邮件 3641180084@qq.com 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!
菜鸟自学网 » JAVA中的四种访问修饰符区别以及详解

发表评论

菜鸟自学网是一个分享各类自学教程的网站!

立即查看 联系客服