Java五十一:变量、代码块、构造器、方法、内部类的调用权限全析

变量、代码块、构造器、方法、内部类的调用权限全析

在这里插入图片描述

一、变量
  1. 类属性(static)

    ① 权限修饰符:决定了可以被调用的范围
    ② 在本类和子类中:静态和非静态方法中都可被直接调用,不需要类名引用
    ③ 其它类:需要实例化或通过对象引用

  2. 实例属性

    ① 权限修饰符:决定了可以被调用的范围
    ② 在本类和子类:

      非静态方法中,可以被直接调用
    
      静态方法中,不能被直接调用,需要实例化之后,再通过“ 对象 . 实例属性 ”的方式调用
    

    ③ 其它类:需要实例化或通过对象引用
    ④ 实例属性也叫做实例变量,随着对象的创建,实例变量的值也就确定了

  3. 局部变量

    ① 不能被权限修饰符修饰
    ② 不能被static修饰
    ③ 不能在方法体外被调用,只能被方法体内调用,包括局部内部类

  4. 常量:

    不能再被赋值。

  5. 注:

    类属性 = 类变量;实例属性 = 成员变量;

    都为属性,类属性是static的,实例属性是非static的,且尽可能private

二、代码块(只能被static修饰)
  1. 静态代码块:

    ① 随着类的加载而加载,只能执行一次
    ② 本类或父类:可以调用其中的静态属性和静态方法
    ③ 其它类:通过实例化该类,通过对象调用其中的属性和方法

  2. 非静态代码块:

    ① 随着对象的加载而加载,执行多次
    ② 本类或父类:可以调用其中的属性和方法
    ③ 其它类:通过实例化该类,通过对象调用其中的属性和方法

三、构造器
  1. 不能使用static、final

    它就是随着类的创建而创建的

  2. private:

    ① 只能在类的内部被调用
    ② 私有构造器的类不能被继承,除非该类有其它构造器
    ③ 外部类调用:详见我的博客内的设计模式——饿汉模式

  3. protected:

    外包子类内可以调用:

     ①   父类的public属性和public方法
     ②   父类的protected属性、未被重写过的protected方法
    

    外包非子类调用该类:

     ①   该类的public属性或public方法
     ②   通过同包内的该类子类的对象也不可调用该类的protected属性或protected方法
    
  4. 缺省:
    • 在同一个包内,和public的使用权限一样
四、方法
  1. 静态方法

    ① 权限修饰符:决定了被调用的范围
    ② 只能直接调用静态属性和静态方法
    ③ 调用非静态属性 / 非静态方法需要通过对象

  2. 非静态方法

    ① 权限修饰符:决定了被调用的范围
    ② 可直接调用静态和非静态的属性、方法

  3. final方法不能被重写

  4. 方法内部不允许声明任何static类型的变量、内部类

五、内部类
  1. 成员内部类

    ① 静态成员内部类 vs 非静态成员内部类

    ② 调用方式详见我的博客 — — 内部类

  2. 局部内部类

    ① 不能被static修饰
    ② 内部不能创建任何static类型的结构
    ③ 随着所在结构的调用才可以被调用(所在结构有:代码块、构造器、方法)

六、类
  1. 只能被 public 、final修饰
  2. 同一个Java文件内不能有两个public类型的类
  3. 非public类型的类不能被不同包内的类继承
  4. final类不能被继承
七、接口
  • 只能被public修饰
八、参考文献
  1. java中static、final、static final浅析 - _吟游诗人 - 博客园 (cnblogs.com)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e_nanxu

感恩每一份鼓励-相逢何必曾相识

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值