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

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

  访问控制存在的原因: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);
    }
}

用同样的四个类    来测试protected

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

其他三个无影响

private

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

default

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

java中四种访问修饰符区别及详解全过程的更多相关文章

  1. java中四种访问修饰符

    Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量)   public protected d ...

  2. java中四种权限修饰符区别

    总的概括:public > protected > (default) > private 细分见下表格: 权限修饰符 public protected (default) priv ...

  3. java中4种修饰符访问权限的区别及详解全过程

    java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...

  4. Java 中的 protected 访问修饰符你真的了解吗?

    protected Java 中的 protected 访问修饰符 总结 在同一个包中,类中 protected 或 default 修饰的属性或方法可以在类外被其对象 (实例) 外部访问,也可以被子 ...

  5. java 基础 四种权限修饰符

    /** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...

  6. Java中四种访问权限总结

    一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访 ...

  7. C#中五种访问修饰符作用范围 public、private、protected、internal、protected internal

    1.五种访问修饰符包括哪些? public.private.protected.internal.protected internal 2.五种访问修饰符的作用范围? public  :公有访问.不受 ...

  8. Java四种访问修饰符

    Java 四种访问权限 一.概述 访问等级比较:public > protected > default > private 无论是方法还是成员变量,这四种访问权限修饰符作用都一样 ...

  9. java四种访问修饰符及各自的权限

    1.public,即共有的,是访问权限限制最宽的修饰符.被public修饰的类.属性.及方法不仅可以跨类访问,而且可以跨包访问. 2. protected,即保护访问权限,是介于public和priv ...

随机推荐

  1. Windows组决策

    https://blog.csdn.net/wangjunjun2008/article/details/82426587

  2. git push时提示--set-upstream

    问题: 提示需要加--set-upstream

  3. XMPP即时通讯协议使用(八)——基于订阅发布实现消息流转业务泳道图

  4. MySQL--14 半同步复制

    目录 MySQL半同步复制 半同步复制开启方法 测试半同步 MySQL过滤复制 MySQL半同步复制 从MYSQL5.5开始,支持半自动复制.之前版本的MySQL Replication都是异步(as ...

  5. POJ 3237 树链剖分

    题目链接:http://poj.org/problem?id=3237 题意:给定一棵n个结点n-1条边的树. 每条边都是一个边权. 现在有4种操作 1:CHANGE I V:把(输入的)第i条边的边 ...

  6. oralce 日期 date 相关操作

    1.当前时间加减一年 加一年 select sysdate,add_month(sysdate,12) from dual; 减一年 select sysdate,add_month(sysdate, ...

  7. Ubunu12.04 vncserver xstartup配置文件

    以下有效: #!/bin/sh # Uncomment the following two lines for normal desktop: unset SESSION_MANAGER #exec ...

  8. Web核心之最简单最简单最简单的登录页面

    需求分析: 在登录页面提交用户名和密码 在Servlet中接收提交的参数,封装为User对象,然后调用DAO中的方法进行登录验证 在DAO中进行数据库查询操作,根据参数判断是否有对象的用户存在 在Se ...

  9. 使用UncaughtExceptionHandler重启线程

    先复习Java中的异常 java.lang.Throwable 顶层父类 |– Error错误:JVM内部的严重问题,如OOM,程序员无法在代码中无法处理. |–Exception异常:普通的问题.通 ...

  10. 威胁预警|Solr velocity模板注入远程命令执行已加入watchbog武器库,漏洞修补时间窗口越来越短

    概述 近日,阿里云安全团队监测到挖矿团伙watchbog更新了其使用的武器库,增加了最新Solr Velocity 模板注入远程命令执行漏洞的攻击方式,攻击成功后会下载门罗币挖矿程序进行牟利.建议用户 ...