java四种修饰符_java中的四种修饰符
在编程过程中,经常会遇到四种修饰符来控制访问权限。之前对这个知识点没有研究过,一直是一知半解,每次遇到问题都模棱两可,不能给出一个确切的答案。近几天系统的看了看,也有了自己的一点心得体会。
正文:
先上总纲:
修饰符
本类
本包
继承类
其他类/其他包
private
√
default(friendly)
√
√
protected
√
√
√
public
√
√
√
√
注意:
在java中private和protected是不能修饰类的,只能修饰方法和变量,在thinking in java这本书里也有提到。而 public 和 默认 则没有限制。
private:私有修饰符
这个修饰符很简单,被它修饰的变量和方法(包括静态和成员),都只能在类的内部使用,并且不能被继承。在类的外部即便是通过类本身去调用静态变量/方法,在语法编译也是不能通过的。所以,如果想要使用被private修饰的东西,必须提供可以被其他类调用的方法来间接的操作。当然,你要让哪些类可以间接操作,依然可以用修饰符来控制权限。
default:默认修饰符(友好修饰符)
使用这个修饰符的变量和方法,只能在本包中使用。假定现在有A,B两个类,其中A类有使用默认修饰符的属性和方法,当A,B两个类处于同一个文件夹时,那么B类可以使用这些属性和方法,但当A,B不在同一个文件夹时,那么B就不能使用。
使用该修饰符修饰类的时候,说明该类只能被在同一包的其他类继承,创建和使用,其他包中的类是不能继承的,而且也不能使用该类。
当使用该修饰符修饰变量和方法,而类本身用public修饰时,这些变量和方法只能被同一包的其他类继承和使用。不同包的类即使继承了该类,但用default修饰的变量和方法也不能被继承和使用。
protected:受保护修饰符
这个修饰符给我的感觉就像是专门为了继承而存在的。因为它和默认修饰赋的作用域基本一致,只是增加了可以在子类中使用的权限。所以,A类中被protected修饰的变量和方法,可以被其子类继承和使用(在不在一个包都无所谓)。而对于没有继承A类的类,它的操作权限参考默认权限就可以了。
(但是protected不能修饰类,我没有搞清楚为什么,因为感觉是可以的。只能先留在这,等以后清楚了,再修改。)
public:公共修饰符
我大public就不说了,公共的嘛,谁都可以来掺一脚,哈哈。
java四种修饰符_java中的四种修饰符相关推荐
- java的四个访问修饰符_Java中的四种访问修饰符
Java中修饰符分为两种:访问修饰符和非访问修饰符.修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法. 今天这篇文章先介绍一下四种访问修饰符. 1.private ...
- java原始类型和引用类型_Java中的8种原始类型
java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...
- java中访问修饰符_Java中的非访问修饰符是什么?
java中访问修饰符 Java非访问修饰符 (Java non access modifiers) We have 7 non-access modifiers in Java. The name o ...
- java array 元素的位置_java中的两种排序工具Arrays和Collections的使用
java中的排序工具主要是有两个Arrays和Collections.我们一个一个来讲解. 本来写好了每一种方法的测试代码,后来又给删了,因为我觉得如果想要去了解的话,可以直接查看这些常用的即可.因为 ...
- java中两种异常类型_Java中的三种异常类型
java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...
- java单例模式的实现方法_Java中的五种单例模式实现方法
Ext4 ComboBox组件使用 先来看例子: Ext.define('schoolModel', { extend: 'Ext.data.Model', fields: [{ name: 'id' ...
- java中换行符_Java 中的空格符、换行符等怎么表示
展开全部 特殊字符的自表示方法:: 1.\t 空格2113 ('\u0009') 2.\n 换行 ('\u000A') 3.\\ 反斜杠5261 4.\r 回车 ('\u000D') 5.\d 数字4 ...
- java中有哪些访问修饰符_java中四种访问修饰符
Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...
- java 权限修饰符_java中4种访问权限修饰符
在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性. 一.public (1) 定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到. ...
最新文章
- Github近期最有趣的10款机器学习开源项目
- c++疯狂代码之读和写。。。(用读操作来触发写)
- python开发工程师面试题-分析经典Python开发工程师面试题
- Mac用户SVN图形界面推荐
- 数据中心供电有多重要,看看这件事就知道了
- 嵌入式 linux 启动脚本 编写,[9构建嵌入式linux系统项目-启动脚本的编写.ppt
- Hibernate注解(一)之持久化实体
- redux 源码详解
- windows bat脚本编写_怎样在 txt 中用 2 行代码写出一个锁屏休息提醒脚本?
- dtft性质及证明_N第二章离散时间傅立叶变换(DTFT).ppt
- ln命令 Linux软连接(Symbolic Link)和硬链接(Hard Link)
- 自动化测试-uiautomatorviewer.bat
- ios 线条球_烧脑挑战画线给小球回家
- 高通820(msm8996)camera hal源码分析
- 12-18-2018学习2.410.6
- 弘辽科技:开网店前期需要做好什么工作?弘辽科技提供优质的资源
- TYPEC 接口芯片CC逻辑原理与必要性
- c语言星座图原理,通信原理中星座图详解
- MYSQL——MYSQL中常见的数据库引擎
- Mar. 6, 15:00-17:00, 1493, Strichartz analysis for Schrodinger and wave equation I by Chong Chen
热门文章
- physx选择显卡还是cpu_99块钱买啥显卡?PUBG吃鸡60fps+的缩水版“GTX1050”3GB游戏实测...
- 51单片机的轮胎气压监测系统_汽车的胎压监测系统有哪些作用?
- mac pycharm 卸载_Mac上Virtual Box虚拟机Linux系统安装
- CSS中定义多个链接样式,在CSS中定义【导航栏】超链接样式
- android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?
- OpenShift 4 - Fedora CoreOS (4) - 用 Ignition 定制 CoreOS 的网络/存储等配置
- 使用face-api和Tensorflow.js在浏览器中进行AI年龄估计
- 用于数据输入的基本WPF窗口功能
- Vue 3 源码公布
- WHERE和HAVING子句有什么区别?