• 成员变量与局部变量


    在Java语言中,根据定义变量位置的不同,可以将变量分为两大类:成员变量和局部变量。 
    成员变量包括实例Field(不以static修饰)和类Field(以static修饰)两种。

    成员变量无须显示初始化,只要为一个类定义了类Field或实例Field,系统会在这个类的准备阶段

    或创建该类的实例时进行默认初始化,成员变量默认初始化时的赋值规则与数组动态初始化时数组元素的

    赋值规则完全相同。

    局部变量

    局部变量根据定义形式的不同,又可以分为如下三种:
    1.形参:在定义方法签名时定义的变量,形参的作用域在整个方法内有效。
    2.方法局部变量:在方法体内定义的局部变量,他的作用域从定义该变量的地方生效,

    到该方法结束时失效。
    3.代码块局部变量:在代码块中定义局部变量,这个局部变量的作用域从定义该变量的地方生效,

    到该代码块结束时失效。

    与成员变量不同的是,局部变量除了形参之外,必须显示初始化。也就是说,必须先给方法局部变量和代码块局 部变量指定初始值,否则不可以访问它们。

    变量的几个特点

    1,在同一个类里,成员变量的作用范围是整个类内有效,一个类里不能定义两个同名的成员变量,

    即使一个是类Field,一个是实例Field也不行;
    2,一个方法里不能定义两个同名的方法局部变量,方法局部变量与形参也不能同名;
    3,同一个方法中不同代码块局部变量可以同名;
    4,如果先定义代码块局部变量,后定义方法局部变量,前面定义的代码块局部变量与

    后面定义的方法局部变量也可以同名。
    5,Java允许局部变量和成员变量同名,如果方法里的局部变量和成员变量同名,局部变量会覆盖成员变量,

    如果需要在这个方法里引用被覆盖的成员变量,则可使用this(对于实例Field)或类名(对于类Field)

    作为调用者来限定访问成员变量。 

    变量的使用规则 

    即使在程序中使用局部变量,也应该可能地缩小局部变量的作用范围,局部变量的作用范围越小,它在内存里停 留的时间就越短,程序运行性能就越好。因此,能用代码块局部变量的地方,就坚决不要使用方法局部变量。

    如果有如下几种情形,则应该考虑使用成员变量。
    1.某个变量是用于描述某个类或者某个对象固有的信息,我们可以将它定义为成员变量;
    如果这个变量

    跟类相关的,我们需定义为类成员变量;与实例相关的,我们需定义为实例成员变量。 

    2.在某个类中需要以一个变量来保存该类或者实例运行时的状态信息 
    3.如果某个信息需要在某个类的多个方法之间进行共享,则这个信息应该使用成员变量来保存 


  • 相关阅读:
    洗礼灵魂,修炼python(48)--巩固篇—模块
    洗礼灵魂,修炼python(48)--巩固篇—模块
    洗礼灵魂,修炼python(48)--巩固篇—模块
    Excel中拆分列
    Excel中拆分列
    Excel中拆分列
    Excel中拆分列
    Eclipse新建类的时候如何自动添加注释(作者,时间,版本等信息)
    Eclipse新建类的时候如何自动添加注释(作者,时间,版本等信息)
    用golang实现DDOS攻击网站
  • 原文地址:https://www.cnblogs.com/t0404/p/10291104.html
Copyright © 2020-2023  润新知