理解Java成员变量与局部变量(史上最细)

Java成员变量与局部变量

1 相同点

​ 1.1 定义变量的格式相同

变量类型 变量名 = 变量值

​ 1.2 都是先声明后使用

​ 1.3 变量都有其作用域(作用域是一对大括号)

2 不同点

2.1 在类中声明的位置

​ 属性:直接定义在 {} 内

​ 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内

class Person{
    
    
    
    /*
    这两个是成员变量
    */
    String name;
    int age;
    
    public void eat(String name	//局部变量){
    
    
        
        int number;	//局部变量
    }
}

2.2 关于权限修饰符

​ 属性:可以在声明时指明其权限,使用权限修饰符 (包括public private 缺省 protected)

​ 局部变量:不可以使用权限修饰符(这里可以有两种理解 其一是不能写 其二是局部变量和方法权限修饰符相同)

class Person{
    
    
   
    /*
    成员变量定义时可以指明权限修饰符
    */
    private String name;
    public int age;
    
    public void eat(){
    
    
        
        //private int age;	局部变量定义时不能指明权限修饰符
    }
}

2.3 关于默认初始化

​ 属性:对于类的属性,根据其类型都有默认初始化值

​ 整型是0 浮点型是0.0 char是0 boolean是false 引用数据类型是null

​ 局部变量:没有默认初始化值,意味着:在调用局部变量之前一定要显示赋值 特别的:形参在调用时赋值就行

2.4 在内存中加载的位置

​ 属性:加载到堆空间(非static)

​ 局部变量:加载到栈空间

猜你喜欢

转载自blog.csdn.net/weixin_45321793/article/details/109228248