zoukankan      html  css  js  c++  java
  • 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("我是静态代码块");
       }
    }

    运行结果:

    我是静态代码块

    我是构造代码块

    我是普通代码块

  • 相关阅读:
    值得收藏的146条经典民间偏方[转]
    删除暴风文件夹内的stormliv.exe
    【转】VLAN技术浅谈
    [转载]双击.dsw文件时另开VC6.0,而不会关掉原来已打开的项目的解决办法(转载)
    JVM系列1:Java内存区域
    并发系列3:Lock锁以及核心类AQS
    并发系列1:并发基础知识
    JVM系列2:垃圾收集器与内存分配策略
    JVM系列3:类加载机制
    源码解析之AQS源码解析
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11165619.html
Copyright © 2011-2022 走看看