• Java学习笔记之---static


    Java学习笔记之---static

    static不能修饰类,局部变量

    (一)静态成员的特征  

    static+属性  静态属性

    1. 无论实例化出来多少个对象,都会共用同一块静态空间,类对象共享
    2. 静态成员从第一次被加载之后一直到这个类不再有任何对象被使用,也就是说被彻底的销毁的时候,才会进行资源的释放,生命周期长
    public class Pig {
        String name;
       static int price;
    }
    class PigTest{
        public static void main(String[] args){
            Pig a=new Pig();
            a.name="小乳猪";
            a.price=1000;
            Pig b=new Pig();
            b.name="宠物猪";
            b.price=500;
            System.out.println(a.name+":"+a.price);
            System.out.println(b.name+":"+b.price);
        }

    运行结果:

    小乳猪:500

    宠物猪:500

    (二)静态成员访问方法
    1. 对象名.成员
    2. 类名.成员  (推荐使用) 静态的访问方法
    (三)静态方法(类方法)

            static+方法

    (四)静态方法的调用
    1. 对象名.方法
    2. 类名.方法
    (五)总结

    1.静态方法中不能直接访问同一个类中的非静态成员,可以通过实例化对象进行调用;只能直接调用同一个类中静态成员,

    2.静态方法中不能使用this和super,this和super是对象范畴的,而静态方法是类范畴的

    3.父类中的静态方法不能被子类重写

    (六)静态代码块

    优先级:从低到高

    1. 普通代码块:顺序执行,先出现,先执行
    2. 构造代码块:创建对象时调用,优先于构造方法执行
    3. 静态代码块:类加载时调用,优先于构造代码块执行
     
     public class Pig {
    
        String name;
    
       static int price;
    
       public void eat(String name,int price){
    
          this.price=price;
    
          this.name=name;
    
       }
    
       public void run(){
    
           System.out.println("我是普通代码块");
    
       }
    
        {
    
            System.out.println("我是构造代码块");
    
        }
    
       static{
    
           System.out.println("我是静态代码块");
       }
    }

    运行结果:

    我是静态代码块

    我是构造代码块

    我是普通代码块

  • 相关阅读:
    关于C#中timer类 (转)
    AutoResetEvent (转)
    给韬哥的回复
    sql中的case when 的用法涉及到大于小于号
    vba中获取当前日期
    vba中的小技巧
    sql server2000中的两个整数相除保留十位小数
    vba中新建文件,关闭文件,锁屏,覆盖同名文件
    无法切换到google.com的解决办法
    mysql 常用命令
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11165619.html
Copyright © 2020-2023  润新知