☕目录☕
🍞前言
🍚
一、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中也引入了包,包是对类、接口等的封装机制的体现,是一种对类或者接口等的很好的组织方式,比如,一个包中的类不想被另一个包中的类使用。
同时,包还有一个重要的作用:在同一个工程中允许存在相同名称的类,只要处在不同的包即可。
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种 访问限定修饰符的访问权限:
好了,关于 访问限定修饰符 的内容就分享到这里了;
如果感觉对铁汁们有帮助的话,可以送一个免费的 赞 嘛,
当然,如果在顺手点一个关注的话,那就在再好不过得了......
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)