Open In App

Brief Overview & Comparison of Object-Oriented Programming from C to Java

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, you will get the ability to think how really OOP works in Java through C.

Through C, you will understand the concept of Polymorphism, Inheritance, Encapsulation, Class, Objects, etc. As you also know C language don’t support OOP, but we can understand the concept behind it by defining a fine structure as a Class and Creating its Identity as an Object.

In Parallel, through Java, we can understand how it really works with actual Class & Object.

From this Comparison, we get the ability to think of Logic behind Object-Oriented Programming.

Understanding the Concept behind the Comparison

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 <stdio.h>
#include <stdlib.h>
 
// 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));
 
    // Similar 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();
    }
}


Output

The Id is 25
The name is Siddharth

 



Last Updated : 08 Dec, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads