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测试结果说明  只能在本包中进行访问  在其他包   即使是继承关系  也无法进行访问

菜鸟自学网是一个优秀的网站,一个纯资源下载站,本站仅供交流与学习,你可以在这里找到一切你想要的免费教程,若文章侵权请及时联系删除,无意冒犯,感谢你们!
菜鸟自学网 » JAVA中的四种访问修饰符区别以及详解

发表评论

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

立即查看 联系客服