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("我是静态代码块");
       }
    }

    运行结果:

    我是静态代码块

    我是构造代码块

    我是普通代码块

  • 相关阅读:
    MyEclipe 配置 ivy 插件
    PHP 向 MySql 中数据修改操作时,只对数字操作有效,非数字操作无效,怎么办?
    Hadoop 中 Eclipse 的配置
    Hadoop 配置好hive,第一次在conf能进入,第二次就不行了,怎么办?
    7系列FPGA远程更新方案-QuickBoot(转)
    Serial interface (RS-232)
    Linux下安装微信(转)
    《图解HTTP》读书笔记(转)
    《图解TCP/IP》读书笔记(转)
    7 Serial Configuration 理解(三)
  • 原文地址:https://www.cnblogs.com/dyddzhp/p/11165619.html
Copyright © 2011-2022 走看看