关于 JAVA语言中修饰符的整理
来源:互联网 发布:centos 7 unmount 编辑:程序博客网 时间:2024/05/29 03:15
关于 JAVA语言中修饰符的整理
在JAVA 语言的函数定义和变量定义的时候经常会用到修饰符,对于修饰符的使用范围,就需要有一个比较深入的理解。
目录
- 关于 JAVA语言中修饰符的整理
- JAVA语言中的修饰符
- 每个修饰符的作用范围
- protected很简单
- 设置default的意义何在呢
- Private是对于一种什么样的场景出现的呢
- 结语
JAVA语言中的修饰符
JAVA语言中总共有四类修饰符
- public
- protected
- private
- default
每个修饰符的作用范围
对于JAVA语言来说一个函数或者是一个变量拥有的作用范围只有总共有四个:
从最小的开始是类、包、子类继承访问和包与包之间。
下表中的default(默认)是指什么修饰符都不加的时候的情况。
其中,public就不用再说了。就是所有的地方都可以访问。
其中比较难以区分的地方就在于剩下的三个:
private, default, protected
他们的作用范围再上表看来从private开始每一个就会多一个作用范围。
protected很简单
如果不想在其他包中访问,就用protected保护起来。
设置default的意义何在呢?
为什么默认的范围和Protected那么像,但是只是比它少了一个子类的继承。
这样子,假如让你来实现创造一个 默认,也就是什么都不写的修饰符,你会做成什么样子呢?
肯定不是public, 应该就是protected。
可是你有没有想过,并不是所有的类都设计为父类,就没有想要为其创建子类。
但是有心人却可以通过创建一个子类拿到其中的数据。
这不就得不偿失了所以新添了一种默认的修饰符,让其拥有的protected的保护功能还有防止子类的作用。
如果你需要子类访问,毕竟设计成可以被继承的类并不是多数。这时候你手动添加protected就可以了。
Private是对于一种什么样的场景出现的呢
面向对象语言有三个比较明显的特征在于:
- 封装性
- 继承性
- 多态性
其中封装性的要求在private修饰符的时候就已经得到了完美的展示。
不是所有的变量都可以允许其他人访问
例如,如果是一个密码加密的类,其中的一个变量用与保存加密的密钥。这个密钥只要别人知道了,就可以破解其他的密码。这样子,这个密钥存的就不允许被访问到。
或许又有人说了,那么别人怎么可能访问到你的代码呢?这个嘛~自己想
设置成Private的目的就只有一个,那就是定义一些外部无法访问的自己用的变量。如果需要访问,就需要调用我生成的getter和setter方法。
如果是只读,就可以不写setter方法,同样只写,就可以不写getter方法。
同时,在getter和setter方法中,我们可以通过设定一些限定条件,可以判断你传递过来的参数是否正确。
另外,对于private 也不是完全无法访问
其实可以利用反射绕过私有检查机制实行对private、protected成员变量或方法的访问
结语
就这样,所有的修饰符都在这里了。
可能这都是一些基础到不能再基础的知识了,可是,我希望能够从一个新的角度,从设计者的角度重新解释这些修饰符的作用。希望对大家有用。
- 关于 JAVA语言中修饰符的整理
- 关于Java类&接口&类的修饰符的整理
- JAVA中关于修饰符的使用
- Java语言的修饰符
- Java 修饰符整理
- 关于JAVA的修饰符
- java中关于默认修饰符的理解
- c++与java中关于访问修饰符的区别
- 关于java中protected修饰符的重新认识
- Java中关于final修饰符的几个知识点
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明 (转)
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- 关于Java中各种修饰符与访问修饰符的说明
- linux中基本命令符的使用方式
- tomcat安装jenkins
- 时间序列数据的首选神经网络
- Java-A+B和C (15)
- maven build配置
- 关于 JAVA语言中修饰符的整理
- Protocol Buffers的简单介绍
- Glide框架的基本使用
- Android 内存优化
- 欢迎使用CSDN-markdown编辑器
- CodeForces
- CCF中学生计算机程序设计入门篇练习2.3.2(NOI1000 加密算法) pascal
- 规律,模拟,贪心(Travelling Salesman Problem,HDU 5402)
- AndroidStudio NDK支持C++ STL和C++11