0


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

前言

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

** 本篇博客来向 各位小哥哥小姐姐们 介绍一下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:系统常用基础类(String、Object),此包从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 所使用的代码示例:**

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

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

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

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


本文转载自: https://blog.csdn.net/qq_53362595/article/details/123936480
版权归原作者 哎呀是小张啊 所有, 如有侵权,请联系我们删除。

“什么?到现在你还不知道什么是 访问修饰限定符吗?”的评论:

还没有评论