📜  从 C 到Java的面向对象编程的简要概述和比较

📅  最后修改于: 2021-09-13 02:13:54             🧑  作者: Mango

在本文中,您将能够思考如何通过 C 在Java真正实现 OOP。

通过C,你会理解多态继承封装对象等的概念。你也知道C语言不支持OOP,但是我们可以通过定义一个精细的结构为类和将其身份创建为对象。

在 Parallel 中,通过Java,我们可以了解它是如何与实际的 Class & Object 一起工作的。

从这个比较中,我们可以思考面向对象编程背后的逻辑。

了解比较背后的概念

Java

C

Class in java (example Customer) A Structure created in C (example customer)
Fields of the Class (example int id, String name) Variable present in Structure (example int id, char* name)
Constructor present in Class Function created and returning a pointer which is storing the data in heap memory (Example cust* createCustomer)
Method of the class (Example printCustomer) Function created (Example printCustomer)
Creation of Object form the Class in Java Create an instance of struct customer
C
// Adding the necessary header files
#include 
#include 
 
// customer structure
typedef struct customer {
    int id;
    char* name;
 
    // cust is an alias used for struct customer by using
    // typedef
} cust;
 
cust* createCustomer(int id, char* name)
{
    // Memory allocation in the Heap
    cust* this = (cust*)malloc(sizeof(cust));
 
    // Similiar to 'this' in Java
    this->id = id;
    this->name = name;
    return this;
}
void printCustomer(cust* c)
{
    printf("The Id is %d\n", c->id);
    printf("The name is %s\n", c->name);
}
 
int main()
{
    // Create an instance of struct customer Similar
    // to creation of Object form the Class in Java
    cust* c1;
 
    // Adding the Arguments in the function
    // is similar to adding arguments in methods of the Java
    // Class
    c1 = createCustomer(25, "Siddharth");
 
    // Calling the function printCustomer
    printCustomer(c1);
 
    // Free the allocated memory
    free(c1);
 
    return 0;
}


Java
// import the required classes
 
import java.io.*;
 
class Cust {
    int id;
    String name;
 
    // constructor
    Cust(int id, String name)
    {
        this.id = id;
        this.name = name;
    }
    public void printCustomer()
    {
        System.out.println("The Id is " + id);
        System.out.println("The name is " + name);
    }
}
 
class GFG {
    public static void main(String[] args)
    {
        // Object declaration
        Cust c1;
 
        // object Initialisation
        c1 = new Cust(25, "Siddharth");
 
        // Calling the method of cust
        // class
        c1.printCustomer();
    }
}


输出
The Id is 25
The name is Siddharth