Java修饰符public,protected,default,private访问权限
public
具有最大的访问权限。所有类可访问。
protected
主要是用来保护子类。自身、子类及同一个包中类可以访问
default
没有加修饰符的。有时候也称为friendly,它是针对本包访问而设计的。同一包中可以访问。
private
访问权限仅限于类的内部,是一种封装的体现。只能被自己访问
| 类内部 | 子类内部(本包) | 其他类(本包) | 子类内部(外部包) | 其他类(外部包) | |
| public | O | O | O | O | O |
| protected | O | O | O | O | X |
| default | O | O | O | X | X |
| private | O | X | X | X | X |
示例代码
包apkg
ParentA.java
package apkg;
public class ParentA {
public String publicVariable = "public";
protected String protectedVariable = "protected";
String variable = "default";
private String privateVariable = "privater";
public void show() {
System.out.println(this.publicVariable);
System.out.println(this.protectedVariable);
System.out.println(this.variable);
System.out.println(this.privateVariable);
}
public static void main(String[] args) {
ParentA apkg = new ParentA();
apkg.show();
}
}
SonA.java
package apkg;
public class SonA extends ParentA {
public void show() {
System.out.println(this.publicVariable);
System.out.println(this.protectedVariable);
System.out.println(this.variable);
//System.out.println(this.privateVariable);// 无法访问
}
}
UncleA.java
package apkg;
import apkg.ParentA;
public class UncleA {
public void show() {
ParentA apkg = new ParentA();
System.out.println(apkg.publicVariable);
System.out.println(apkg.protectedVariable);
System.out.println(apkg.variable);
//System.out.println(apkg.privateVariable);// 无法访问
}
}
包bpkg
SonB.java
package bpkg;
import apkg.ParentA;
public class SonB extends ParentA {
public void show() {
System.out.println(this.publicVariable);
System.out.println(this.protectedVariable);
//System.out.println(this.variable);// 无法访问
//System.out.println(this.privateVariable);// 无法访问
}
}
UncleB.java
package bpkg;
import apkg.ParentA;
public class UncleB {
public void show() {
ParentA apkg = new ParentA();
System.out.println(apkg.publicVariable);
//System.out.println(apkg.protectedVariable);// 无法访问
//System.out.println(apkg.variable);// 无法访问
//System.out.println(apkg.privateVariable);// 无法访问
}
}
Java修饰符public,protected,default,private访问权限的更多相关文章
- 【java基础】(1)Java的权限修饰符(public,protected,default,private)
访问权限修饰符权限从高到低排列是public ,protected ,default, private. 一.根据“是否是同包”.“是否是子类”分为4中情况+本类 5种情况 二.把 同包中的子类 ...
- Java访问权限修饰符public protected friendly private用法总结(转载好文Mark)
首先声明:Java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly.为了条理清晰,分三种不同情况来总结. 一 访问权限修饰符修饰成员变量和 ...
- java访问修饰符 public protect default private
适用范围<访问权限范围越小,安全性越高> 访问权限 类 包 子类 其他包 public ok ok ok ok (对所有可用的 ...
- java 修饰符的作用一(public protected default private 组)
1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问. java 默认的权限是defau ...
- Java修饰符 public、protected、default、private
2.访问修饰符public,private,protected,以及不写(默认)时的区别?答: 修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protected √ √ √ × ...
- java四种权限修饰符(public > protected > (default) > private)
权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个 ...
- JAVA类型修饰符(public,protected,private,friendly)
JAVA类型修饰符(public,protected,private,friendly) public的类.类属变量及方法.包内及包外的不论什么类均能够訪问:protected的类.类属变量及方法,包 ...
- java修饰符public final static abstract transient
JAVA 修饰符public final static abstract transient 关键字: public final static abstract ... 1.public prot ...
- Java修饰符public,private,protected及默认的区别
Java中访问修饰符public.private.protecte.default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属 ...
随机推荐
- Elasticsearch系列---简单入门实战
概要 本篇主要介绍一下Elasticsearch Document的数据格式,在Java应用程序.关系型数据库建模的对比,介绍在Kibana平台编写Restful API完成基本的集群状态查询,Doc ...
- 用java实现“钉钉微应用,免登进入某H5系统首页“功能”
一.前言 哈哈,这是我的第一篇博客. 先说一下这个小功能的具体场景: 用户登录钉钉app,点击微应用,获取当前用户的信息,与H5系统的数据库的用户信息对比,如果存在该用户,则点击后直接进入H5系统的首 ...
- 从静态代理,jdk动态代理到cglib动态代理-一文搞懂代理模式
从代理模式到动态代理 代理模式是一种理论上非常简单,但是各种地方的实现往往却非常复杂.本文将从代理模式的基本概念出发,探讨代理模式在java领域的应用与实现.读完本文你将get到以下几点: 为什么需要 ...
- ubuntu server 1604 配置网络信息
对于新安装的linux 服务器(ubuntu server 1604) 一,配置网络 连接网线与路由器 查看系统的网卡信息 ifconfig -a //列出所有的网卡信息,不管启用还是没有启用的 ...
- 关于springboot2.*版本无法加载静态资源
前言 在学习springboot的过程中,发现无法引用静态资源.我使用的是springboot2.2.1版本. 追溯源码,终于解决.并记录下解决思路. 默认加载路径 首先得知道springboot默认 ...
- 性能测试——记weblogic 连接池满无法链接故障诊断过程
记weblogic 连接池满无法链接故障诊断过程 前段时间公司负责建行的一个票据系统在,上线前几个分行试运行环境下,每天后台日志都会报oracle.jdbc.xa.OracleXAException, ...
- 安卓Android碎片fragment实现静态加载
静态加载好后的界面如下,两个碎片分别位于一个活动的左边和右边: 左边和右边分别为一个碎片,这两个碎片正好将一整个活动布满.一个活动当中可以拥有多个碎片,碎片的含义就是可以在同一个UI界面下,将这个界面 ...
- 2019-10-2,html作业,简历源码
<html> <head> <title>简历作业</title> </head> <body bgcolor=#cccccc> ...
- 程序员实用工具,推荐一款代码统计神器GitStats
阅读全文需7分钟,工具很实用. 1. 前言 对于Git项目开发,有一些可视化的工具,如gitk,giggle等,来查看项目的开发历史.但对于大型的项目,这些简单的可视化工具远远不足以了解项目完整的开发 ...
- <<代码大全>>阅读笔记之一 使用变量的一般事项
一.使用变量的一般事项 1.把变量引用局部化 变量应用局部化就是把变量的引用点尽可能集中在一起,这样做的目的是增加代码的可读性 衡量不同引用点靠近程度的一种方法是计算该变量的跨度(span) 示例 a ...