局部变量和属性的对比

属性(成员变量 )vs局部变量

1.相同点:

  1.1定义变量的格式:数据类型 变量名=变量值

  1.2先声明:后使用

  1.3变量都有其对于的作用域

 

2.不同点

    2.1再类中声明的位置的不同

    属性:字节定义在类中的一对{}内

    局部变量:(声明在方法类内,方法形参)、代码块内、构造器形参,构造器内部的变量

    2.2关于权限修饰符的不同

    属性:可以在声明属性时,指明其权限,使用修饰符

    常用的权限修饰符:private、public、确省、protected

    目前声明属性时,都是用缺省就可以====》封装之后可以用其他的

  局部变量:不能使用权限修饰符

 

    2.3默认初始化的情况

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

      整型:(byte、short、int、long): 0

      浮点型(float,double):0.0

      字符型 (char) ;0(或\u0000)

      布尔型(boolean);false

      引用数据类型(类、数组、接口);null

 

    局部变量:没有默认初始化值。

      意味着,我们再调用局部变量之前,一定要显示赋值

      特别地:形参再调用时,我们赋值即可。

    2.4再内存中加载的位置:

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

    局部变量:加载到栈空间

public class d2{
    public static void main(String[] args) {
        User u1 =new User();
        u1.eat();
        u1.talk("日语");
    }
}
class User{
    //属性(成员变量)
    private String name;
    public int age=20;
    boolean isMale;


    public void talk(String language){//language:形参,属于局部变量
        System.out.println("我使用"+language);
    }

    //在方法内定义的变量也属于形参
    public void eat(){//方法
        String food="麻婆豆腐";//定义在方法内的变量:局部变量
        System.out.println("四川人喜欢吃"+food);
    }

}

 

posted @ 2021-02-02 21:02  谷先生  阅读(161)  评论(0)    收藏  举报