Java访问控制权限
在Java中一共存在四种访问控制权限,即 private、default(默认)、protected和public
1、private 访问权限
private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问
2、default(默认)访问权限
如果一个类中的属性或方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被
本包中的其他类所访问,但是不能被其他包的类所访问。
3、protected 访问权限
protected属于受保护的访问权限。一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类访问。
4、public 访问权限
public属于公共访问权限,如果一个类中的成员使用了public访问权限,就可以在所有类中被访问,不管是否在同一个包中。
使用表来总结上述的访问控制权限。
| 范围 | private | default | protected | public |
| 同一类 | √ | √ | √ | √ |
| 同一包中的类 | √ | √ | √ | |
| 不同包中的子类 | √ | √ | ||
| 其他包中的类 | √ |
下面介绍protected访问控制权限的作用
在 com.home.a 包中定义一个HelloDemo类,其中包含一个 protected 访问权限
package com.home.a;
public class HelloDemo {
protected String url = "http://itmyhome.com"; //只能被本包及不同包的子类访问
}
在 com.home.b 包中的子类访问此类中的 url 属性
package com.home.b;
import com.home.a.HelloDemo;
class SubHelloDemo extends HelloDemo{ //定义HelloDemo子类
public void print(){
System.out.println("访问受保护属性: " + url); //可以访问protected权限
}
}
public class ProtectedTest {
public static void main(String[] args) {
SubHelloDemo sub = new SubHelloDemo();
sub.print();
}
}
程序运行结果
访问受保护属性: http://itmyhome.com
以上程序中在不同包的子类里访问了 protected 属性,而如果现在由不同包的类直接访问HelloDemo类中的
protected 属性,则会出现编译错误。
package com.home.b;
import com.home.a.HelloDemo;
public class ProtectedTest {
public static void main(String[] args) {
HelloDemo demo = new HelloDemo();
System.out.println(demo.url); // The field HelloDemo.url is not visible
}
}
作者:itmyhome
Java访问控制权限的更多相关文章
- 菜鸡的Java笔记 - java 访问控制权限
java中四种访问控制权限的使用 内容 在java里面一共定义有四个权限,按照由小到大的顺序:private<defaule<prote ...
- Java 多态 父类和子类方法的访问控制权限
Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...
- Java基础 -- 访问控制权限
一 包:库单元 假设我们存在两个类名相同的类,如果没有一定的措施对其进行区分,就会无法区别到底使用的是哪一个类.因此java引入了包来进行名字空间管理. 包(类库)包含有一组类,这些类在单一的名字空 ...
- Java面向对象-访问控制权限
Java面向对象-访问控制权限 Java中,可以通过一些Java关键字,来设置访问控制权限: 主要有 private(私有), package(包访问权限),protected(子类访问权限),pub ...
- Java类成员访问控制权限
类成员访问控制权限 在JAVA中有四种访问控制权限,分别为:private, default, protected, public 1.Private 如果一个成员方法或变量名前使用了private, ...
- Java连载50-import导入、访问控制权限修饰符
一.import 1.import语句用来完成导入其他类,同一个包下的类不需要再导入 不在同一个包下需要手动导入. 2.import语法格式 import 类名: import 包名.*; //imp ...
- JAVA基础之访问控制权限
包:库单元 1.当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也被称为转译单元). 2.每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个public类,该类名称必须 ...
- Java——private default protected public访问控制权限
访问控制权限 protected范例
- java进阶(6)--访问控制权限
一.四种访问控制权限 二.举例同包下访问权限
随机推荐
- Ajax轮询 select循环输出
弹出层 <include file="Pub:header"/> <style> .del{color:red} .addname{color:#337ab ...
- AForge.net 录像拍照功能实现 转
AForge.net 使用之录像拍照功能实现 最近使用aforge.NET拍照录像功能实现 记录一下以便以后好学习,哈哈,直接上代码 连接摄像头设备,这里需要引入 AForge.Video; AFor ...
- redis锁
1.引入依赖: <!--使用redis客户端需要用到的包 --> <dependency> <groupId>redis.clients</groupId&g ...
- JSP使用Struts2标签库报错
JSP中使用<%@ taglib prefix="s" uri="/struts-tags" %>报错:Cannot find the tag li ...
- Django 内建 中间件组件
中间件 这篇文档介绍了Django自带的所有中间件组件. 要查看关于如何使用它们以及如何编写自己的中间件,请见中间件使用指导. 可用的中间件 缓存中间件 class UpdateCacheMiddle ...
- checkstyle 各标签 (有几个没翻译,不懂意思)
以下是对checkstyle 7.8.1 version各标签的翻译,有少数几个标签没翻译,不太懂官网的意思,就空了,希望游客能帮忙补充补充,另外有错的话也希望大家留言下哈,另外转载的话请标明一下 1 ...
- list和tuple
1. 列表--list 列表用[]表示 l=[1,2,3,'zs'] print(l) 输出:[1,2,3,'zs'] 1.利用下标获取列表元素,下标从0开始 print(l[3]) 输出:zs pr ...
- C++_基础5-内存模型
C++为在内存中存储数据提供了多种选择: 可以选择数据保留在内存中的时间长度(存储持续性): 程序的哪一部分可以访问数据(作用域和链接): 可以使用new来动态地分配内存:定位new运算符提供了这种技 ...
- codeforces833B The Bakery
题面传送门 题目大意:将一个长度为n的序列分为k段,使得总价值最大,一段区间的价值表示为区间内不同数字的个数 思路: 显然的dp. 先想到一个朴素的状态转移方程 $dp[i][k]=max(dp[j] ...
- HDU - 1403 后缀数组初步
题意:求两个串的最长公共子串 两个串连接起来然后求高度数组 注意两个sa值必须分别在不同一侧 本题是用来测试模板的,回想起青岛那次翻车感觉很糟糕 #include<iostream> #i ...