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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hello_Boys 中级黑马   /  2014-12-28 23:19  /  1605 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


static:可修饰变量(属性);可修饰方法;可修饰代码块。
Static int data语句说明data为类变量,为一个类的共享变量,属于整个类。
Int data为实例变量。
例:
static int data;
m1.data=0;
m1.data++的结果为1,此时m2.data的结果也为1。
Static定义的是一块为整个类共有的一块存储区域,其发生变化时访问到的数据都时经过变化的。
其变量可以通过类名去访问:类名.变量名。与通过访问对象的编译时类型访问类变量为等价的。

Public static void printData(){}
表明此类方法为类方法(静态方法)
静态方法不需要有对象,可以使用类名调用。
静态方法中不允许访问类的非静态成员,包括成员的变量和方法,因为此时是通过类调用的,没有对象的概念。This.data是不可用的。

一般情况下,主方法是静态方法,所以可调用静态方法,主方法为静态方法是因为它是整个软件系统的入口,而进入入口时系统中没有任何对象,只能使用类调用。

覆盖不适用于静态方法。
静态方法不可被覆盖。(允许在子类中定义同名静态方法,但是没有多态,严格的讲,方法间没有多态就不能称为覆盖)
当static修饰代码块时(注:此代码块要在此类的任何一个方法之外),那么这个代码块在代码被装载进虚拟机生成对象的时候可被装载一次,以后再也不执行了。
一般静态代码块被用来初始化静态成员。

Static通常用于Singleton模式开发:
Singleton是一种设计模式,高于语法,可以保证一个类在整个系统中仅有一个对象。

评分

参与人数 1黑马币 +2 收起 理由
杨佳名 + 2

查看全部评分

6 个回复

倒序浏览
学习了。。。。。。。。
回复 使用道具 举报
受教了...............
回复 使用道具 举报
学习了!谢谢楼主分享!
回复 使用道具 举报
好详细啊。。。
回复 使用道具 举报
赞一个                                 
回复 使用道具 举报
reyzarc 中级黑马 2014-12-29 23:29:44
7#
总结不错。谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马