面向对象(四)

85 阅读1分钟

属性与局部变量对比

类中属性的使用

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

  • 相同点:

    • 定义变量的格式:数据类型 变量名 = 变量值
    • 先声明,后使用
    • 变量都有其对应的作用域
  • 不同点;

    • 在类中声明的位置的不同

    • 属性:直接定义在类的一对{}内

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

关于权限修饰符的不同

  • 属性:可以在声明属性时,指明其权限,使用权限修饰符
  • 常用的权限修饰符:private、public、缺省、protected -->封装性

目前,声明属性时,都使用缺省。

  • 局部变量:不可以使用权限修饰符。

默认初始化值的情况:

  • 属性:类的属性,根据其类型,都有默认初始化值。
  • 整形(byte、short、int、long) = 0
  • 浮点型(float、double) = 0.0
  • 字符型(char) = 0(或‘\u000’)
  • 布尔型(boolean) = false
  • 引用数据类型(类、数组、接口) = null
  • 局部变量:没有初始化值。

意味着,我们在调用局部变量之前,一定要显示赋值。特别地:形参在调用时,我们赋值即可

在内存中加载的位置:

  • 属性:加载在堆空间中(非static)
  • 局部变量:加载在栈空间
public class UserTest {

}
class User{
    //属性(成员变量)
    String name;
    int age;
    boolean isMale;
    public void talk(String language){//language:形参
        System.out.println("我们使用"+language+"进行交流");
    }
    public void eat(){
        String food = "小笼包";//局部变量
        System.out.println("User爱吃"+food);
    }
}