• 访问修饰符与可选修饰符static的使用


      在Java中修饰符较多,在这里简单说一说几个访问修饰符的选择使用,和可选修饰符static的使用。

    一.访问修饰符:这是Java里用来控制访问类及类的方法、变量的访问权限,从而达到只暴露接口,来隐藏内部实现的细节,访问控制符分4种级别(仅仅适用于类及类的成员修饰  private、默认、protected、public),接下来用一个表的形式简要介绍它们的选用:

         本  类 同  包 不同包
    子  类 非 子 类 子  类 非 子 类
    private × × × ×
    默认 × ×
    protected ×
    public

      说明:在表格当中里面    √  表示用此修饰符修饰可以被访问的范围;

                    ×  表示用此修饰符修饰不可以被访问到的范围;

    二.可选修饰符static的使用:

      1.static修饰属性(变量):

      使用(例:public  static  String  name;) 不使用(例:public   String  name;)
    语法上 可以用使用对象加点进行访问,但更多的是类名直接访问。 该属性必须用对象加点进行访问。
    内存上 该属性是没有放在对象上的,而是存在数据段的静态区且全类共享一个。 该属性放在每个对象身上的(每个对象有一个自己的name属性)
    语法上 该属性跟类有关而跟对象无关。 该属性是属于某个对象的
    变量产生时间 是在加载类的时候。 是在new对象的时候产生的
    常量属性 不用考虑直接设计为:public  static  final........; -----------------------------------------
    属性类型 静态属性、类属性 普通属性、非静态属性

      2.static修饰方法:

      使用 不使用
    语法上 虽然可以用对象进行调用,但更多是用类名直接调用 必须使用对象进行调用
    操作上 静态方法只能操作静态静态属性及其他调用其他静态方法,不能使用this/super 既可以操作静态属性也可操作非静态属性;既可以操作静态方法也可以操作非静态方法
    加载上 static方法优先被加载 非静态的方法被后加载
    使用上 某个方法与对象无关只与类有关,才设计选用static, 如果某个方法与某个对象有关,就只能设计为非static的
    设计上 如果方法是工具类的工具方法应该设计为static, 如果方法的实现部分需要操作跟对象有关的属性或其他方法,那么该方法就应该设计为非static的

      3.机制上:static方法优先加载,所以不能操作非静态的内容。

      4.static的共性:

        ①凡是static的都跟对象有关,都类级别的。

        ②凡是static的在加载期会有特殊处理

        ③构造方法不能使用static

        ④static修饰的在加载时产生在数据段的静态区内

  • 相关阅读:
    单例模式的七种写法
    Android省电开发 浅析
    android省电开发之cpu降频
    什么是签名、为什么要给应用程序签名、如何给应用程序签名
    内存溢出和内存泄漏的区别、产生原因以及解决方案
    Android Studio 使用GitHub
    sharesdk 的使用
    当ViewPager嵌套在ScrollView/ListView里时,手势冲突如何处理?
    laravel安装笔记
    erlang的一些小技巧(不定期更新)
  • 原文地址:https://www.cnblogs.com/qq1083735206/p/6194325.html
Copyright © 2020-2023  润新知