当前位置: 首页 > news >正文

面向对象高级(二)

目录

1.匿名內部类

2.Lambda表达式

3.String

4.ArrayLists集合


1.匿名內部类

是一种特殊的局部内部类

所谓匿名:指的是程序员不需要为这个类声明名字,默认有个隐藏的名字。

new 接口或类(参数值...){

类体(一般是方法重写);

};

new Aniaml(){ @override public void cry(){ } }

特点:匿名内部类本质上是一个子类,并会直接创建出一个子类对象

作用:用于更方便的创建一个子类对象

2.Lambda表达式

可以用于替代某些匿名內部类对象,从而让程序更加简洁,可读性更好

(被重写方法的形参列表)-> {

被重写的方法体代码。

}

注意:Lambda表达式只能替代函数式接口的匿名內部类

什么是函数式接口:有且仅有一个抽象方法的接口。

@FunctionalIterface声明函数式接口的注解

public class LambdaDemo1{ public static void main(String[] args){ Swim s1 = () -> { System.out.prinln("学生贼快"); } s1.swimming(); } } @FuctionalInterface interface Swin{ void swimming{}; }

简化规则:

参数类型全部可以省略不写。

如果只有一个参数,参数类型省略的同时“{}”也可以省略,但多个参数不能省略“{}”

如果Lambda中只有一行代码,大括号可以省略不写,同时要省略",",如果这行代码是return语句,也需去掉return语句。

静态方法引用:

类名::静态方法引用

使用场景:如果某个lambda表达式只是调用一个静态方法。并且”->“前后参数一致,就可以使用静态方法引用。

实例方法引用:

类名::实例方法引用

使用场景:如果某个lambda表达式只是调用一个实例方法。并且”->“前后参数一致,就可以使用静态方法引用。

特定类的方法引用:

特定的类名称::方法

Arrays.sort(names,String::compareToIgnose)

如果某个Lambda表达式只是调用一个特定类型的实例方法,并且前面参数列表的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。

构造器引用:

类名::new

如果某个Lambda表达式只是在创建对象,并且“->”前后参数情况一致,就可以使用构造器引用。

3.String

构造器说明
public String()创建一个空白字符串内容,不含任何内容
public String(string original)根据传入的字符串内容,来创建字符串对象
public String(char[] chars)根据传入的字符数组,来创建字符串对象
public String (bytes[] bytes)根据传入的字节内容,来创建字符串对象

4.ArrayLists集合

常用方法名说明
public boolwan add(e)
public void add(int index ,E element)
public E get(int index)
public int size()
public E remove(int index)
public boolean removez(Object o)
public E set(int index, E element)
http://www.gsyq.cn/news/1647056.html

相关文章:

  • 10 道大厂高频面试易错题|拆解面试官底层考察逻辑,低分 / 标准 / 高分三套回答模板直接套用
  • 使用Lambda表达式编写递归函数
  • Kimi LeetCode 3485. 删除元素后 K 个字符串的最长公共前缀 Python3实现
  • Decoupled and Reusable Adaptation for Efficient Cross-Modal Transfer
  • CTF实战:利用IDNA编码绕过校验与Nginx配置泄露漏洞分析
  • IMU与MCU硬件协同实现6DoF姿态解算实战
  • Contrastive Clustering (CC) 实战:PyTorch 复现 CIFAR-10 聚类精度 0.705 NMI
  • Wave-ViT: Unifying Wavelet and Transformersfor Visual Representation Learning ——ECCV
  • SV基础之连接设计和测试平台
  • Claude Code 是什么
  • 如何下载沪深股票市场的行情数据,包括委托、成交、订单薄、沪深股票、etf、可转债、指数五档订单薄数据,买一到买五、卖一到卖五历史行情数据笔记
  • 基于YOLOv8的铁路障碍物检测:从数据准备到边缘部署全流程实践
  • MediaPipe BlazePose 33关键点实战:Python+OpenCV 实现深蹲计数与角度可视化
  • 吾爱大佬最新出品,牛批Plus!
  • Jenkins与SonarQube集成实战:5步构建代码质量自动化分析体系
  • MySQL 视图详解
  • 解锁B站评论区:如何用Python获取完整视频评论数据
  • Java程序设计(第3版)第四章——类加载
  • IDEA集成Git
  • ai-agent框架spring ai/alibaba原理源码分析(八)观测II spring ai观测 ChatClient
  • 机器学习项目的完整流程:从原始数据到模型预测
  • 小猿搜题 App 2021 版作弊检测机制解析:从图像识别到人工审核的 3 层防线
  • 单片机:串行接口之通信概念
  • 孜然导航系统单页配置教程
  • 6DoF运动追踪技术:从IMU到嵌入式实现
  • 如何用GEO系统解决网站流量下降?3种实战方案解析
  • 哈夫曼编码的原理和python实现(P124302064王酉辰,P124302070李佳乐)
  • 如何快速搭建企业级后台管理系统?Layui-Admin终极指南
  • Terraform 多环境管理完全指南:4种策略实现开发/测试/生产隔离部署
  • 数据分析收尾实战:基于助睿 BI 完成自媒体可视化探索与业务洞察分析