作用域 当前类 同一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 访问修饰符使用规则的更多相关文章

  1. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  2. C#和JAVA 访问修饰符

    JAVA ----------------------------------------------- 访问修饰符        描述 ------------------------------- ...

  3. 详解java访问修饰符

    详解java访问修饰符 为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思.修饰符!修饰符!,就是用来修 ...

  4. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  5. 《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  6. Java访问修饰符及其访问控制

    java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...

  7. C#和Java访问修饰符的比较

    访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...

  8. Java 访问修饰符总结

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

  9. Java 访问修饰符详解

    访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...

随机推荐

  1. 留用 未验证 js适配根字体大小

    方法一:<script>                (function (doc, win) {                var docEl = doc.documentElem ...

  2. MySQL 主从同步失败,数据表修复

    问题描述: 接到报警称一台 MySQL 从库同步失败.登录服务器查看错误日志信息如下: Last_Error: Error 'Incorrect key file for table './bfcc/ ...

  3. linux运维笔记——curl

    ** 1.获取网站返回码 ** [root@Cacti ~]# curl -I www.qq.com HTTP/1.1 200 OK Server: squid/3.4.1 Date: Wed, 08 ...

  4. keepalived之vrrp_script详解

    通常情况下,利用keepalived做热备,其中一台设置为master,一台设置为backup.当master出现异常后,backup自动切换为master.当backup成为master后,mast ...

  5. PHPexcle案例

    下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...

  6. JS的事件汇总

    一.前言 事件的绑定触发有很多种方法,我们如何选择呢? 很多时候,我们会使用鼠标事件,但是鼠标事件只能在PC设备上使用,当我们需要对不同设备兼容时怎么办呢? 二.正文 1. 事件的几个概念: 事件流: ...

  7. vim的vim-addons的问题

    最近急切想把vim变成IDE,这个过程的毕竟之路就是装插件,vim有自己的插件管理软件装起插件来相当方便,首先安装这个软件: sudo apt-get install vim-addon-manage ...

  8. 怎样用jQuery拿到select中被选中的option的值

    1.首先要保证select中每一个option标签都有value属性: 2.jquery的写法 1 $('#sele').val()//这里假设select的id是sele,这样可以获取当前选中的op ...

  9. 泛型、反射和抽象工厂结合解决多DB问题

  10. Linux hostname主机名配置文件与文件 /etc/hosts解析(copy来的,原作者看到了别打我)

    1.关于/etc/host,主机名和IP配置文件 Hosts - The static table lookup for host name(主机名查询静态表) hosts文件是Linux系统中一个负 ...