• Java 面向对象--代码块


    代码块主要就是通过{}花括号 括起来的代码;

    主要分为 普通代码块 构造块 静态代码块三类。后面学到线程还有一个同步代码块,到时候再说;

    普通代码块

    package com.java1234.chap03.sec07;
     
    public class Demo1 {
     
        public static void main(String[] args) {
            int a=1;
            /**
             * 普通代码块
             */
            {
                a=2;
                System.out.println("普通代码块");
            }
            System.out.println("a="+a);
        }
    }package com.java1234.chap03.sec07;
     
    public class Demo1 {
     
        public static void main(String[] args) {
            int a=1;
            /**
             * 普通代码块
             */
            {
                a=2;
                System.out.println("普通代码块");
            }
            System.out.println("a="+a);
        }
    }

    运行输出:

    普通代码块

    a=2

    构造块 构造块作用就是扩展构造器功能 每次实例化对象都会执行构造块里的内容:

    package com.java1234.chap03.sec07;
     
    public class Demo2 {
     
        /**
         * 构造块
         */
        {
            System.out.println("通用构造块!");
        }
         
        /**
         * 构造方法一
         */
        public Demo2(){
            System.out.println("构造方法一");
        }
         
        /**
         * 构造方法二
         */
        public Demo2(int i){
            System.out.println("构造方法二");
        }
         
        /**
         * 构造方法三
         */
        public Demo2(int i,int j){
            System.out.println("构造方法三");
        }
         
        public static void main(String[] args) {
            new Demo2();
            new Demo2(1);
            new Demo2(1,2);
        }
    }

    运行输出:

    通用构造块!

    构造方法一

    通用构造块!

    构造方法二

    通用构造块!

    构造方法三

     

    我们发现 每次调用构造方法 都会先执行 构造块

     

    静态代码块

    {}花括号前加static修饰词 在类加载的时候执行 而且只执行一次

    package com.java1234.chap03.sec07;
     
    public class Demo3 {
     
        /**
         * 静态代码块 类加载的时候执行
         */
        static{
            System.out.println("静态代码块!");  
        }
         
        /**
         * 构造块
         */
        {
            System.out.println("通用构造块!");
        }
         
        /**
         * 构造方法一
         */
        public Demo3(){
            System.out.println("构造方法一");
        }
         
        /**
         * 构造方法二
         */
        public Demo3(int i){
            System.out.println("构造方法二");
        }
         
        /**
         * 构造方法三
         */
        public Demo3(int i,int j){
            System.out.println("构造方法三");
        }
         
        public static void main(String[] args) {
            new Demo3();
            new Demo3(1);
            new Demo3(1,2);
        }
    }

    输出:

    静态代码块!

    通用构造块!

    构造方法一

    通用构造块!

    构造方法二

    通用构造块!

    构造方法三

  • 相关阅读:
    jvm 垃圾收集算法
    jvm 判断对象死亡
    jvm 内存分配
    jvm 对象奥秘
    mysql事务测试及delete和update是使用行级锁,还是表级锁
    sql语句中where后边的哪些条件会使索引失效 -- SQL语句优化
    java nio详解
    mysql数据库优化概述详解
    java 序列化和反序列化
    java io框架详解
  • 原文地址:https://www.cnblogs.com/xyg-zyx/p/9824303.html
Copyright © 2020-2023  润新知