探索Java中的面向对象与函数式编程思想

news2025/1/16 14:07:44

文章目录

    • 🎉 欢迎来到 Java 学习路线专栏~探索Java中的面向对象与函数式编程思想
    • 1. 思想概述
      • 面向对象思想
      • 函数式编程思想
    • 2. 面向对象思想写代码
    • 3. Lambda表达式格式
    • 4. 练习
      • 4.1 无参无返回值
      • 4.2 有参有返回值
    • 5. Lambda省略格式
    • 6. 使用Lambda的前提条件

在这里插入图片描述

🎉 欢迎来到 Java 学习路线专栏~探索Java中的面向对象与函数式编程思想

  • ☆* o(≧▽≦)o *☆ 嗨~我是 IT·陈寒🍹
  • ✨ 博客主页:IT·陈寒的博客
  • 🎈 该系列文章专栏:Java学习路线
  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
  • 📜 欢迎大家关注! ❤️

在这里插入图片描述

1. 思想概述

面向对象思想

面向对象思想在编程中扮演着重要的角色,其核心是在做事情的过程中,寻找对象,并调用对象的属性或行为。在面向对象编程中,我们往往先考虑问题的对象,然后定义相应的类,包含这些对象的属性和行为。

如果问题中没有现成的对象,我们可以自己定义一个类,以表示所需的属性和行为。

函数式编程思想

函数式编程思想强调使用函数来解决问题。在函数式编程中,函数类似于 Java 中的方法。我们关注于使用函数以及函数的结果,而不仅仅是过程。函数式编程的核心是,通过定义和组合函数来解决问题。
在这里插入图片描述

2. 面向对象思想写代码

在面向对象思想中,我们通过创建对象并调用其方法来实现功能。下面是一个使用 Runnable 接口创建线程的例子,线程的任务是输出 “helloworld”。

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("hello world");
    }
}).start();

然而,这样的代码在 Java 中需要遵循语法规则,无论是直接使用实现类还是匿名内部类,都需要进行繁琐的操作。实际上,核心的代码只有 run 方法体中的业务逻辑。

我们可以使用 Lambda 表达式来简化这个过程:

new Thread(() -> System.out.println("hello world")).start();

在这里插入图片描述

3. Lambda表达式格式

Lambda 表达式的格式如下:

(参数类型  参数名称) -> {方法体}

其中:

  • (): 参数列表,如果有多个参数使用逗号隔开
  • ->: 指向
  • {}:方法体,包含具体的逻辑和返回值
    在这里插入图片描述

4. 练习

4.1 无参无返回值

以大厨为例,大厨可以做饭和菜。我们可以使用接口和类来表示这一思想。

接口:Chef,行为:cook

4.2 有参有返回值

案例一:大厨做菜,参数为五花肉和大料,返回值为肥瘦相间的油光发亮的大块朵颐的红烧肉。

案例二:求和,两个参数,返回它们的和。
在这里插入图片描述

5. Lambda省略格式

Lambda 表达式的省略格式遵循一些规则:

  • 参数:
    • 多个参数时:小括号中参数的类型可以省略
    • 没有参数:写 ()
    • 一个参数:只写参数名即可,参数类型和 () 都可以省略
  • 方法体:
    • 大括号中有且只有一句话,无论是否有返回值,都可以省略大括号及 return 关键字及分号
      在这里插入图片描述

6. 使用Lambda的前提条件

使用 Lambda 表达式的前提条件是:

  • 必须有一个接口,并且该接口中只有一个抽象方法,即函数式接口
  • 必须具有上下文推断

🧸 结尾


❤️ 感谢您的支持和鼓励! 😊🙏
📜您可能感兴趣的内容:

  • Java面试八股文 - 掌握面试必备知识(目录篇)
  • 2023年完整版Java学习路线图
  • Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
  • SpringBoot+SSM实战<一>:打造高效便捷的企业级Java外卖订购系统

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/885164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧乡村综合管控平台_数字孪生

数字乡村是伴随网络化、信息化和数字化在农业农村经济社会发展中的应用,既是乡村振兴的战略方向,也是建设数字中国的重要内容。为了进一步提升乡村治理智能化、专业化水平,解决建设顶层缺失、数据孤岛等问题,数字孪生技术被广泛应…

谈谈智慧农业系统

目录 1.智慧农业的概念 2.智慧农业会用到什么技术 3.智慧农业的优势 4.智慧农业的发展前景 1.智慧农业的概念 智慧农业(Smart Agriculture),也被称为农业4.0,是利用先进的信息技术和物联网技术来改进农业生产效率、可持续性和农…

JAVA生成订单号根,可自定义长度、前缀

效率还可以,生成100万数据大概在1秒多左右,不想写说明了,直接粘贴~ public static void main(String[] args) {System.out.println("开始时间" new SimpleDateFormat("YYYY-MM-dd HH:mm:ss:SSS").format(new Date()));L…

Java中调用伪原创API的方法【源码】

在Java中调用API的GET请求可以使用HttpURLConnection或者第三方库如OkHttp等。 使用HttpURLConnection的示例代码: import java.net.HttpURLConnection; import java.net.URL;URL url new URL("http://example.com/api?param1a&param2b"); HttpURLConnectio…

讯飞星火认知大模型全新升级,全新版本、多模交互—测评结果超预期

写在前面 版本新功能 1 体验介绍 登录注册 申请体验 2 具体使用 2.1 多模态能力 2.1.1 多模理解 2.1.2 视觉问答 2.1.3 多模生成 2.2 代码能力 2.2.1 代码生成 2.2.2 代码解释 2.2.3 代码纠错 2.2.4 单元测试 2.3 插件功能 2.3.1 PPT生成 2.3.2 简历生成 2.3.4 文档问答 3 其他…

TiDB基础介绍、应用场景及架构

1. 什么是newsql NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。 NewSQL是指这样一类新式的关系型数据库管理系统,针对OLTP(读-写&…

如何保证微信小游戏存档不丢失?

引言 微信小游戏的兴起为玩家提供了一个轻松便捷的娱乐方式,然而,存档丢失问题一直以来都是开发者和玩家关注的焦点。为了确保玩家的游戏体验和投入能够得到充分的保障,开发团队需要采取一系列方法来保障微信小游戏存档不丢失。本文将介绍一…

C++之std::tuple应用实例(一百七十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

MES管理系统的哪些优势对企业帮助比较大

随着全球制造业的快速发展,MES制造执行系统已成为企业生产管理的重要工具。MES管理系统解决方案集成了企业生产流程中的各个环节,包括计划、调度、质量、设备等,为企业提供了全面的生产管理解决方案。制造企业MES系统的优势颇多,其…

matlab+yalmip+cplex和python3+scipy两种方式实现线性规划求解

Background 对于数学规划问题,有很多的实现。MatlabYALMIPCPLEX这个组合应该是比较主流的,尤其是在电力相关系统中占据着比较重要的地位。MATLAB是一个强大的数值计算工具,用于数学建模、算法开发和数据分析。Yalmip是一个MATLAB工具箱&#…

无涯教程-Perl - splice函数

描述 此函数从LENGTH元素的OFFSET元素中删除ARRAY元素,如果指定,则用LIST替换删除的元素。如果省略LENGTH,则从OFFSET开始删除所有内容。 语法 以下是此函数的简单语法- splice ARRAY, OFFSET, LENGTH, LISTsplice ARRAY, OFFSET, LENGTHsplice ARRAY, OFFSET返回值 该函数…

非常炸裂!一个只有135行源码的插件!

今天,我们接着讨论图片图片懒加载。这是前端性能优化中老生常谈的话题了。旨在提升页面初始化渲染性能和用户体验。 问题 我们是不是会遇到这样的场景: 当访问一个图片展示比较多的网页时,页面加载速度很慢,尤其是其中的图片半天…

C#数据类型转换

目录 1.常用的数据类型: ​编辑1.1别名概念例子: 输出结果: 2.数值类型之间的相互转换: 2.1举例: ​编辑输出结果: 1.常用的数据类型: 1.1别名概念例子: 输出结果: 用GetType来获取数据类型的时候,就是指向System.Byte和System.Char这个…

MAVEN利器:一文带你了解MAVEN以及如何配置

前言: 强大的构建工具——Maven。作为Java生态系统中的重要组成部分,Maven为开发人员提供了一种简单而高效的方式来构建、管理和发布Java项目。无论是小型项目还是大型企业级应用,Maven都能帮助开发人员轻松处理依赖管理、编译、测试和部署等…

Java:集合体系:Collection集合的常用方法(API)

集合体系 用ArrayList 和 HashSet 打印出来的结果 Collection 集合的常用方法(API) 由于Collection是一个接口 所以不能直接new Collection 编译看左边,运行看右边 转成数组时是Object 类型,方便将来往集合里添加任何数据 拓展&am…

wsl2 Ubuntu子系统 yolov8测试

文章目录 前言安装依赖下载权重测试 前言 OLOv8是Ultralytics公司推出的基于对象检测模型的YOLO最新系列,它能够提供截至目前最先进的对象检测性能。 借助于以前的YOLO模型版本支持技术,YOLOv8模型运行得更快、更准确,同时为执行任务的训练…

小额配资和大额配资是什么?

小额配资和大额配资是股票配资领域中常用的两种方式。本文将会详细介绍小额配资和大额配资的概念,并对其区别进行分析。 首先,小额配资是指投资者通过股票配资机构借取相对较小的资金进行投资。一般而言,小额配资的金额较低,通常…

JVM - 垃圾收集器

目录 垃圾收集器 串行垃圾收集器 并行垃圾收集器 什么是 吞吐量优先 什么是 响应时间优先 ? CMS(并发)垃圾收集器 G1 垃圾收集器 垃圾收集器 垃圾收集器大概可以分为: 串行垃圾收集器并行垃圾收集器CMS(并发&a…

解析Python爬虫常见异常及处理方法

作为专业爬虫程序猿长期混迹于爬虫ip解决方案中,我们经常会遇到各种各样的异常情况。在爬虫开发过程中,处理这些异常是不可或缺的一部分。本文将为大家总结常见的Python爬虫异常,并分享相应的处理方法,帮助你避免绊倒在爬虫之路上…

深入了解API标准:为什么它如此重要?| SEO优化

深入了解API标准:为什么它如此重要? 什么是API标准? 在计算机科学领域中,API标准是指应用程序接口的规范和约定。它定义了应用程序之间相互通信和交互的方法和规则。API标准允许软件开发人员使用其他应用程序的功能和数据&#…