java-权限修饰符的区别
说明:所谓访问权限,是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。
1、Java中的四种访问修饰符:public、protected、default(无修饰符,默认)、private。
2、四种修饰符可修饰的成分(类、方法、成员变量)
public |
protected |
default |
private |
|
类 |
√ |
× |
√ |
×(内部类可以用private修饰) |
方法 |
√ |
√ |
√ |
√ |
成员变量 |
√ |
√ |
√ |
√ |
3、四种修饰符的访问权限
public:对所有类可见
protected:对同一包中的类可见、对同一包及不同包中的子类可见
default:对同一包中的类可见、对同一包中的子类可见
private:仅对类本身可见
可见是可访问的意思,即由这些修饰符修饰的成分(类、方法、成员变量)可以被其它类访问。对子类可见即子类可以继承。
这里需要注意的是protected与default,二者的区别在于不同包中的子类是否可以继承。
访问权限 |
类 |
同一包 |
同一包中的子类 |
不同包中的子类 |
不同包 |
public |
√ |
√ |
√ |
√ |
√ |
protected |
√ |
√ |
√ |
√ |
× |
default |
√ |
√ |
√ |
× |
× |
private |
√ |
× |
× |
× |
× |
注:
- 修饰符修饰变量或方法时:
- 一个类中的实例方法总是可以操作该类中的实例变量和类变量;类方法总是可以操作该类中的类变量,与访问权限没有关系。
- private:如果Tom类中的某个成员是私有类变量(静态成员变量),那么在另外一个类中也不能通过类名Tom来操作这个私有类变量。如果Tom类中的某个方法是私有的类方法,那么在另外一个类中,也不能通过类名Tom来调用这个私有的类方法。
- private:对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。
- public:当在任何一个类中用类Tom创建了一个对象后,该对象能访问自己的public变量和类中的public方法。
- default:当在另外一个类中用类Tom创建了一个对象后,如果这个类与Tom类在同一个包中,那么该对象能访问自己的友好变量和友好方法。
- default:在源文件中编写命名的类总是在同一个包中。如果源文件使用import语句引入了另外一个包中的类,并用该类创建了一个对象,那么该类的这个对象将不能访问自己的友好变量和友好方法。
- protected:当在另外一个类中用类Tom创建了一个对象后,如果这个类与类Tom在同一个包中,那么该对象能访问自己的protected变量和protected方法。
* 修饰符修饰类时:
* 可以在任何另外一个类中,使用public类创建对象。
* 如果一个类不加public修饰,这样的类被称为友好类,那么在另外一个类中使用友好类创建对象时,要保证它们在同一个包中。
部分引用:https://www.cnblogs.com/deltadeblog/p/7123661.html
java-权限修饰符的区别的更多相关文章
- Java 权限修饰符
Java应用有很多类,但有些类并不希望被其他类使用.每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用.如何能做到访问控制呢?就需要使用访问权限修饰符. Java语言中的访 ...
- private/默认/protected/public权限修饰符的区别
private/默认/protected/public权限修饰符和面向对象的三大特性的封装性有着密切关系.它们都可以修饰类的成员,其中的默认和public还可以修饰类. 类的成员包括:成员变量.成员方 ...
- 10-04 Java 权限修饰符,类及其组成常见的修饰符
四种权限修饰符的测试 /* 权限修饰符: 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类) private Y 默认 Y Y protected Y Y Y public Y Y ...
- java权限修饰符
- java之四种权限修饰符
java权限修饰符piublic.protected.private.置于类的成员定义前,用来限定对象对该类成员的访问权限. 修饰符 类内部 同一个包 子类 任何地方 private yes ...
- final、以及public、protected、(default)、private权限修饰符总结
package cn.learn.Final; /* 当final用来修饰类 1.该类不能有任何子类,成员方法均无法覆盖重写,但可以重写父类的方法 当final用来修饰方法 1.该方法不能被覆盖重写 ...
- Java中权限修饰符public、private、protected和default的区别
1.public 可以修饰类.成员变量和成员函数,没有任何限制,同一个包中,或者不同包中的类都可以自由访问 2.private 可以修饰成员变量和成员函数,只能在本类中使用 3.default (不写 ...
- java中四种权限修饰符区别
总的概括:public > protected > (default) > private 细分见下表格: 权限修饰符 public protected (default) priv ...
- Java访问权限修饰符public protected friendly private用法总结(转载好文Mark)
首先声明:Java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly.为了条理清晰,分三种不同情况来总结. 一 访问权限修饰符修饰成员变量和 ...
- 关于Java的权限修饰符(public,private,protected,默认friendly)
以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...
随机推荐
- zabbix3.4.7实现企业微信告警,亲测可用!
Zabbix 新版微信告警 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...
- socket简述-------转载
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...
- 学习笔记-AngularJs(三)
学习笔记-AngularJs(二)写了个所有程序语言入门时都必须要写的Hello World,那么从现在开始做那个之前说过的互联网大佬介绍的学习例子,当然这里开始会慢慢按照之前说过的目录来搭建这个学习 ...
- ID基本操作(标尺,参考线,网格)5.11
参考线:标尺参考线,分栏参考线,出血参考线.在创建参考线之前确保标尺和参考线都可见.并且选中正确的跨页和页面作为目标, “版面”“创建参考线”可以输入数值创建参考线. 跨页参考线的创建:拖动参考线时鼠 ...
- day06 元组类型
一.什么是元组? 元组就是一个不可变的列表 元组的基本使用: 1.用途: 用于存放多个值,当存放多个任意类型的值 2.定义方式:在()内用逗号分隔开多个任意类型的值 t=(1,3.1,'aaa',( ...
- Springboot+MyBatis+mysql+jsp页面跳转详细示例
SpringBoot与MyBatis搭建环境,底层数据库为mysql,页面使用JSP(官网上不推荐使用jsp),完成从数据库中查询出数据,在jsp页面中显示,并且实现页面的跳转功能. 项 ...
- 泛型算法,排序的相关操作,lower_bound、upper_bound、equal_range
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 5.8 C++重载自增与自减操作符
参考:http://www.weixueyuan.net/view/6386.html 注意: 自增“++”与自减“--”都是一元操作符,其前置和后置两种形式都可以被重载. 前置 stopwatch ...
- mybatis学习(二)----对表进行CRUD操作
一.使用MyBatis对表执行CRUD操作——基于XML的实现 userMapper.xml映射文件如下: <?xml version="1.0" encoding=&quo ...
- freemarker中的null异常处理以及!与??的使用(转)
原文链接: https://blog.csdn.net/mexican_jacky/article/details/50638062 阅读数:6304 如工程包含: 在user中我们有个角色,那么我们 ...