序言
这个模块主要说一下在Java中四种访问权限的知识点,让我们更好的理解权限修饰符.
访问修饰限定符
我们知道的访问修饰限定符有四种,下面先认识一下
- public
- protected
- private
- default
包
包 (package) 是组织类的一种方式.
使用包的主要目的是保证类的唯一性
例如, 你在代码中写了一个 Test 类. 然后你的同事也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致
代码不能编译通过.
创建包
我们创建包就像 www.baidu.com 域名那样,不过我们要反过来
这样我们就创建好了,看一看
在计算机上面的硬盘上,出现了文件夹
IDEA会自动导入这个包.
导入包
导入包分为下面两种,一个是导入我们自己创建的包,里一个就是导入已经封装好的,它们的方法是一样的.我们就说一种把
Java有很多优点,其中之一就是我们封装了大量的方法,程序员们把他们存在一个包中上传到网上,后面又有人制定了标准,我们可以在IDAE中直接使用这些方法,避免我们重复造轮子.
下面我们使用最常用的一个包
import java.util.Arrays;
我们使用import 导入一个类,这个类存在于java.util下面.这样我们就可以来使用这里面的方法了.
import java.util.Date;//导入java.util的包的Date类
public class TestDemo {
public static void main(String[] args) {
Date date = new Date();
// 得到一个毫秒级别的时间戳
System.out.println(date.getTime());
}
}
有人可能会说,这也太麻烦了,我还要找我们需要的是在包下的哪个类,有没有一些方法可以使我们只找到包,不找类呢?Java是允许的
import java.util.*;
我们加上一个* 就可以完成这些事了,我们要注意* 不是把包里面所有的都导入,而是我们代码使用了哪个类导入哪个类/
注意
关于包的导入我们可能要注意些问题,在不同的包中,我们可能出现类名一样的包,我们使用的时候一定要准确导入,和之前的方法就不一样,比如说下面的代码
public class TestDemo { public static void main(String[] args) { java.util.Date date1 = new java.util.Date(); //具体导入包 } }
正式内容
public 公有的 & private 私有的
这个我们都知道,就不谈了,其中private修饰的只能在本类中访问,即使后面的子类也不可以调用
protected 受保护的
当我们使用继承时,发现父类中private修饰的字段和方法我们无法使用,要是用public修饰,违背了我们封装的初衷,所以就出现了protected关键字
作用
-
在同一包同一类中使用
-
在同一包不同类中使用
- 不同包的子类
default 默认权限
首先声明一点,default不是权限修饰符,什么都没有,也就是“默认权限”
class Test{
int a; //默认权限 -》什么修饰符都没有,叫做包访问权限
}
作用
- 在同一包同一类中使用
- 在同一包不同一类中使用
class Test{
int a; //默认权限 -》什么修饰符都没有,叫做包访问权限
}
public class TestDemo2 {
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.a);
}
}
总结
不用那么复杂,只需记住默认权限的事物只能在本包中试用就行了