有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    过程编程和面向对象编程都是不同的编程,是众所周知的苹果和橙子。PP依赖于“子程序”。OOP向“对象”发送“消息”,对象改变对象的“状态”,并向其他对象发送消息;此外,可以扩展行为对象,创建新类型的对象。两者都依赖于任务和副作用。问题可能在一种范式中有自然的解决方案,但在另一种范式中则有巴洛克式的解决方案。也就是说,通过使用传递消息的对象或通过过程,可以很容易地对问题进行建模

    编程语言可以支持超出其本机支持的范式,但它需要程序员实现必要的结构。例如,您可以使用C进行OOP;事实上,C的一些OO扩展依赖于产生C代码作为输出的预处理器

    当你在学习上取得进步时,你会想看看其他的paradigms,尤其是functional programming。看看logic programming(如Prolog所示)和dataflow programming(参见Pure Data的示例)也没什么坏处

  2. # 2 楼答案

    Java是一种主要用于面向对象编程的语言,C是一种主要用于面向过程编程的语言

    关于Wikipedia about Procedural programming vs object oriented programming:有一个很好的解释

    Comparison with object-oriented programming The focus of procedural programming is to break down a programming task into a collection of variables, data structures, and subroutines, whereas in object-oriented programming it is to break down a programming task into objects with each "object" encapsulating its own data and methods (subroutines). The most important distinction is whereas procedural programming uses procedures to operate on data structures, object-oriented programming bundles the two together so an "object" operates on its "own" data structure. Nomenclature varies between the two, although they have much the same semantics: object-oriented procedural methods functions objects modules message argument attribute variable

    但是为了让事情变得更基本,你可以想象像你想象的现实世界中的物体,比如汽车,将拥有汽车的所有属性,就像窗户和轮胎一样

  3. # 3 楼答案

    我会给你最简单直观的答案

    (考虑到Java是一种面向对象语言C是一种过程语言

    面向对象语言

    • 核心概念是对象(以汽车为例)
    • 对象具有定义它们的属性,它们可以是恒定的,也可以是变化的(一辆车是红色的,2004年款,具有巡航控制。它目前还有100K的里程表和3/4油箱的燃油)
    • 对象可以发送影响它的消息(汽车可以从a行驶到B,汽车可以加油)

    程序语言

    • 核心概念是流程(考虑在线订购)
    • 为了完成一个流程,它必须经过几个步骤(订单必须(1)发送到仓库,(2)装箱,(3)装运)
    • 其中一个步骤可能是进程本身,也可能是原子的
  4. # 4 楼答案

    面向对象编程范例告诉您将状态变量封装在称为“对象”的实体中,这些实体通过消息传递进行通信,通常作为带有“特殊”参数的函数来实现

    面向对象编程语言是一种旨在简化oo范式使用的语言。它的语义和语法正朝着这个目标发展。继承(基于类或原型)和子类型多态性是使oo的抽象概念在实践中可行的重要技术

  5. # 5 楼答案

    哇,对这家伙来说,有很多大的OOP术语。作为一个从过程编程开始,现在主要从事面向对象编程的人,我在概念上是这样看待差异的(没有大的术语):

    在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的不同之处在于,您可以扩展类定义来定义类方法——它们与过程中的函数类似,只是它们总是对对象进行操作。那么,让我们添加清洗方法:

    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
    

    希望这个例子能有所帮助。当然,OOP(和过程)远不止这个简单的例子。但核心区别在于拥有“拥有”自己方法的对象类

  6. # 6 楼答案

    面向对象语言是围绕着数据结构(称为对象)的思想构建的,每个数据结构都包含自己的数据和行为。通过组合这些对象并让它们彼此交互,您可以设计一个程序,更好地反映您试图解决的问题的领域

    例如,在银行应用程序中,您可能有表示帐户的对象,每个对象存储余额等数据,并实现转账等特定行为

    在更传统的语言中,您可以将数据和行为保存在不同的位置