课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java中四种访问修饰符区别及详解
  • java中四种访问修饰符区别及详解

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-21

  • 昆明Java培训机构的老师今天给大家讲java中四种访问修饰符区别及详解。

    客户端程序员:即在其应用中使用数据类型的类消费者,他的目标是收集各种用来实现快速应用开发的类。

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

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

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

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

    访问权限  类  包 子类 其他包

    public    ∨  ∨   ∨    ∨         (对任何人都是可用的)

    protect   ∨  ∨  ∨    ×(继承的类可以访问以及和private一样的权限)

    default   ∨  ∨  ×    ×(包访问权限,即在整个包内均可被访问)

    private   ∨  ×  ×    ×(除类型创建者和类型的内部方法之外的任何人都不能访问的元素)

    以下,昆明Java培训机构的老师用代码进行详解(建四个类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

    测试结果说明 只能在本包中进行访问 在其他包  即使是继承关系 也无法进行访问

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:Java培训:sso demo取消https

下一篇:JAVA注释的另一种用法

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:12/29

Java--零基础业余班

Java--零基础业余班

开班日期:12/29

Java--周末提升班

Java--周末提升班

开班日期:12/29

Java--零基础周末班

Java--零基础周末班

开班日期:12/29

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56