1.4.1.1成员变量和局的部变量.pptx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.4.1.1成员变量和局的部变量

Java 基础篇 成员变量和局部变量 在Java语言中,根据定义变量的位置不同,可以将变量分为两大类:成员变量和局部变量。 成员变量与局部变量运行机制存在较大的差异。 成员变量指的是在类范围里定义的变量; 局部变量指的是在方法里定义的变量。 变量命名:多个有意义的单词连缀而成, 其中第一单词首字母小写,后面每个单词首字母大写, 成员变量被分为类属性和实例属性两种,定义属性时没有static修饰的就是实例属性,有static修饰的就是类属性。 其中类属性从这个类的准备阶段起开始存在,直到系统完全销毁这个类,类属性的作用域与这个类的生存范围相同;而实例属性则从该类的实例被创建起开始存在,直到系统完全销毁这个实例,实例属性的作用域与对应实例的生存范围相同。 访问方法: 只要类存在,程序就可以访问该类的类属性。语法格式:类.类属性 只要实例存在,程序就可以访问该实例的实例属性。语法格式:实例.实例属性 类属性的作用域比实例属性的作用域更大,实例属性随实例的存在而存在,而类的属性则随类的存在而存在,实例也可以访问类的属性,同一个类的所有实例访问类属性时,实际上访问是同一个类属性,因此他们实际上都是访问到该类的类属性。 局部变量根据定义形式的不同,可以分为如下三种: 形参:在定义方法签名时定义的变量,形参的作用域在整个方法内有效。 方法局部变量:在方法体内定义的局部变量,它的作用域是从定义该变量的地方生效,到该方法结束时失效。 代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域从定义该变量的地方生效,到该代码块结束时失效。 与成员变量不同的是,局部变量除了形参之外,都必须显示的初始化。也就是说,必须先给方法局部变量和代码块局部变量指定初始值,否则不可以访问它们。 Java允许局部变量和成员变量同名,如果方法里的局部变量和成员变量同名,局部变量会覆盖成员变量,如果需要在这个方法里引用被覆盖的成员变量,则可使用this(对于实例属性)或类名(对于类属性)作为调用者来限定访问成员变量。 一个类里不能定义两个同名的成员变量,即使一个是类属性,一个是实例属性也不行;一个方法里不能定义两个同名的局部变量,即使一个是方法局部变量,一个是代码局部变量都形参也不行。 变量的使用规则 对于Java初学者而言,何时应该使用类属性?何时应该使用实例属性?何时应该使用方法局部变量?何时应该使用代码块局部变量?这种选择比较困难,如果仅就程序的运行结果来看,大部分时间都可以直接使用类属性或者实例属性来解决问题,无须使用局部变量。但实际上这种做法肯定是错误的,因我们定义一个成员变量时,成员变量被放置在堆内存中,成员变量作用域将扩大到类存在范围或者对象存在的范围,这种范围扩大有两个害处: 增大了变量的生存时间,这将导致更大的系统开销 扩大了变量的作用域,这不得于提高程序的内聚性 程序中使用局部变量,也应该尽可能地缩小局部变量的作用范围,局部变量的作用范围越小,它在内存里停留时间就越短,程序运行性能越好,因此,能用代码块局部变量的地方,就坚决不要使用方法局部变量。

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档