黑马程序员技术交流社区

标题: 认识静态变量和静态函数 [打印本页]

作者: 阿牛    时间: 2012-3-19 13:21
标题: 认识静态变量和静态函数
static可以修饰成员变量和成员函数,被static定义的成员变量和函数随着类的加载而加载。
静态成员变量能够被类直接调用,它能在该类对象创建前被访问,而不用引用任何对象,声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共同拥有一个static变量。
静态函数有以下限制: 它们仅能调用其他的static 方法。它们只能访问static数据。它们不能以任何方式引用this 或super。

另外,关于加载顺序:类,类中静态变量,静态代码块,构造函数

下面例子验证了静态成员变量和函数的用法,注释的都是编译报错的部分。
class staticDemo
{
        static int a=3;       
        static int b=2+a;
        staticDemo(String msg)
        {
                System.out.println(msg);
        }
         void math(int x)
        {
                System.out.println("a "+a);
                System.out.println("b "+b);
                System.out.println("x "+x);
        }
        static
        {               
                System.out.println("b "+b);

                System.out.println("static bloc initialized");

                b=4*a;
        }
}
class staticDemo1
{
        int q=4;
        public void show()
        {
                System.out.println("show run");
        }
       
        public static void main(String [] a)
        {
               
                new staticDemo("constructor initialized").math(20);/*如果math方法是静态的,
                那么可以staticDemo.math(20);*/

                //System.out.println("a "+a);
                System.out.println("a "+staticDemo.a);

                //        System.out.println("q "+q);       
                System.out.println("q "+new staticDemo1().q);

                //show();
                new staticDemo1().show();

        }
       
       
}
作者: 马云    时间: 2012-3-19 14:20
学习了,总结的不错吗,
作者: OMG    时间: 2012-3-19 14:38
{:soso_e185:}继续努力




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