- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java--static关键字的
static关键字如果使用一个类则会在实例化对象时分别开辟栈内存及堆内存,在堆内存中要保存对象中的属性,每个对象都有自己的属性,如果你现在有些属性希望被共享,则就必行将其声明为static属性,而且一个属性声明为static属性,可以直接使用类名称进行调用,如果一个类中的方法想由类调用,则可以声明为static方法。使用static声明属性如果程序中使用static声明属性,则属性成为全局属性(有些也称为静态属性),那么声明为全局属性到底有什么用吶?观察以下代码:class Person{// 定义Person类String name ;// 定义name属性,暂时不封装int age ;// 定义age属性,暂时不封装String country = A城 ;// 定义城市属性,有默认值public Person(String name,int age){this.name = name ;this.age = age; }public void info(){// 得到信息System.out.println(姓名: + this.name + ,年龄: + this.age + ,城市: + country) ;}};public class StaticDemo01{public static void main(String args[]){Person p1 = new Person(张三,30) ; // 实例化对象Person p2 = new Person(李四,31) ; // 实例化对象Person p3 = new Person(王五,32) ; // 实例化对象p1.info() ;p2.info() ;p3.info() ;}};运行结果:姓名:张三,年龄:30,城市:A城姓名:李四,年龄:31,城市:A城姓名:王五,年龄:32,城市:A城以上代码,为了观察方便没有使用private关键字进行封装。以上的程序是一个简单的程序,但是代码中有些不妥之处。实际上,如果现在假设此城市不叫A城,而改为了B城,而且此类产生了200个对象,那么就意味着要把这些对象的城市属性全部修改一边。这样显然是不行的。最好的方法是修改一次就可以,此时可以把城市属性使用static关键字进行声明,将其变为公共属性。使用static声明属性:class Person{// 定义Person类String name ;// 定义name属性,暂时不封装int age ;// 定义age属性,暂时不封装static String country = A城 ;// 定义城市属性,有默认值,staticpublic Person(String name,int age){this.name = name ;this.age = age; }public void info(){// 得到信息System.out.println(姓名: + this.name + ,年龄: + this.age + ,城市: + country) ;}};public class StaticDemo02{public static void main(String args[]){Person p1 = new Person(张三,30) ; // 实例化对象Person p2 = new Person(李四,31) ; // 实例化对象Person p3 = new Person(王五,32) ; // 实例化对象System.out.println(--------------- 修改之前 -------------) ;p1.info() ;p2.info() ;p3.info() ;p1.country = B城 ;// 修改static属性System.out.println(--------------- 修改之后 -------------) ;p1.info() ;p2.info() ;p3.info() ;}};运行结果:--------------- 修改之前 -------------姓名:张三,年龄:30,城市:A城姓名:李四,年龄:31,城市:A城姓名:王五,年龄:32,城市:A城--------------- 修改之后 -------------姓名:张三,年龄:30,城市:B城姓名:李四,年龄:31,城市:B城姓名:王五,年龄:32,城市:B城从程序的运行结果和代码可以看出,只修改了一个对象的城市属性,则全部对象的城市属性内容都发生了变化,说明使用static声明的属性是所有对象共享的。PS:Java中常用的内存区域:栈内存空间:保存所有的对象名称(更准确的说是保存了引用的堆内存空间的地址)堆内存空间:保存每个对象的具体属性
您可能关注的文档
- 批处理常用命令帮助新译.docx
- 技术日志1——jdk5.0新特性.doc
- 高三计算机期中试卷.doc
- JAVA语言课时授课计划02.doc
- J2EE讲义1-概述.ppt
- 单靠单招vb复习资料.doc
- 面向对象程序设计参考资料(计专、软专).doc
- 黄靖嵌入式系统实习报告.doc
- chp3 继承.ppt
- 编写一个学生和教师相关数据输入和显示程序.doc
- 2026年消防设施操作员之消防设备基础知识考试题库500道带答案(新).docx
- 销售岗前培训课件.ppt
- 2026年消防设备操作员考试题库500道(典型题).docx
- 2026年消防设施操作员之消防设备高级技能考试题库300道附答案(实用).docx
- 2026年消防设施操作员之消防设备高级技能考试题库300道标准卷.docx
- 2026年材料员之材料员基础知识考试题库300道附完整答案(全优).docx
- 2026年材料员之材料员基础知识考试题库300道带答案(培优a卷).docx
- 2026年机械员考试题库含答案(轻巧夺冠).docx
- 2026年材料员之材料员基础知识考试题库300道【夺分金卷】.docx
- 2026年期货从业资格之期货法律法规考试题库500道(考点精练).docx
文档评论(0)