java静态方法和成员.docx

java静态方法和成员.docx

ID:62717658

大小:19.53 KB

页数:10页

时间:2021-05-17

java静态方法和成员.docx_第1页
java静态方法和成员.docx_第2页
java静态方法和成员.docx_第3页
java静态方法和成员.docx_第4页
java静态方法和成员.docx_第5页
资源描述:

《java静态方法和成员.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、java静态方法和成员1.静态方法:成员变量分为实例变量和静态变量。其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量。而静态变量被该类所有的对象公有(相当于全局变量),不需要实例化就已经存在。方法也可分为实例方法和静态方法。其中,实例方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用。与成员变量不同的是:无论哪种方法,在内存中只有一份——无论该类有多少个实例,都共用同一个方法。实例方法的调用:ClassAa=newClassA();//必须经过实例化a.instanceMethod();静态方法的调用:a.s

2、taticMethod();//无需经过实例化2.静态方法的声明和定义定义一个静态方法和定义一个实例方法,在形式上并没有什么区别,只是在声明的头部,需要加上一个关键字static。它的一般语法形式如下:[访问权限修饰符]static[返回值类型]方法名([参数列表]){语句序列}例如下面是一个静态的方法:publicstaticvoidstFun(){System.out.println("这是一个静态方法");}1.静态方法和实例方法的区别静态方法和实例方法的区别主要体现在两个方面:•在外部调用静态方法时,可以使用“类名.方法名”的方式,也可以使用“对象名.方法名”的方

3、式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。•静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。实例代码:静态方法访问成员变量示例classaccessMember{privatestaticintsa;//定义一个静态成员变量privateintia;//定义一个实例成员变量//正确,可以有//正确,静态方//正确,可以调用//错误,不能使//错误,不能调用实//正确,可以有自//正确,可以使用//下面定义一个静态方法staticvoidstatMethod()

4、{inti=0;自己的局部变量sa=10;法可以使用静态变量otherStat();静态方法ia=20;用实例变量insMethod();例方法}staticvoidotherStat(){}//下面定义一个实例方法voidinsMethod(){inti=0;己的局部变量sa=15;静态变量ia=30;//正确,可以使用实例变量statMethod();//正确,可以调用静态方法}}//endofclassaccessMember1.静态代码块在类中,可以将某一块代码声明为静态的,这样的程序块叫静态初始化段。静态代码块的一般形式如下:static{语句序列}•静态代码块

5、只能定义在类里面,它独立于任何方法,不能定义在方法里面。•静态代码块里面的变量都是局部变量,只在本块内有效。•静态代码块会在类被加载时自动执行,而无论加载者是JVM还是其他的类。•一个类中允许定义多个静态代码块,执行的顺序根据定义的顺序进行。•静态代码块只能访问类的静态成员,而不允许访问实例成员publicclassstaticBlock{//定义一个普通的main()方法publicstaticvoidmain(Stringargs[]){System.out.println("Thisismainmethod.");}//定义一个静态代码块static{System.

6、out.println("Thisisstaticblock.");intstVar=0;//这是一个局部变量,只在本块内有效}}编译通过后,用java命令加载本程序,会得到如下输出:Thisisstaticblock.Thisismainmethod.从以上输出结果中可以看出,静态代码块甚至在main方法之前就被执行。在main()方法中可以完成的任务在静态代码块中都可以完成。但是二者在执行上仍然有一些区别,main方法是整个程序启动的入口,而静态代码块是存在于某个类中的一个过程。1.静态成员变量Java允许以类作为静态成员变量的类型,那么静态成员变量就是一个对象。如果

7、是基本数据类型的静态成员变量,在类的外部可以不必创建对象就直接使用。但如果静态成员是对象,问题就要复杂得多。因为对象所属的类,既可能有静态成员,也可能有实例成员。而其中的实例成员必须要在对象实例化后才能使用,问题的核心在于:系统是否会为静态的类变量创建实例。//文件名supplyTest.javapublicclasssupplyTest{//定义一个静态方法供测试用publicstaticvoidstatShow(){System.out.println("这是静态方法");}//定义一个实例方法供测试用publicvoid

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。