网站首页 > 精选教程 正文
相信很多程序员在最初接触Java的时候就听说过,Java是一种面向对象的开发语言,那么什么是面向对象呢?
所谓面向对象,其实是指软件工程
中的一类编程风格,很多人称之为开发范式、编程泛型(Programming Paradigm)。面向对象是众多开发范式中的一种。除了面向对象,还有面向过程、指令式编程和函数式编程
等。
虽然近几年函数式编程越来越被人们熟知,但在所有的开发范式中,我们接触最多的还是面向过程和面向对象两种。
只有理解了什么是面向过程和面向对象,才能更好地学习Java。
1. 什么是面向过程
面向过程(Procedure Oriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。最典型的面向过程的编程语言就是C语言。
简单地说,在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可。
也就是说,在进行面向过程编程时,可以先定义一个函数,然后使用诸如if-else、for-each等方式执行代码。最典型的用法就是实现一个简单的算法,比如实现冒泡排序
。
基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行起来效率很高。
但是,面向过程同时存在代码重用性低、扩展能力差、后期维护难度比较大等问题。
2. 什么是面向对象
面向对象(Object Oriented)的雏形最早出现在1960年的Simula语言中。当时的程序设计领域正面临一种危机:在软硬件环境逐渐复杂的情况下,软件如何得到良好的维护?
面向对象程序设计在某种程度上通过强调可重复性解决了这一问题。目前,较为流行的面向对象语言主要有Java、C#、C++、Python、Ruby和PHP等。
简单地说,在面向对象的开发范式中,程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
也就是说,在使用面向对象进行编程时,要把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如,想要造一辆车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。
面向对象的编程方法之所以受欢迎,是因为它更加符合人类的思维方式。用这种方式编写出来的代码的扩展性、可维护性都很高。
其实,面向对象也是一种对现实世界的理解和抽象的方法。通过对现实世界的理解和抽象,运用封装、继承、多态等方法,通过抽象出对象的方式进行软件开发。
这里提到的封装、继承、多态便是面向对象的三大基本特征,除此之外,面向对象还有五大基本原则,后续会一一介绍。
内容摘自《深入理解Java核心技术(双色)》,作者张洪亮(@Hollis),他是阿里巴巴技术专家,51CTO 专栏作家,CSDN 博客专家,掘金优秀作者,《程序员的三门课》联合作者,《Java工程师成神之路》系列文章作者;热衷于分享计算 机编程相关技术,博文全网阅读量数千万。
猜你喜欢
- 2025-05-08 1.5、Java面向对象编程:类与对象、继承、多态、封装
- 2025-05-08 Java中的面向对象编程思想深度解读
- 2025-05-08 Java中的面向对象编程思想(java面向对象编程原则)
- 2025-05-08 Java的"两面性":面向对象与元编程技术的共生之道
- 2025-05-08 java面向对象编程(Java面向对象编程孙卫琴 电子版)
- 2025-05-08 2、Java面向对象编程思想(超详细)
- 2025-05-08 Java 学习之面向对象思想、类、对象
- 2025-05-08 此继承非彼继承,今天说的是面向对象的基本特征之一
- 2025-05-08 揭秘Java中的面向对象模型(java面向对象几大特征)
- 2025-05-08 java面向对象三大特性:封装、继承、多态——举例说明(转载)
你 发表评论:
欢迎- 06-30【AI绘永昌】风景篇(二)(永昌图文)
- 06-30AI风景建筑图集(ai景观平面图)
- 06-30AI绘制精美绚丽的景色(ai绘制图案)
- 06-30AI风景,不存在的地方又增加了(ai风景插画作品)
- 06-301 分钟解锁!运用 DS + 即梦 + 豆包,轻松打造个性化风景音乐短视频
- 06-30美景欣赏 #AI绘画#(美景图画)
- 06-30AI动漫风景图集1 ~(ai动漫图片)
- 06-30原图壁纸,ai绘画风景(原图壁纸下载)
- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)