注:本博文是转载的,原文地址:http://blog.csdn.net/xk632172748/article/details/51755438

Java中修饰符总结:

    1. 访问控制修饰符

      访问控制修饰符

      作用: 用于控制被修饰变量、方法、类的可见范围. 
      public的访问级别是最高的,其次是protected、默认和private. 
      成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
      存在继承关系时,父类不可以是private,因为子类无法继承 
      顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰. 
      局部变量不能被访问控制修饰符修饰 . 
      下图是在不同情况下各种权限修饰符的作用范围: 

      总结: 在不同包下面能够访问的权限修饰符只有: pulbic与protected,但是protected必须要有继承的关系才能够访问。

      1. abstract修饰符

        抽象类不能被实例化. 
        抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象方法. 
        如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类. 
        抽象类不能被定义为private、final、和static类型. 
        没有抽象的构造方法. 
        抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法. 
        非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.

      2. final修饰符

        final变量必须被显式初始化,并且只能被赋值一次值 
        final修饰基本类型变量的时候, 该变量不能重新赋值 
        final修饰引用类型变量的时候, 该变量不能重新指向其他对象 
        final修饰的方法为最终的方法, 该方法不能被重写 
        private类型的方法都默认为是final方法,因而也不能被子类重写 
        final修饰的类为最终的类, 不能被继承

      3. static修饰符

        如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份. 
        在静态方法中不能直接访问实例方法和实例变量. 
        在静态方法中不能使用this和super关键字. 
        静态方法不能被abstract修饰. 
        静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问. 
        静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员. 
        当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行. 
        当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是static或abstact修饰符,接着就是其他的修饰符

        注意:以下修饰符一起用是无意义的,会导致编译错误: 
        abstract与private 
        abstract与final 
        abstract与static

(转)JAVA中的权限修饰符的更多相关文章

  1. java中的权限修饰符的理解

    首先了解概念: 在java中有四种权限修饰符:范围从大到小分别是:public.protect.default(friendly).private,它们之间的区别是: public: Java语言中访 ...

  2. Java中的权限修饰符private、protected、public

    java中的修饰符分类: 权限修饰符: private, default, protected, public 状态修饰符: static, final 抽象修饰符: abstract 权限修饰符 我 ...

  3. java中的权限修饰符&关键字

    1.类的权限修饰符default(不写权限修饰符),public 说明:类的权限修饰符只有default(不写权限修饰符)和public.   package world default Y N pu ...

  4. Java中的权限修饰符

    What:访问控制权限是可以设置代码的访问范围. Where:访问权限既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类. 在同一个java文件里,公有类有且仅有一 ...

  5. java中4种修饰符访问权限的区别及详解全过程

    java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...

  6. 详解Java中的访问控制修饰符(public, protected, default, private)

    Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...

  7. Java学习笔记十九:Java中的访问控制修饰符

    Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...

  8. 分享知识-快乐自己:java 中的访问修饰符

    1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...

  9. Java 四种权限修饰符

    Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...

随机推荐

  1. 牛客小白月赛1 C 分元宵【快速幂】

    题目链接 https://www.nowcoder.com/acm/contest/85/C 思路 有 A 种 元宵馅,B 种元宵皮 所以 我们可以认为 有Q = A * B 种 元宵 有 C 张桌子 ...

  2. 牛客小白月赛1 D 多项式乘法 【循环】

    题目链接 https://www.nowcoder.com/acm/contest/85/D 思路 因为数据范围较小 ,所以 可以直接 一个一个乘 AC代码 #include <cstdio&g ...

  3. Ubuntu12.04等的输入法问题 中英文切换 fitcx

    一般乌班图系统安装的时候会提醒大家选择安装的输入法,若大家选择中文安装,那么支持中文没得说,当选择英文安装的时候,发现整个系统环境是英文,并且根本不能输入中文,想baidu一下都是用pinyin百度, ...

  4. Python 3 软件开发规范

    Python 3 软件开发规范 参考链接 http://www.cnblogs.com/linhaifeng/articles/6379069.html#_label14 对每个目录,文件介绍. #= ...

  5. P3338 [ZJOI2014]力(FFT)

    题目 P3338 [ZJOI2014]力 做法 普通卷积形式为:\(c_k=\sum\limits_{i=1}^ka_ib_{k-i}\) 其实一般我们都是用\(i=0\)开始的,但这题比较特殊,忽略 ...

  6. MySQL存储过程入门教程

    存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且 ...

  7. 算法(Algorithms)第4版 练习 1.4.6

    (1)sum = N + N/2 + N/4 +  …… + 1 假设N是2的倍数(N = 2q),则sum = N -1 ~ N (2)sum = 1+2+……N/2 同(1)分析,sum = N/ ...

  8. 图文了解 Kafka 的副本复制机制

    让分布式系统的操作变得简单,在某种程度上是一种艺术,通常这种实现都是从大量的实践中总结得到的.Apache Kafka 的受欢迎程度在很大程度上归功于其设计和操作简单性.随着社区添加更多功能,开发者们 ...

  9. Codeforces 294B Shaass and Bookshelf:dp

    题目链接:http://codeforces.com/problemset/problem/294/B 题意: 有n本书,每本书的厚度为t[i],宽度为w[i] (1<=t[i]<=2, ...

  10. 修改myEclipse2014web项目名称

    重命名项目名称后 右键点击你的项目,然后选择属性---->然后点击myeclipse—>Project Facets—> web 选项,修改web context-root名称为你要 ...