面向对象与面向过程的区别

news2024/11/24 14:12:20

“劳累一天回到家中“
”对象赶忙问我想吃些什么?“
“望着窗外淅淅沥沥的小雨 蛋炒饭吧”
“雨声洗涤了心灵 炒饭温暖了肚子”
“我没有问她炒饭是怎么做的,他也没有管我吃相有多难看”
“我面向对象,她也面向对象”相思

面向对象和面向过程的区别

概念

面向过程:字面意义上就是面向的是过程,先做什么,在做什么,最后做什么,然后用函数把这些步骤一步一步的实现,在使用的时候----调用即可

面向对象:字面意义上就是面向的是对象,是把构成问题的事务分解成各个对象,但是建立对象的目的也不是为了完成一个个步骤,而是为了描述某一个事物在解决整个问题的过程中所发生的行为

性能

面向过程:性能较高,所以单片机,嵌入式开发等一般采用面向过程开发

面向过程:性能相比面向过程要低

可用性

面向对象:有封装,继承,多态的特性,所以易维护,易复用,易扩展,可以设计出低耦合的系统

三大特征

封装:只隐藏对象的属性和实现细节,仅对外提供公共访问方式

好处:将变化隔离、便于使用、提高复用性、提高安全性

原则:将不需要对外提供的内容隐藏起来;把属性隐藏,提供公共方法对其访问

继承:提高代码复用性;继承是多态的前提

①子类中所有的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可自己用this指定自身的其他构造函数。

多态:是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象

好处:提高了程序的扩展性

弊端:当父类引用指向子类对象时,虽提高了扩展性,但只能访问父类中具备的方法,不可访问子类中的方法;即访问的局限性。

前提:实现或继承关系;覆写父类方法。
相思

二分查找

题目:搜索插入位置

等级:🌟

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/search-insert-position

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

输入: nums = [1,3,5,6], target = 5
输出: 2

输入: nums = [1,3,5,6], target = 2
输出: 1

输入: nums = [1,3,5,6], target = 7
输出: 4

请先思考!!!!

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

答答答答答答答答答答答

案案案案案案案案案案案

往往往往往往往往往往往

下下下下下下下下下下下

翻翻翻翻翻翻翻翻翻翻翻

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

|||||||||||

class Solution {
    public int searchInsert(int[] nums, int target) {
        int start = 0;
        int end = nums.length - 1;
        while(start <= end){
            // 先计算出中间值 右移运算 相当于 int middle = (start + end)/2
            int middle = (start + end) >> 1;
          	// 如果中间值小于目标值,则循环后半部分
            if(nums[middle] < target){
                start = middle + 1;
            }else {// 否则循环右半部分
                end = middle - 1;
            }
        }
      	// 最后start值便是我们要求的最终值
        return start;
    }
}

题解:

二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

例如:nums = [1,2,3,4] target = 5

参数第一次循环第二次循环第三次循环第四循环
start0234
end333
middle123
nums[middle]234
target555

第四次的时候结束循环,所以 start = 4 即我们所得的结果

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

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

相关文章

Unity3D:编辑场景模板

场景模板 Inspector 场景模板 Inspector 包含以下部分&#xff1a; Details&#xff1a;指定模板使用哪个场景&#xff0c;并包含模板的描述&#xff0c;该内容将出现在 New Scene 对话框中。Thumbnail&#xff1a;提供用于为模板创建预览图像的选项。Scene Template Pipelin…

ajax的介绍及使用

ajax的介绍 开发流程 前端 ajax:前后端沟通的桥梁 后端 ajax介绍 ajax叫做异步的Javascript和xml ajax通过浏览器与服务器&#xff08;后端&#xff09;进行少量数据交互&#xff0c;进行页面异步更新&#xff08;网页不会重新加载&#xff09; 优点&#xff1a; 减轻服务器负…

Java基础1

一、标识符 给类、接口、方法、变量等取名时用的字符序列 如&#xff1a; public class 类名-标识符{public static void 方法名-标识符(String[] args){int 变量或标识符 1000;} } 二、标识符的命名规范 组成部分 英文大小写字母、数字字符、美元($)符号、下划线(_)、中文…

「ChatGPT」十分钟学会如何在本地调用API_KEY(最新版 | 附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

1.2 行列式的性质和计算

学习目标&#xff1a; 当学习行列式性质和计算时&#xff0c;以下是一些具体的学习目标&#xff1a; 理解行列式的定义和计算方法&#xff0c;能够准确计算给定的行列式。&#xff08;最基本的&#xff09;熟练掌握行列式的基本性质&#xff0c;包括交换行列式的两行或两列、…

VRP开源的算例资源

VRP开源的算例资源 开源的算例资源 开源的MIP算例网址 1. MISOCP网址 Benchmark instances&#xff1a;多种问题的算例数据 TSP算例网址 VRP标杆算例网址 1. Networking and Emerging Optimization发布的VRP算例 2. PRP算例 3. 一个学者的主页上的算例 4. Chair in L…

Linux学习笔记(3)一些数据类型

1&#xff09;_u32 是一个无符号的32位整数类型&#xff0c;它在 Linux 内核中定义为 typedef unsigned int __u32。其中&#xff0c;__u32 是为了避免名称冲突而定义的特殊类型。无符号整数是一种表示正整数的数据类型&#xff0c;其取值范围为 0 到 4294967295&#xff08;2…

docker容器:本地私有仓库、harbor私有仓库部署与管理

目录 一、本地私有仓库 1、本地私有仓库简介 2、搭建本地私有仓库 3、容器重启策略介绍 二、harbor私有仓库部署与管理 1、什么是harbor 2、Harbor的特性 3、Harbor的构成 4、harbor部署及配置 ①部署docker-compose ②部署Harbor服务 ③登录创建项目 ④登录仓库并…

对话到行动:通过行动级生成构建面向任务的对话系统

目录 对话到行动:通过行动级生成构建面向任务的对话系统 1介绍 2框架描述 2.1概述 2.2第一步:对话动作构造 2.3步骤2:响应标准化响应标准化 2.4步骤3:动作序列预测 2.5步骤4:生成响应 3实验 3.1实验设置 3.2主要结果 3.3深度分析 4结论 5主持人简介 6公司简介 对…

V-Ray渲染教程:又快又好的V-Ray渲染参数!

Chaos V-Ray 是适用于大部分主流3D设计软件和CAD程序的3D渲染插件&#xff0c;它可以与 3ds Max、Cinema 4D、Houdini、Maya、Nuke、Revit、Rhino、SketchUp、Unreal 无缝协作。借助 V-Ray渲染器强大的功能&#xff0c;艺术家和设计师可以产生出非常逼真的渲染效果。 那么&…

服务提供者 Eureka + 服务消费者(Rest + Ribbon)实战

1、Ribbon背景介绍 Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法&#xff0c;将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时&#xff0c;重试等。简单来说&#xff0c;就是在配置文件中列出Load B…

Word中截取部分内容并保存为jpg图片的方法

private void button1_Click(object sender, EventArgs e) { var appWord new Microsoft.Office.Interop.Word.Application(); var doc new Microsoft.Office.Interop.Word.Document(); object oMissing System.Reflection.Missing.Value;//这个是什么东西&#xff0c;我始终…

等级保护5个级别详细说明-行云管家

目前我国正在严格执行等保政策&#xff0c;但不少企业对于等级保护的5个级别不是很清楚&#xff0c;这里我们行云管家小编就来给大家详细说明一下。 等级保护5个级别详细说明-行云管家 根据《信息安全技术网络安全等级保护基本要求》&#xff0c;安全保护等级分为5个级别&…

Linux 中 top信息详解,CPU负载详解

一、top信息的三个参数到底是什么意思&#xff1f; 6.68、7.67、8.08 分别代表前一分钟&#xff0c;五分钟&#xff0c;十五分钟的平均CPU负载&#xff0c;最重要的指标是最后一个数字&#xff0c;即前15分钟的平均CPU负载&#xff0c;这个数字越小越好。所谓CPU负载指的是一段…

蔡春久:主数据标准化如何建设

亿信华辰「2023数字赋能季」主数据管理专场第一期成功举办。我们邀请到了中国数据标准化及治理专家蔡春久为大家带来主数据管理从理论到工具层面的分享&#xff0c;全程干货&#xff0c;深度解读&#xff0c;以下是演讲全文。 蔡春久&#xff1a;中国大数据技术标准推进委员会…

认识AI三大类工具,让你效率加倍

在当今的互联网时代&#xff0c;各种新奇有趣的AI工具充斥着我们的生活。其中&#xff0c;AI写作、AI绘画、AI剪辑等工具更是给运营人带来了前所未有的“速成”体验。今天就来介绍一些好玩有趣的AI工具&#xff0c;让你在各个领域都能快速、轻松地展现自己的创意和才华。 第一…

Docker资源控制

一、CPU 资源控制 cgroups&#xff0c;是一个非常强大的linux内核工具&#xff0c;他不仅可以限制被 namespace 隔离起来的资源&#xff0c; 还可以为资源设置权重、计算使用量、操控进程启停等等。 所以 cgroups&#xff08;Control groups&#xff09;实现了对资源的配额和度…

java版本企业电子招投标采购系统源码之登录页面

​ 信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

无需编程技能:如何快速搭建教育平台网站

随着在线教育的不断发展&#xff0c;越来越多的人开始想要创建自己的教育平台网站。然而&#xff0c;很多人认为创建一个网站需要具备深厚的编程技能和经验&#xff0c;因此望而却步。实际上&#xff0c;现在有很多平台和工具可以帮助人们快速、简单地搭建一个教育平台网站&…

力扣题库刷题笔记496-下一个更大元素

1、题目如下&#xff1a; 2、个人Python代码实现 代码如下&#xff1a; class Solution: def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]: #空列表用于输出结果 ans [] for i in nums1: #如果nums2中不包含或者最后一位元素为当前遍历得…