2022/07/27 学习笔记 (day17) 代码块和内部类

本文介绍了Java中的代码块,包括普通代码块、实例代码块、静态代码块及其执行顺序。同时,详细讲解了嵌套类和内部类,如静态嵌套类、匿名内部类,并探讨了面向对象的设计原则。此外,还提到了单例模式和Java 8的箭头函数。
摘要由CSDN通过智能技术生成

 目录

 一.代码块: 

        1.普通代码块:

        2.实例代码块(构造代码块):

        3.静态代码块:

        4.代码块执行顺序:

二.嵌套类和内部类:

       1. 嵌套类分为两种类型:

        2.在外部类中定义内部类:

        3.在方法中定义内部类:

        4.匿名内部类:

 三.思维导图:


 一.代码块: 

        在Java中,使用{}括起来的代码被称为代码块

        1.普通代码块:

    1、普通代码块定义在方法体中
    2、普通代码块与构造代码块的格式一致都是{}
    3、普通代码块与构造代码块唯一能直接看出的区别是构造代码块是在类中定义的,而普通代码是在方法体中定义的 

        2.实例代码块(构造代码块):

一般用于初始化实例成员变量

    1.构造代码块在类中定义
    2.构造代码块在创建对象时被调用,每次创建对象都会调用一次
    3.构造代码块优先于构造函数执行,同时构造代码块的运行依赖于构造函数

 “依赖”可理解为如果不实例化对象(也就是不执行构造方法),构造代码块是不会执行的!

        3.静态代码块:

一般用于初始化静态成员变量

    1.只执行一次
    2.不需要实例化就可以使用
    3.优先于各种代码以及构造函数
    4.静态代码块可以定义在类的任何地方中除了方法体中
    5.静态代码块不能访问普通变量
    6.静态块常用来执行类属性的初始化

 Static静态代码块使用格式:

static{
  ..............
}

 测试代码:

public class face_code_question {
    public static void main(String[] args) {
        System.out.println("我是主方法");
        //创建对象
        question s=new question();
        question s1=new question("Hallo Word");               			
        //主方法,在主方法类中的静态代码块执行之后执行
        {
            System.out.println("我是局部代码块");
        }
    }
    static {
        System.out.println("我是主方法类中的静态代码块");            
        //主方法类中的静态代码块优先于主方法执行
    }
}
class question {
    private String name;
    //无参构造
    public question() {
        System.out.println("我是无参构造");
    }
    //有参构造
    public question(String name) {
        this.name=name;
        System.out.println("我是有参构造");
    }
    {
        System.out.println("我是构造代码块");              		
        //随着对象的创建而加载,对象创建一次,构造代码块执行一次
    }
    static {
        System.out.println("我是静态代码块");              		
        //静态代码块,随着类的加载而加载,并且只执行一次
    }
}

 测试结果:

 不管是哪种方法,我们需要明确静态代码块的存在在类加载的时候就自动运行了

“依赖”可理解为如果不实例化对象(也就是不执行构造方法),构造代码块是不会执行的

        4.代码块执行顺序:

    代码块执行顺序:静态代码块——> 构造代码块 ——> 构造函数——> 普通代码块
   
继承中代码块执行顺序:父类静态块——>子类静态块——>父类代码块——>父类构造器——>子类代码块——>子类构造器

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值