A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0416_张威 中级黑马   /  2015-5-4 21:57  /  578 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态:static。
用法:是一个修饰符,用于修饰成员(成员变量,成员方法)。
     当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,
     还可以直接被类名调用。格式: 类名.成员。
  static 特点:
     1 随着类的加载而加载(反之,也随着类的消失而消失)
     2 优先于对象存在
     3 被所有对象所共享
     4 可以直接被类名调用
  实例变量(即成员变量)和类变量(即静态的成员变量)的区别
            1 存放位置的区别
                  类变量随着类的加载而存在于方法区中。
                  实例变量随着对象的建立而存在于堆内存中。
            2 生命周期
                  类变量生命周期最长,随着类的消失而消失。
                  实例变量生命周期随着对象的消失而消失。
  静态使用注意事项:
            1、静态方法只能访问静态成员。
                          非静态方法既可以访问静态成员也可以访问非静态成员。
            2、静态方法中不可以定义this、super关键字。
                          因为静态优先于对象存在。所以不可以出现this等字样。
  静态的优缺点:
            优点:1、对于对象的共有数据进行单独空间存储,节省空间。没有必要在每一个对象中都存储共有的数据。
                   2、 可以直接被类名调用。
           缺点: 1、生命周期过长,随着类的消失而消失。
                   2、访问具有局限性。(静态方法只能访问静态成员)
  为什么要使用静态:
                  如果某个内容是被所有对象所共享,那么该内容就应该用静态来修饰。
                 没有用静态修饰的内容其实是属于对象的特殊描述。
什么时候使用静态:
                因为静态修饰的有成员变量和成员方法,所以要从两方面来分析。
                1、什么时候定义静态变量(类变量)?
                        当对象中出现共享数据时,该数据被静态修饰。
                        对象中的特有数据要定义成非静态存在于堆内存中。
                2、什么时候定义静态方法?
                        当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。
  

7 个回复

正序浏览
谢谢给的总结 自己感觉好乱的
回复 使用道具 举报
谢,,,,,,,,,,,,,,,,,,,
回复 使用道具 举报
1017161726 来自手机 中级黑马 2015-5-4 23:34:31
地板
看来你理解了
回复 使用道具 举报
已贴到本地,谢谢分享
回复 使用道具 举报
学习了亲  谢谢你的分享
回复 使用道具 举报
谢谢分享。
回复 使用道具 举报
:victory,,,,,,,,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马