在本文中,您将能够思考如何通过 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