Java的访问权限知识
来源:互联网 发布:nginx 日志记录真实ip 编辑:程序博客网 时间:2024/04/28 19:36
在代码编写过程中,我们需要隐藏一些具体实现,进行访问控制。通过访问控制,可以阻止对象的滥用。
Java提供了访问权限修饰词,从大到小包括 public,protected,包访问权限(没有关键词) 和private,下面看下他们的权限范围。
关键词 同一个类 同包不同类 不同包 private ★ default ★ ★ protected ★ ★ 子类★ public ★ ★ ★
public: 任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。
protected:同一类,同一包可以使用。不同包的类要使用,必须是该类的子类。
private: 不允许任何其他类存取和调用,除非内部类。
friendly(default,前边没有修饰字的情况):在同一程序包中出现的类才可以直接使用它的数据和方法.
1.先看一下第一个访问权限public:
无论是谁在哪里,都可以访问该成员。
当然这个对于默认包就行不通了Jdk1.5开始就不支持import default package;只有同在默认包下的才可以访问。
2.接下来看protected:(继承访问权限)
同一个包下面的类都可以访问,不同包是无法访问,但是在不同包下面,是该类的子类就可以访问protected修饰的变量和方法
3.接下来看default(包访问权限):
这个意味着只能当前包中调用。
4.最后是private:
除了包换该成员的类外,其他任意类无法访问这个成员,除非内部类,可以访问外部类的任意成员。
private 用来声明构造器的话,我们就不能通过构造器来创建对象了,但是我们可以通过一个静态方法来调用这个构造器来创建对象。Soup1是通过一个静态方法实现的,而创建Soup2是使用了单例模式。
class Soup1 {
private Soup1() {
System.out.println("Soup1");
}public static Soup1 makeSoup() {
return new Soup1();
}
}class Soup2 {
private Soup2() {
System.out.println("Soup2");
}private static Soup2 soup = new Soup2();
public static Soup2 getSoup() {
return soup;
}
}public class Lubch {
public static void main(String[] args) {
Soup1.makeSoup();
Soup2.getSoup();
}
}
Ps: 类的访问权限。(只允许使用public 和 默认的)
1.每一个编译单元(.java文件)都只能有一个public 类 这表示,每一个编译单元都有单一的公共接口,用public类来实现,而如果有多个public类的话,会编译出错。
2.public类的名称必须和文件名一致,大小写神马的都要一样。
3.虽然不常用,但是编译单元完全不带public类也是可以的,这时候文件名就可以随意命名。
- Java的访问权限知识
- Java中一些琐碎的知识和访问权限
- Java知识:类成员访问权限
- Java的访问权限
- java的访问权限
- java 访问的权限
- java的访问权限
- java的访问权限
- Java的访问权限
- java的访问权限
- java的访问权限
- linux下的文件访问权限知识
- java的各种访问权限
- java 的访问权限设置
- 浅谈JAVA的访问权限
- java 的protected 访问权限。
- java类的访问权限
- java类的访问权限
- Android中Ringtone播放详解【安卓源码解析五】
- 黑马程序员-java Exception异常个人知识整理
- epoll精髓
- AsyncTask原理分析与Demo
- javaBean和xml之间的相互转换
- Java的访问权限知识
- String 类型如何转变为Timestamp类型
- (2013.03.08)求最大公约数_3种算法
- Android中Notification的framework层讲解【安卓源码解析四】
- 选项卡切换
- 处理来自UI线程的位图
- Android中音乐文件的信息详解【安卓源码解析二】
- 弹出框
- 教你更改U盘图标