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(); } } |
The Id is 25 The name is Siddharth