java 修饰符 的作用域

  • private  , 缺省 , protected , public

  • 作用范围:

访问修饰符\作用范围所在类同一包内其他类其他包内子类其他包内非子类
private可以访问不可以不可以不可以
缺省可以可以不可以不可以
protected可以可以可以不可以
public可以可以可以可以
  • private 
    被private修饰的属性和方法,不能被其他类访问,子类不能继承也不能访问。只能在所在类内部访问。
  • 缺省 
    变量或者方法前没有访问修饰符时,可以被所在类访问,可以被同一包内的其他类访问 或者继承。但是不能被其他包访问。
  • protected 
    被protected修饰的方法和属性,在同一包内可被访问和继承。不同包内,子类可继承,非子类不能访问。
  • public 
    方法和属性前有public修饰,可以被任意包内的类访问。 
  • static

    static是一个修饰符,用于修饰成员(成员变量和成员函数)

  1. 静态成员随着类的加载而加载。
  2. 静态成员被所有对象所共享
  3. 静态成员多了一个中调用方式,可以被类名直接调用。

    4: 被static修饰的方法与变量会在类加载时进行初始化,并且在加载时分配固定的内存块,且对象为全局对象


  • final

  • 当一个方法被final修饰后,表示该方法不能被子类重写,final方法有一个好处是比非final方法要快,因为在编译时已经静态绑定了,不需要在运行时在动态绑定。
  • final修饰的类属性和变量属性必须要进行显示初始化赋值,初始化后无法再次修改,最终最后版本的意义用final修饰的类不能被继承,即不能拥有自己的子类。
  • final关键字提高了性能。JVM和Java应用都会缓存final变量。
  • final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  • 创建不可变类要使用final关键字。不可变类是指它的对象一旦被创建了就不能被更改了。String是不可变类的代表。不可变类有很多好处,譬如它们的对象是只读的,可以在多线程环境下安全的共享,不用额外的同步开销等等。

   -------

   static 和 final 一起修饰变量 此变量即为编译器常量 

   非静态 final 修饰的变量,跟类运行时初始化的时候变成共享对象,生命周期为主方法执行结束

   内部类调用外部类变量必须用final修饰变量

   处于设计,使用final修饰方法是为了不让继承的类经行修改或覆盖

  设计时,不希望有子类或者这个类为最终稳定版本的类时,可以使用final修饰类




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值