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语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属 ...
随机推荐
- Windows 10上源码编译Poco并编写httpserver和tcpserver | compile and install poco cpp library on windows
本文首发于个人博客https://kezunlin.me/post/9587bb47/,欢迎阅读! compile and install poco cpp library on windows Se ...
- 万恶之源-python的部分内容
1.字符串格式化输出 %占位符: 声明占位的类型%s--字符串 %d%i--整型 %%转义 成为普通的% %s ,%d, %% msg = '%s,学习进度5%%' print(msg%(in ...
- 用PHP实现一个简易版文件上传功能(超详细讲解)
1. php简化版的图片上传(没有各种验证) 1 2 3 4 <form action="" enctype="multipart/form-data" ...
- .NET Core 3.0 使用Nswag生成Api文档和客户端代码
摘要 在前后端分离.Restful API盛行的年代,完美的接口文档,成了交流的纽带.在项目中引入Swagger (也称为OpenAPI),是种不错的选择,它可以让接口数据可视化.下文将会演示 利用N ...
- k8s Ingress 理解和部署
目录 前言 Ingress 与 ingress-controller Ingress 部署 1.部署 ingress-controller 2.部署测试 web 服务 3.部署 Ingress 4.检 ...
- 使用python脚本执行地理处理工具
桌面ArcGIS包含800多种可在Python脚本中运行的地理处理工具. 通过Python脚本来运行地理处理工具,可以处理复杂的工作和执行批处理任务. 案例一:使用脚本执行地理处理工具(以裁剪为例) ...
- Spring security (一)架构框架-Component、Service、Filter分析
“致"高级"工程师(BUG工程师) 一颗折腾的心
- C # socket 实例
同步客户端存储示例 下面的示例程序创建连接到服务器的客户端. 客户端使用一个同步套接字生成,因此,客户端应用程序的执行挂起,直到服务器返回响应. 应用程序将字符串发送到服务器 ...
- Python数据分析I
Python数据分析概述 数据分析的含义与目标 统计分析方法 提取有用信息 研究.概括.总结 Python与数据分析 Python: Guido Van Rossum Christmas Holida ...
- ios webp转换jpg
在项目开发的过程中,遇到了一个问题,就是webp的图片,先解释一下webp是啥,webp是谷歌开发的一种旨在加快图片加载速度的图片格式.图片压缩体积大约只有JPEG的2/3,说白了就是省空间,特别对于 ...