• 成员变量(实例变量)、局部变量以及静态变量(类变量)的区别与属性,final的使用


    成员变量(实例变量)、局部变量以及静态变量(类变量)

    因为在学习final的使用方法时,用到了如下变量,进行了一个区分,网上查看了相关的资料,可以更好的进行理解

    ——成员变量(实例变量)局部变量静态变量(类变量)
    定义处于类中,方法体外处于方法中或者方法的形参中再类中,方法体之外
    初始值有默认初始值无默认初始值,需要定义赋值后才可使用有默认初始值
    调用方法对象调用——对象、类名调用
    存储位置堆中栈中方法区
    生命周期与对象共存亡与方法共存亡与类共存亡

    final在修饰成员变量(也就是实例变量)的时候

    public class FinalVAR{
    final int b =0 ;// 声明即需要赋值,否者报错
    //或者在代码块赋值,构造器赋值
    /* b = 0; */
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    final修饰局部变量

    • 局部变量必须由程序员初始化
    • 可以定义时赋值也可以在后续使用前赋值(赋值仅一次!)
    public class Final{
    public static void main(String args[]){
        final int localA;//只声明不赋值也是可以的
       // 使用之前必须赋值!
       localA = 0;
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    final 修饰基本类型数据和引用类型数据

    • 基本类型数据:数值一旦初始化之后不可进行更改
    • 引用类型数据:初始化后不能再指向其他对象,数据可以进行更改
      eg:代码如下:
    public class  FinalTest{
    	public static void main(String args[]){
    		final int[] arr = {1,2,3,4,5};
    		arr[2] = 5;//合法,可以进行修改!
    		arr = null;//不合法,final修饰后不可进行重新赋值!
    
    	final Person p = new person(23);
    		p.setAge(24);//合法,可以进行修改,赋值等操作
    		p = null;//非法
     }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    flowable消息事件
    WPF 如何让xmal的属性换行显示 格式化
    学生班级(双表)管理系统-增删改查—拓展—>网上书店项目的实现
    应届毕业生谈毕业的故事
    基于安卓android微信小程序的校园维修平台
    Seq2Seq底层代码
    Web1到 Web3,互联网经历了什么?
    数仓建模详解及示例代码
    Java实现自动玩王铲铲的致富之路小程序游戏
    IPSec NAT穿越原理
  • 原文地址:https://blog.csdn.net/C_Linda/article/details/125881855