text: 成员变量：在类范围里定义的变量。成员变量又分为实例属性（不用static修饰）和类属性（用static修饰）。类属性和实例属性统称为成员变量。
  类属性在类的准备阶段开始存在，直到系统销毁这个类，类属性与类的生存范围相同。实例属性从类的实例被创建开始存在，直到系统销毁这个实例，实例属性与对应实例生存范围相同。
  成员变量无须显式初始化，只要定义了类属性和实例属性，则系统会在这个类的准备阶段或创建类的实例时进行默认初始化。实例也可访问类属性，同一个类的多个实例访问类属性时，实际上访问的是同一个类属性，访问的都是该类的属性。
  局部变量：在方法内定义的变量。局部变量分为形参（方法签名中定义的变量）、方法局部变量（在方法内定义的变量）和代码块局部变量（在代码块中定义的变量）。
  形参作用域在整个方法内有效。方法局部变量在方法体内的定义的地方开始有效，到方法结束时失效。代码块局部变量，从定义该变量的地方生效，到该代码块结束时失效。
  局部变量除形参外，都必须显式初始化（指定初始值）之后才能访问，否则将出错。（形参的初始化在调用该方法时由系统完成）
  不能无限制的定义成员变量。当定义一个成员变量是，成员变量将被放置到堆内存中去，成员变量的范围将扩大到类存在范围或者对象存在范围，这种范围的扩大有两个害处：
  1、增大了变量的生存时间，将导致更大的系统开销；
  2、扩大了变量的作用域，不利于提高程序的内聚性。
  以下情形，应该考虑使用成员变量：
  1、需要定义的变量用于描述某个类或某个对象的固有信息，这种变量应定义为成员变量。如果这种信息对这个类的所有实例完全相同，或者说它是类相关的即类的属性性质变，该类的所有实例的性质也同样改变，这种类相关的信息应该定义为类属性（static修饰）；如果这种信息是实例相关的，即不同的实例，实例的信息可能不同，这种实例相关的信息应该定义成实例属性（不用static修饰）。
  2、在类中，需要定义一个变量来保存该类或者实例运行时的状态信息，这种用于保存某个类，或者某个实例状态信息的变量通常应该定义为成员变量。
  3、如果某个信息需要在某个类的多个方法之间进行共享，则这个信息应该用成员变量来保存。
  即使在程序中使用局部变量，也应该尽可能地缩小局部变量的作用范围，局部变量的作用范围越小，它在内存里停留的时间就越短，程序运行性能越好。