温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

好程序员Java分享成员变量和局部变量

发布时间:2020-08-25 18:25:24 来源:网络 阅读:149 作者:wx5da18b5c4b01e 栏目:编程语言

好程序员Java分享成员变量和局部变量,成员变量:在类范围里定义的变量。成员变量又分为实例属性(不用static修饰)和类属性(用static修饰)。类属性和实例属性统称为成员变量。


  类属性在类的准备阶段开始存在,直到系统销毁这个类,类属性与类的生存范围相同。实例属性从类的实例被创建开始存在,直到系统销毁这个实例,实例属性与对应实例生存范围相同。


  成员变量无须显式初始化,只要定义了类属性和实例属性,则系统会在这个类的准备阶段或创建类的实例时进行默认初始化。实例也可访问类属性,同一个类的多个实例访问类属性时,实际上访问的是同一个类属性,访问的都是该类的属性。


  局部变量:在方法内定义的变量。局部变量分为形参(方法签名中定义的变量)、方法局部变量(在方法内定义的变量)和代码块局部变量(在代码块中定义的变量)。


  形参作用域在整个方法内有效。方法局部变量在方法体内的定义的地方开始有效,到方法结束时失效。代码块局部变量,从定义该变量的地方生效,到该代码块结束时失效。


  局部变量除形参外,都必须显式初始化(指定初始值)之后才能访问,否则将出错。(形参的初始化在调用该方法时由系统完成)


  不能无限制的定义成员变量。当定义一个成员变量是,成员变量将被放置到堆内存中去,成员变量的范围将扩大到类存在范围或者对象存在范围,这种范围的扩大有两个害处:


1、增大了变量的生存时间,将导致更大的系统开销;


2、扩大了变量的作用域,不利于提高程序的内聚性。


  以下情形,应该考虑使用成员变量:


1、需要定义的变量用于描述某个类或某个对象的固有信息,这种变量应定义为成员变量。如果这种信息对这个类的所有实例完全相同,或者说它是类相关的即类的属性性质变,该类的所有实例的性质也同样改变,这种类相关的信息应该定义为类属性(static修饰);如果这种信息是实例相关的,即不同的实例,实例的信息可能不同,这种实例相关的信息应该定义成实例属性(不用static修饰)。


2、在类中,需要定义一个变量来保存该类或者实例运行时的状态信息,这种用于保存某个类,或者某个实例状态信息的变量通常应该定义为成员变量。


3、如果某个信息需要在某个类的多个方法之间进行共享,则这个信息应该用成员变量来保存。


  即使在程序中使用局部变量,也应该尽可能地缩小局部变量的作用范围,局部变量的作用范围越小,它在内存里停留的时间就越短,程序运行性能越好。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI