Java 面向对象语言和非面向对象语言之间有什么区别?
我一直听说C是一种非面向对象语言,java是一种面向对象语言。我想知道两者的区别是什么?面向对象语言通过提供易于实现数据抽象和多态性的结构,使编写面向对象程序变得更容易。Java是一种主要用于面向对象编程的语言,C是一种主要用于面向过程编程的语言 这是一个很好的解释 与面向对象的比较 程序设计的重点 编程就是分解一个 将任务编程到 变量、数据结构和 子程序,而在 面向对象编程 将编程任务分解为 对象和每个“对象” 封装自己的数据和方法 (子程序)。最重要的 区别是程序性的 编程使用程序进行操作 关于数据结构,面向对象 编程将两者捆绑在一起 所以“对象”是“自己”运行的 数据结构。命名法各不相同 在两者之间,尽管他们 语义大致相同: 面向对象程序设计 方法函数对象模块 消息参数属性变量Java 面向对象语言和非面向对象语言之间有什么区别?,java,c,oop,Java,C,Oop,我一直听说C是一种非面向对象语言,java是一种面向对象语言。我想知道两者的区别是什么?面向对象语言通过提供易于实现数据抽象和多态性的结构,使编写面向对象程序变得更容易。Java是一种主要用于面向对象编程的语言,C是一种主要用于面向过程编程的语言 这是一个很好的解释 与面向对象的比较 程序设计的重点 编程就是分解一个 将任务编程到 变量、数据结构和 子程序,而在 面向对象编程 将编程任务分解为 对象和每个“对象” 封装自己的数据和方法 (子程序)。最重要的 区别是程序性的 编程使用程序进行操作
但是为了让事情变得更基本,你可以想象像你想象的现实世界中的物体,比如汽车,将拥有汽车的所有属性,就像窗户和轮胎一样 OOP使得把一个大问题分解成更小的独立部分变得更容易。然后,您可以通过组合这些部分来创建更复杂的内容 面向对象编程范例告诉您将状态变量封装在称为“对象”的实体中,这些实体通过消息传递进行通信,通常作为带有“特殊”的
此或自身参数的函数来实现
面向对象编程语言是一种旨在简化oo范式使用的语言。它的语义和语法正朝着这个目标发展。继承(基于类或原型)和子类型多态性是使oo的抽象概念在实践中可行的重要技术。过程编程和OOP,两者都是不同的编程,是众所周知的苹果和橙子。PP依赖于“子程序”。OOP向“对象”发送“消息”,对象改变对象的“状态”,并向其他对象发送消息;此外,可以扩展行为对象,创建新类型的对象。两者都依赖于任务和副作用。问题可能在一种范式中有自然的解决方案,但在另一种范式中则有巴洛克式的解决方案。也就是说,通过使用传递消息的对象或通过过程,可以很容易地对问题进行建模
编程语言可以支持超出其本机支持的范式,但它需要程序员实现必要的结构。例如,您可以使用C进行OOP;事实上,C的一些OO扩展依赖于产生C代码作为输出的预处理器
当你在学习上取得进步的时候,你会特别注意其他方面。看一下(如Prolog所示)和(如示例所示)。面向对象语言是围绕数据结构(称为对象)的思想构建的,每个数据结构都包含自己的数据和行为。通过组合这些对象并让它们彼此交互,您可以设计一个程序,更好地反映您试图解决的问题的领域
例如,在银行应用程序中,您可能有表示帐户的对象,每个对象存储余额等数据,并实现转账等特定行为
用一种更传统的语言,您可以将数据和行为保存在不同的位置。我将为您提供最简单直观的答案
(考虑到Java是一种面向对象的语言,C是一种过程语言)
面向对象语言
- 核心概念是对象(以汽车为例)
- 对象具有定义它们的属性,它们可以是恒定的,也可以是变化的(一辆车是红色的,2004年款,具有巡航控制。它目前还有100K的里程表和3/4油箱的燃油)
- 对象可以发送影响它的消息(汽车可以从a行驶到B,汽车可以加油)
程序语言
- 核心概念是流程(考虑在线订购)
- 为了完成一个流程,它必须经过几个步骤(订单必须(1)发送到仓库,(2)装箱,(3)装运)
- 其中一个步骤可能是进程本身,也可能是原子的
哇,这家伙身上到处都是大话。作为一个从过程编程开始,现在主要从事面向对象编程的人,我在概念上是这样看待差异的(没有大的术语):
在C语言中,有一些称为结构的东西可以保存状态。它们看起来有点像对象,例如,您可以有一个名为Car的结构,创建Cars的实例,并设置其make、model和color字段。但是,您不能让Car结构实例执行任何操作。相反,如果要洗车,必须将汽车实例传递给以下外部函数:
WashMyCar(myCar);
OOP语言使用与结构不同的概念,称为类,对象是这些类的实例。暂时忘掉那些大字继承和多态性(一旦你有了类,这些都是更高级的主题)。想想汽车的例子。例如,在Java中,您可以定义一个名为Car的类:
public class Car {
String make;
String model;
String color;
}
然后,创建一个汽车的实例,如下所示:
Car myCar = new Car();
myCar.make = "Honda";
myCar.model = "Accord";
myCar.color = "Black";
这与结构非常相似。现在,OOP的不同之处在于,您可以将类定义扩展为de
public class Car {
String make;
String model;
String color;
String condition;
void washMe() {
this.condition = "clean";
}
void goOffroad() {
this.condition = "dirty";
}
}
Car myCar = new Car();
myCar.make = "Honda";
myCar.model = "Accord";
myCar.color = "Black";
myCar.goOffroad();
System.out.println(myCar.condition); // dirty
myCar.washMe();
System.out.println(myCar.condition); // clean