关于c语言中的obj和java中的obj,我们可以通过以下几个方面来进行比较。
首先,c语言中的obj是指object file,也就是目标文件。它是由编译器生成的,包含已经编译过的代码和数据。这个文件是可执行文件的一个中间文件,需要经过连接器的处理才能生成最终的可执行文件。
#include <stdio.h> int main() { printf("Hello, world!"); return 0; } // 生成目标文件 gcc -c hello.c -o hello.o // 生成可执行文件 gcc hello.o -o hello
而在java中,obj是指Object类,它是所有类的父类。所有的对象都可以赋值给Object类型的变量,因为java对类型的要求是严格的,所以需要一个公共的父类来实现这一特性。
// Object类的定义 public class Object { public native int hashCode(); public boolean equals(Object obj) { return (this == obj); } protected Object clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } public final native Class<? extends Object> getClass(); protected void finalize() throws Throwable { } } // 实例化一个Object对象 Object object = new Object();
此外,c语言中的obj还有一种特殊意义,即Objective-C语言中的对象类型。Objective-C是一种基于C语言的面向对象编程语言,而其对象类型正是由obj来表示。
// Objective-C的class定义 @interface Person : NSObject @property (nonatomic, copy) NSString *name; @property (nonatomic) NSInteger age; @end // 实例化一个Person对象 Person *person = [[Person alloc] init]; person.name = @"Jack"; person.age = 20;
综上所述,c语言中的obj和java中的obj有很大的区别。c语言中的obj指目标文件或Objective-C中的对象类型,而java中的obj指Object类,它是所有类的父类。