首页 > 编程语言 > 详细

Java学习笔记之---static

时间:2019-07-10 19:39:48      阅读:87      评论:0      收藏:0      [点我收藏+]

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是对象范畴的,而静态方法是类范畴的

(六)静态代码块

优先级:从低到高

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

运行结果:

我是静态代码块

我是构造代码块

我是普通代码块

Java学习笔记之---static

原文:https://www.cnblogs.com/dyddzhp/p/11165619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!