zoukankan      html  css  js  c++  java
  • static修饰符

    static修饰符
    静态的,被static修饰的东西,就是静态的,那么就是属于类的(用类名.静态资源的形式来访问)
    在类创建的时候被创建。
    1.静态的东西属于类--》导致了 在静态方法中不能使用this关键字
    非静态的东西属于对象
    2.修饰成员变量:private static int age;
      修饰成员方法:public static void
      修饰代码块:static{}
    类加载时,先执行静态代码块,再非静态,最后构造器。
    3.静态代码块和非静态的区别:
    静态代码块:在类加载的时候回调一次,只调用一次,(第一次加载类时,执行静态代码块,后续实例对象操纵静态资源,是同一个,且静态代码块不再被调用)
    4.static变量和实例变量的区别:
    1.)static变量属于类,为所有对象所共享,实例变量是属于对象,每个类的每个实例都有一份,互不干涉。
    2)jvm在类加载时已经为static变量分配内存,
    而实例变量是在类加载之后创建对象的时候分配内存
    3)static变量存在方法区,实例变量存在堆区
    4)static变量通过类名.方法名来调用,实例变量通过类名.方法名来调用
    5.class Prople{
                        public static int age;
                    }
                    class T{
                        public static void main(String msg[]){
                            Prople p1 =new Prople();
                            Prople p2 =new Prople();
                            Prople p3 =new Prople();
                            p1.age++;
                            System.out.println(p1.age);
                            p2.age++;
                            System.out.println(p2.age);
                            p3.age++;
                            System.out.println(p3.age);
                        }
                    }//结果为 1 2 3(静态成员变量初始化为0)
     通过定义一个static int 变量,计算该类被创建了多少次
    6.静态方法:
    静态方法不能直接调用非静态的资源,
    静态方法可以直接调用其他的静态资源,
    静态方法中不能使用this/super关键字
    [静态方法必须被实现]:静态方法用来表示类的特有的功能,这种功能
    的实现不依赖于类的具体实例,也不依赖它的子类。
    7. 静态代码块里的变量都是局部变量,只在当前代码块内有效。
     静态代码块只能访问类的静态成员,而不允许[直接]访问实例成员。
     【静态代码块用来给静态变量赋初始值】。
    静态代码块主要用于类的初始化。它只执行一次,并在main函数之前执行。



  • 相关阅读:
    .NET控件ZedGraph使用帮助
    .NET多线程编程(转)
    DataTable 添加列、设置主键、添加行、查询、更新
    一个有用的Windows服务小程序——用来完成Server端的Socket通信[转载]
    (周星驰版)学习委托的最好实例 (转载+自己补充了注释)
    这样写
    DataTable添加列和行的方法
    简单工厂之简单模型(uml)
    学了delegate委托还有event事件的联系,基本学明白了。先总结一下吧。[转载]
    HDU_1240——三维空间DFS
  • 原文地址:https://www.cnblogs.com/yxj808/p/11960908.html
Copyright © 2011-2022 走看看