前言
** 访问限定修饰符,即:在访问上 所需要的权限是不同的;**
** 本篇博客来向 各位小哥哥小姐姐们 介绍一下4种访问修饰限定符:public、private、default、protected;**
** 大家可以稍稍花费一点点零碎的时间,绝对让你们收获满满。**
下面正文开始......
一、public 访问修饰限定符
** public,即:公共的,属于每一个人的;**
** public 是初学者接触的最多的 访问修饰限定符,访问的范围也是最广的,就是啥都可以访问的那种,这里就不用做过多的赘述。**
二、private 访问修饰限定符
** private ,即:私有的,只属于自己的;**
** 也就是说,private 的权限最小,只能在当前类当中 来进行访问(这个常用来进行封装);**
** 当前类指的是:private所修饰的类的内部 来进行访问。**
** 所以,作为类的实现者来说,不想让 其他人在类外拿到类内部的 属性和方法(防止对觉得比较重要的数据,用户来进行修修改改,让其他的代码也要时不时的进行修改),那么都可以使用 private来进行修饰(上面代码示例 只显示了属性,当然方法也可以);**
** 但是,如果用户想用这个被private修饰的数据,那么可以提供一个 公开的接口(即 一个public修饰的方法):**
** 上面的过程也就是 封装,对类里面的实现细节进行了隐藏;**
** 对外只提供公开的方法来供你使用;**
** 这也大大提高了数据的安全性。**
三、default 访问修饰限定符
** default:默认,具有包访问权限;**
** 【注意】这一种 访问修饰限定符,只是默认的意思;**
** 而不像前面的,使用 default int a = 100; 这样的格式是错误的:**
** 那么,此时需要知道一丢丢关于包的知识:**
3.1 包的概念
** 在面向对象体系中,提出了一个软件包的概念;**
** 即:为了更好的管理类,把多个类收集在一起成为一组,称为软件包。**
** 类似于目录,比如说:为了更好的管理电脑中的歌曲,其中一种方式 就是将 相同属性的歌曲放在相同的文件夹下,也可以对某个文件夹下的音乐 进行更详细的分类:**
** 在Java中也引入了包,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如,一个包中的类不想被另一个包中的类使用。**
** 同时,包还有一个重要的作用:在同一个工程中允许存在相同名称的类,只要处在不同的包即可。**
3.2 导入包中的类
** Java中自带了许多现成的类,我们可以去导包中的某个类;**
** 当然,我们可以直接导入这个:**
** import java.until.;*
** 即:导入java包下的until包下的 所有的类(是用到哪一个就会自动导入哪一个类,而不是一股脑的把所有的类全部都导入);**
** 当然,如果不想在最上面导入 import.java.util.XXX的话,可以直接在用的时候 自己去说明一下,这也是一种方式(不过不推荐,直接导入它不香吗):**
** 这两个其实都是一样的(就算结果是不一样,那也是由于时间戳不一样导致的)。**
** 当然,比较建议显示的导入指定的类名,否则还是可能会出现冲突的情况:**
** 这个时候只能去指定完整的类名:**
3.3 自定义包
** 以上导入的都是 JDK自带的包,那么现在 我们来看一看自己所定义的包:**
** 包名 一般都是小写,且一般都是公司的域名的倒着写:**
** 下面我们来看一下:**
** 那么此时包已经建好了,我们就可以在包底下(当然,每一个文件夹底下都可以) 建立 .java文件 了,也可以建立包:**
3.4 包访问权限
** 包访问权限 就是所谓的 默认权限,即:只能在当前的包里面使用:**
3.5 常见的包
下面列举一下Java中的一些常见的包:
- java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入;
- java.lang.reflflect:java 反射编程包;
- java.net:进行网络编程开发包;
- java.sql:进行数据库开发的支持包;
- java.util:是java提供的工具程序包(集合类等), 非常重要;
- **java.io:I/O编程开发包。 **
四、protected 访问限定修饰符
** protected:受保护的;**
** 具有继承权限的;这个需要用到继承的知识;**
** 在不同的包里面,是某一类的子类,也可以访问该类的成员;**
** 下面来进行具体的介绍......**
4.1 访问同一包中的同一类
4.2 访问同一包中的不同类
4.3 访问不同包中的子类
【说明】当然,所有的结论都有一个前提:
4.4 代码示例
** 上面 protected 所使用的代码示例:**
//包Demo1
package Demo1;
class Animal {
protected String name;
public Animal(String name) {
this.name = name;
System.out.println("Animal带1个参数的构造方法");
}
public void sleep(){
System.out.println(this.name + "正在睡觉");
}
}
class Cat extends Animal {
public Cat(String name) {
super(name);
System.out.println("Cat带1个参数的构造方法");
}
public void mew() {
System.out.println(this.name +" 正在叫!");
}
}
public class TestDemo1 {
protected int k = 99;
public static void main(String[] args) {
Cat cat = new Cat("咪咪");
}
}
//包Demo2
package Demo2;
import Demo1.TestDemo1;
public class TestDemo2 extends TestDemo1 {
public void func(){
TestDemo1 testDemo1 = new TestDemo1();
System.out.println(super.k);
}
public static void main(String[] args) {
}
}
总结
** 可以用一张图片来总结 4种 访问限定修饰符的访问权限:**
** 好了,关于 访问限定修饰符 的内容就分享到这里了;**
** 如果感觉对铁汁们有帮助的话,可以送一个免费的 赞 嘛,**
** 当然,如果在顺手点一个关注的话,那就在再好不过得了......**
版权归原作者 哎呀是小张啊 所有, 如有侵权,请联系我们删除。