Java默认的访问权限作用域
作用域 | 当前类 | 同一包(package) | 子孙类 | 其他包 |
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |
1、要点
关于抽象类
JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
关于接口
JDK 1.8以前,接口中的方法必须是public的
JDK 1.8时,接口中的方法可以是public的,也可以是default的
JDK 1.9时,接口中的方法可以是private的
Java的访问权限控制
今天我们来一起了解一下Java语言中的访问权限控制。在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制。考虑两个场景:
场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理?
场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1、fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理?
此时,访问权限控制便可以起到作用了。
在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。
注意,上述四种访问权限,只有默认访问权限和public能够用来修饰类。修饰类的变量和方法四种权限都可以。(本处所说的类针对的是外部类,不包括内部类)
下面就分别针对修饰类和修饰类的成员来讲述这四种
本文来源gaodai.ma#com搞##代!^码@网3
访问权限控制。
1.修饰类
默认访问权限(包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。
public:用来修饰类的话,表示该类对其他所有的类都可见。
下面通过几个例子来看一下两者的区别:
例1:
Main.java:
package com.cxh.test1; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub People people = new People("Tom"); System.out.println(people.getName()); } }