黑马程序员技术交流社区

标题: 总结毕老师视频中的静态static [打印本页]

作者: 枪杆不如笔杆    时间: 2015-1-14 20:29
标题: 总结毕老师视频中的静态static
昨天看完了基础视频里的static静态方面的内容,现在在这里总结下,大家帮我看看还有那些地方没有说到的或说错的

static 是静态成员的修饰符关键字,而且照毕老师的说法,static只能是修饰成员的,即只能修饰类中的成员变量和成员函数的,而不能修饰局部变量如:方法中定义的变量。
被static修饰的成员最大的特点就是不用将此类实例化就能直接使用,这里毕老师就说了关于另一个内存空间:方法区或共享区、数据区的概念,貌似这个区域很牛B和什么栈区、堆区不同的是这里的存放的东西的生命周期和类是一样的,当类被定义静态成员就已经存在于这个空间当中了,所以更本不需要将类实例化就可以直接使用期静态成员,其特点就是
1)随着类的加载而加载,随着类的消失而消失
2)优先于对象的存在
3)可以直接被类所调用
4)可以被所用对象所共享
而之所以用到static成员主要是解决两个问题,一个是实现内存的共享,每个对象都有的且相同的数据和方法不必要重复存储,另一个就是方便使用,不需要每次都实例化一个对象在对期进行操作,简化了代码。
静态成员和一般的成员是不一样的他们是有一定限制的
1)静态方法是不能访问非静态成员的,除非实例化
2)静态方法中是不能有this和super(不知道什么关键字)

静态用到的地方就是他有优势的地方1)被对象所共享的数据就定义为静态 2)变量不会被对象使用到时可以定义为静态,接生空间,我想到private修饰的成员
另外要注意一点的是static用得最多的地方是在工具类中HelpTool,工具类的成员几乎都是static的,为的就是成为公共的方法类,所以不需要实例化就可以使用,这样一般情况下工具类是不需要构造函数的,所以将工具类的构造函数显示定义出来并且将其私有化不让外界掉用就显得很有必要了,
如:
TooClass class {
     pravite void ToolClass();
     staitc ...
}

今天接着看后面的东西,貌似越到后面越难学啊,幸亏有C#的简单基础,以上那里有说错的请大家指出来一起学习,很多都东西也是在看视频的时候才注意的,之前都不太懂,大家多多海涵呐,继续




作者: 枪杆不如笔杆    时间: 2015-1-14 20:32
不好意思类定义写反了应该是class TooClass {}
作者: eli0827    时间: 2015-1-14 23:30
总结的不错,支持一下!!!
作者: 探寻者    时间: 2015-1-14 23:42
复习了一遍,主持楼主。。。
作者: 以利亚    时间: 2015-1-15 10:38
感谢分享,写的很好!
作者: 枪杆不如笔杆    时间: 2015-1-15 22:31
其实对于static我最大的感受就是终于明白了工具类是怎么写的,在C#中也是一样的,之前总是看到调用的类中都是用static修饰的
作者: 魅影惊鸿    时间: 2015-1-15 22:52
总结的不错
作者: xiajie    时间: 2015-1-15 23:39
基本上挺全面的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2