14.类的static字段和非static字段的区别是什么?什么情况需要使用static字段?--一二熊猫

    科技2022-07-14  120

    static修饰符修饰的域变量不属于任何一个类的具体对象。它被保存在类的内存区的公共储存单元中,而不是保存在某个对象的内存区域内,因此,一个类的任何对象访问它的时候得到的数值都是相同的,方位的方式为“类名.域名”,也可以通过对象引用,来访问。 下面总结: 1.static方法是类的方法,但可以被所有的对象访问。调用这个方法是,可采用“对象引用.方法名”,也可以采用“类名.方法名”。 2.static方法内部的代码,只能访问类中的static属性或方法(因为他们属于对象);但非static方法(对象方法)可以访问static属性或方法。 3.main方法是特殊的静态方法。 例:

    import java .awt.; import java.applet.; class pc{ static double ad =8; } public class RunPc extends Applet{ public void paint(Graphic g) { Pc m =new Pc(); Pc m1=new Pc(); m.ad=0.1; g.drawString(“m1=”+m1.ad,20,50); g.drawString(“Pc=”+Pc.ad,20,70); g.drawString(“m=”+m.ad,20,90); } }

    那么什么时候使用static方法呢? 当对象中出现共享数据时,就一应该使用static修饰,这是一个很巧妙且常用的方法。

    补充: 静态代码块:在一个类当中可以有不包含在任何方法体当中的静态代码块,当类被装载的时候,(即代码编译的时候),静态代码块执行一次且只执行一次,静态代码块常用来对类中定义的属性进行初始化! 如:class StaticCodeBlock{ static int value; static{ value=3; System.out.println(“value=”+value); } public static void main(String []args){} }

    static静态代码块就是起到赋予初始值的任务!

    Processed: 0.013, SQL: 8