zoukankan      html  css  js  c++  java
  • java===局部代码块;构造代码块;静态代码块

    局部代码块:
    作用:控制变量的生命周期;
    在程序中,当我们已经使用完 x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用 局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失。
    表现形式,以代码体现如下:
    [java] view plain copy print?
    class TestDemo  
    {  
        public static void main(String[] args)  
        {  
            {  
                int x = 9;  
                System.out.println(x);  
            }  
      
            System.out.println("Hello World !");  
        }  
    }  
    构造代码块:
    作用:它可以给所有对象进行初始化
    存在于:类中。
    当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化;这样可以减少代码的重复!
    [java] view plain copy print?
    class Person  
    {  
        private String name;  
        private int age;  
      
        {  
            System.out.println("cons code run !");  
              
        }   
      
        Person() // 给对应的对象进行初始化  
        {  
            System.out.println("Person Now:RUN !");  
            System.out.println("eat————");  
        }  
      
        Person (String name , int age)  
        {  
            this.name = name ;  
            this.age= age;  
            System.out.println(this.name + "————" + this.age);  
            System.out.println("eat————");  
        }  
          
    }  
    class ConsCodeDemo  
    {  
        public static void main(String[] args)  
        {  
            Person p = new Person();  
            Person p1 = new Person("LiSi" , 23);  
        }  
    }  
    我们可以看到类Person中 重载的构造方法中有共同的代码System.out.println("eat————");我们可以将他封装进构造代码块,用来给各种进行初始化。
    优化后,代码体现为:
    [java] view plain copy print?
    class Person  
    {  
        private String name;  
        private int age;  
      
        {  
            System.out.println("cons code run !");  
            eat();  
              
        }   
      
        Person() // 给对应的对象进行初始化  
        {  
            System.out.println("Person Now:RUN !");  
        }  
      
        Person (String name , int age)  
        {  
            this.name = name ;  
            this.age= age;  
            System.out.println(this.name + "————" + this.age);  
        }  
        public void eat()  
        {  
            System.out.println("eat————");  
        }  
          
    }  
    class ConsCodeDemo  
    {  
        public static void main(String[] args)  
        {  
            Person p = new Person();  
            Person p1 = new Person("LiSi" , 23);  
        }  
    }  
    
    静态代码块:
    特点:
    1. 随着类的加载而执行,而且只一次。
    2. 优先于主函数执行。
    
    作用:给类进行初始化。
    当类中的方法都被静态了化,并且构造方法被private了,这是我们不能,在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块:
    表现形式,以代码体现如下:
    [java] view plain copy print?
    class StaticCode  
    {  
        static   
        {  
            System.out.println("A");  
        }  
        public void show()  
        {  
            System.out.println("Hello World !");  
        }  
    }  
    class StaticCodeDemo  
    {  
        static   
        {  
            System.out.println("B");  
        }  
        public static void main(String[] args)  
        {  
            new StaticCode().show();  
        }  
        static  
        {  
            System.out.println("C");  
        }  
    }  
  • 相关阅读:
    消息中间件(一)MQ详解及四大MQ比较
    SIP协议
    PAT (Basic Level) Practice 1008 数组元素循环右移问题
    LeetCode-Algorithms 1. 两数之和
    PAT (Basic Level) Practice 1040 有几个PAT
    PAT (Basic Level) Practice 1023 组个最小数
    PAT (Basic Level) Practice 1021 个位数统计
    PAT (Basic Level) Practice 1007 素数对猜想
    PAT (Basic Level) Practice 1006 换个格式输出整数
    PAT (Basic Level) Practice 1004 成绩排名
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6542174.html
Copyright © 2011-2022 走看看