Java 访问修饰符使用规则
| 作用域 | 当前类 | 同一package | 子孙类 | 其他package |
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| friendly | √ | √ | × | × |
| private | √ | × | × | × |
1. 对于类:
类如果不写修饰符,默认是 friendly 的。Java 中并没有 friendly 修饰符的声明。
friendly 类型说明子类如果和此类不在同一包中是不可见的,简单说就是只有同一包中才可见。
protected 类型说明同一包中一定可见,但不同包中的子孙类中也可见,所以和 friendly 有区别。
普通类不可以用 private 和 protected 来修饰,但内部类可以。
- 内部类的详细解释请看这篇文章:http://lavasoft.blog.51cto.com/62575/179484/
内部类的简单总结:
- 内部类的分类:
- 普通内部类
- 方法内部类 (只存在于某个方法中)
- 匿名类,比如 new Thread(){}
- 静态内部类,static class,它不能访问外部类的非静态成员。要创建静态内部类对象时候,也不需要外部类对象了,直接可以 new 外部类名.内部类构造方法
- 接口内部类
public interface AInterface {
void readme();
//接口内部类默认是 static 的
class Inner1 implements AInterface {
public void readme() {
System.out.println("我是一个接口内部类");
}
}
} class Main {
public static void main(String[] args) {
AInterface.Inner1 in1 = new AInterface.Inner1();
in1.readme();
}
}
- 内部类的特点:
- 内部类可以是 public,private 或 protected 的。
- 内部类可以直接访问外围类的成员和方法。
- 创建内部类:
Outer outer = new Outer();
//不可以直接Outer.new Inner();因为不是静态的
Outer.Inner iner = outer.new Inner()
2. 对于类(普通类和抽象类)方法和属性:默认是 firendly 的。
3. 对于接口:属性,public static final
方法,public abstract
Java 访问修饰符使用规则的更多相关文章
- java访问修饰符
了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...
- C#和JAVA 访问修饰符
JAVA ----------------------------------------------- 访问修饰符 描述 ------------------------------- ...
- 详解java访问修饰符
详解java访问修饰符 为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思.修饰符!修饰符!,就是用来修 ...
- Java访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...
- 《Java基础知识》Java访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...
- Java访问修饰符及其访问控制
java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...
- C#和Java访问修饰符的比较
访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...
- Java 访问修饰符总结
Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口. Java语言采用访问控制修饰符来封装类及类的方法和属性的访问权限,从而向使用者暴露接口.隐藏细节. Java访问控制分为 ...
- Java 访问修饰符详解
访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...
随机推荐
- oracle 的分页与 mySQL'的分页转化
oracle 分页: 关键字ROWNUM SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM ( SELECT A.*, ...
- 战地记者也在使用Scrum
2011年埃及骚乱 2011年1月25日开始,埃及人民由于不满物价上涨.失业率高和腐败等问题,埃及多个城市发生民众大规模集会,要求总统穆巴拉克下台.本来这只是一场小规模的抗议活动,却如星火燎原般点燃了 ...
- Anisotropic Specular Shader
[Anisotropic Specular] Anisotropic Specular(各向异性反射)模拟表面凹槽的方向性.就像CD表面一样.CD的表面凹槽是有方向的. BlinnPhong中Spec ...
- NormalMap & CubeMap
[NormalMap & CubeMap] 有时候我们需要CubeMap的环境反射也需要有凹凸信息,此时需要装将NormalMap与CubeMap结合. 因为要使用NormalMap,使用Pr ...
- vuejs 2.0 键盘事件
<!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...
- nginx 多域名配置,采用多配置文件的方式
nginx 中多域名配置,目前采用多配置文件的方式. 配置过程比较简单. 首先在 nginx 目录下创建子目录 vhosts . 在 vhosts 目录中创建对应域名的配置文件.如有域名 898hi. ...
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
在上一篇文章中,提到的Nginx的Memcached模块应用场景,主要是作为文件缓存.然后就发现了一个问题,当以字节数组方式缓存较大的文件时,缓存数据会被压缩,从而在读取的时候出现问题. (本文欢迎转 ...
- 嵌套列表的加权和 · Nested List Weight Sum
[抄题]: Given a nested list of integers, return the sum of all integers in the list weighted by their ...
- SecureCRT 下MySQL中文乱码问题终极解决方案-乾颐堂
一.查看Linux主机系统字符集 命令: echo $LANG [root@pythontab.com ~]# echo $LANG [root@pythontab.com ~]# en_US.UTF ...
- js运算浮点数
在js中做小数:9.3+0.3会发现,得到的结果并不是9.6,而是9.600000000000001.这是为什么? Javascript采用了IEEE-745浮点数表示法,这是一种二进制表示法,可以精 ...