当前位置:首页学习笔记Java笔记3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

01-代码块

代码块介绍

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

代码块格式

  1. 局部代码块:方法中的一对 { }
  2. 作用:可以限定变量的生命周期,提早释放内存
  3. 构造代码块:类中方法外的一对 { }
  1. 执行时机:创建对象的时候要执行构造代码块,在执行方法之前,会先执行构造代码块
  2. 细节:在字节码文件中,构造代码块的代码,会分散到该类的所以构造方法中
  3. 作用:发现多个构造方法中,存在着相同的代码,就可以考虑使用构造代码块进行优化
  4. 静态代码块:类中方法外的一对 { } 需要加入static修饰
  5. 执行时机:随着类的加载而执行,
  6. –因为类只加载一次,静态代码块也会在类加载的时候,只执行一次
  7. 作用:项目的初始化操作
  1. 加载数据库驱动
  2. 加载配置文件

小练习:看看哪个代码先执行

package com.itheima.codeblock;

public class CodeDemo2 {

  static {
    System.out.println("CodeDemo2...static...");
  }

  public static void main(String[] args) {
    Zi z = new Zi();
  }
}

class Fu {

  static {
    System.out.println("Fu...static");
  }

  {
    System.out.println("Fu...构造代码块");
  }

  public Fu() {
    System.out.println("Fu...空参构造方法");
  }

  public Fu(int num) {
    System.out.println("Fu...带参构造方法");
  }

}

class Zi extends Fu {

  static {
    System.out.println("Zi...static");
  }

  {
    System.out.println("Zi...构造代码块");
  }

  public Zi() {
    System.out.println("Zi...空参构造方法");
  }

  public Zi(int num) {
    System.out.println("Zi...带参构造方法");
  }

}

02-内部类

内部类介绍 :

  • 内部类就是定义在一个类里面的类,里面的类可以理解成(寄生),外部类可以理解成(宿主)。
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
  • 内部类通常可以方便访问外部类的成员,包括私有的成员。
  • 创建内部类对象 :
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

好处:

  • 可以直接访问类中的成员变量,包括私有
  • 可以更好的进行封装设计

内部类的分类 :

  • 成员内部类

上面介绍就是成员内部类

  • 静态成员内部类
  • 有static修饰,属于外部类本身

它的特点和使用与普通类是完全一样的,类有的成分它都有,只是位置在别人里面而已。

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
  • 局部内部类 (了解) —-鸡肋
  • 局部内部类放在方法、代码块、构造器等执行体中。
  • 匿名内部类 (特殊的局部内部类)
  • 调用一个方法,方法的形参是接口,该传入的是接口的实现类对象
  • 概述:匿名内部类本质上是一个特殊的局部内部类(定义在方法内部)
    前提:需要存在一个接口或类
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
  • 使用场景 :  匿名内部类可以作为方法的实际参数进行传输
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
  • 理解:匿名内部类是将(继承 \ 实现)(方法重写)(创建对象)三个步骤,放在了一步进行
3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

03-Lambda表达式

介绍

Lambda表达式介绍:

Lambda表达式是JDK8开始后的一种新语法形式。

作用:简化匿名内部类的代码写法。

体验

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

格式

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

注意

注意 :  Lambda 只能操作函数式接口

函数式接口 :  有, 且仅有一个抽象方法的接口

可以使用 @FunctionalInterface 注解,  来检查是否是函数式接口

简化规则

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

04-Lambda表达式和匿名内部类的区别

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

Lambda表达式是否是匿名内部类的语法糖

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

05-模板设计模式

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法

06-Object中的toString方法

3.6 代码块-内部类-Lambda表达式-模板设计模式-toString方法
温馨提示:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
Java笔记学习笔记

3.5 JDK8,9新特性-抽象类-接口-多态

2023-7-31 13:08:03

Java笔记学习笔记

3.7 综合练习,石头迷阵游戏编写

2023-8-2 15:18:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

你有新的私信

请务必要查看您的私信哟~~