• Java 面向对象(三)类的成员 之 属性


    一、属性(成员变量)

      1、概念

        在类中声明的变量,用于描述类的状态信息。

      2、语法格式

    修饰符 数据类型 属性名 = 初始化值 ; 

        说明:

          (1)修饰符:常用的权限修饰符由:private、缺省、protected、public;其他修饰符:static、final(暂不考虑)

          (2)数据类型:任何基本数据类型(如int、Boolean)或任何引用数据类型;

          (3)属性名:符合命名规则和规范即可;

        Demo:

    1 public class Person {
    2    private int age;   //声明private变量 age
    3    public String name = "Lila";  //声明public变量name    
    4 }

    二、变量的分类:成员变量与局部变量

      方式一:按照数据类型

      

      方式二:按照在类中声明的位置

      (1)在方法体外,类体内声明的变量称为成员变量;

      (2)在方法体内部声明的变量称为局部变量。

         

                

         注意:二者在初始化值方面的异同:

          同:都有生命周期。

          异:局部变量除形参外,均需要显式初始化。      

    三、成员变量与局部变量的异同

      1、相同点

        (1)定义变量的格式:数据类型  变量名 = 变量值

        (2)先声明,后使用

        (3)变量都有其对应的作用域 

      2、不同点

        (1)在类中声明的位置不同

            成员变量:直接定义在类的一对{}内;

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

        (2)关于权限修饰符的不同

            成员变量:可以在声明属性时,指明其权限,使用权限修饰符。(常用的权限修饰符:private、public、缺省、protected )

            局部变量:不可以使用权限修饰符,唯一能加的是 final;

        (3)默认值不一样

            成员变量:如果没有赋值,会有默认值(见默认初始化值图);

            局部变量:没有默认值,必须先定义,显式赋值之后,才能使用;但是形参在调用的时候赋值即可;

        (4)在内存中加载的位置不同

              成员变量:直接加载到堆空间中(非static)

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

        (5)作用范围不一样

              成员变量:整个类都可以使用;

            局部变量:只有在声明的方法中才可以使用;

        (6)声明周期不一样

            成员变量:随着对象创建而产生,随着对象被垃圾回收而消失;

            局部变量:随着方法进栈而产生,随着方法出栈而消失;

          

    四、成员变量与局部变量的内存位置  

         

    五、对象属性的默认初始化赋值

      当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。

      除了基本数据类型之外的变量类型都是引用类型。

      

  • 相关阅读:
    Groovy Closure & Action
    Groovy A simple DSL based on groovy
    Groovy 一些小细节
    Android 那些年踩过的坑
    Android Startup
    Android 开发最佳实践
    Android 开发经验-容易忽略的问题
    Android 开发经验-Fragment相关
    AQTime + Delphi
    关于ANSI,unicode与utf-8的区别
  • 原文地址:https://www.cnblogs.com/niujifei/p/13662461.html
Copyright © 2020-2023  润新知