修饰符使用范围:
一、外部类或外部接口(class、interface):类修饰符只有public、默认。即public class A、class A、public interface B、interface B
二、内部类(class):类修饰符可以为任意。即public class Inner、class Inner、protected class Inner、private class Inner
三、内部接口(interface):
1、任意外部接口(包括public interface、非public interface)中定义的内部接口修饰符只有public,若不写public则默认的也为public。public
interface A{ public B{} }、interface A{ B{} }
2、任意外部类(包括public class、默认class)中定义的内部接口可以为任意修饰符。
四、实例变量、静态变量、实例方法、静态方法修饰符可以为任意:即public、默认、protected、private
作用范围:
一、外部类或接口可见范围:
1、pulic修饰的外部类或接口对任意类可见
2、默认修饰的外部类或接口只对同一个包下的任意类可见,对包外部的类不可见
二、内部类暂略
三、实例变量、实例方法、静态变量、静态方法
1、同一个包中无论是否为子类:所有实例变量、实例方法、静态变量、静态方法对另一个同一个包中的类可见范围为:public、默认、protected.
2、非同一个包中且非为子类:
所有实例变量、实例方法、静态变量、静态方法对另一个不在同一个包中的类的可见范围为:public
3、非同一个包中但为子类:所有实例变量、实例方法、静态变量、静态方法对另一个不在同一个包中的类但是为子类的可见范围为:public、protected
总结:
实例变量、实例方法、静态变量、静态方法可使用所有的范围修饰符,并且在修饰符的作用下可见范围是一致的:归纳为下表
修饰符\范围
|
本类
|
本包
|
子类
|
外部包
|
public
|
√
|
√
|
√
|
√
|
protected
|
√
|
√
|
√
|
|
默认
|
√
|
√
|
|
|
private
|
√
|
|
|
|
有上表可见修饰符的可见强度为public>protected>默认>private
阅读(3861) | 评论(0) | 转发(0) |