> 文档中心 > 什么?到现在你还不知道什么是 访问修饰限定符吗?

什么?到现在你还不知道什么是 访问修饰限定符吗?

☕目录☕

 🍞前言

 🍚一、public 访问修饰限定符

 🧀二、private 访问修饰限定符

 🥩三、default 访问修饰限定符

             🥡🥡3.1 包的概念

             🥮🥮3.2 导入包中的类

             🍰🍰3.3 自定义包

             🍔🍔3.4 包访问权限

             🥣🥣3.5 常见的包

 🍜四、protected 访问限定修饰符

             🍟🍟4.1 访问同一包中的同一类

             🧇🧇4.2 访问同一包中的不同类

             🥐🥐4.3 访问不同包中的子类 

             🍱🍱4.4 代码示例

 🍤总结


前言

       访问限定修饰符,即:在访问上 所需要的权限是不同的;

       本篇博客来向 各位小哥哥小姐姐们 介绍一下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中的一些常见的包:

  1. java.lang:系统常用基础类(StringObject),此包从JDK1.1后自动导入;
  2. java.lang.reflflect:java 反射编程包;
  3. java.net:进行网络编程开发包;
  4. java.sql:进行数据库开发的支持包;
  5. java.util:是java提供的工具程序包(集合类等), 非常重要;
  6. java.io:I/O编程开发包。


四、protected 访问限定修饰符

       protected:受保护的;

       具有继承权限的;这个需要用到继承的知识;

       在不同的包里面,是某一类的子类,也可以访问该类的成员;

       下面来进行具体的介绍......

4.1 访问同一包中的同一类

4.2 访问同一包中的不同类

4.3 访问不同包中的子类 

【说明】当然,所有的结论都有一个前提:

4.4 代码示例

       上面 protected 所使用的代码示例:

//包Demo1package 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("咪咪");    }}

//包Demo2package 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种 访问限定修饰符的访问权限:

       好了,关于 访问限定修饰符 的内容就分享到这里了;

       如果感觉对铁汁们有帮助的话,可以送一个免费的 赞 嘛,

       当然,如果在顺手点一个关注的话,那就在再好不过得了......

 

局座张召忠