淘先锋技术网

首页 1 2 3 4 5 6 7

C和Java都是常见的编程语言,但它们在面向对象编程方面存在一些显著区别。

c和java面向对象的对比

语言结构


C:
struct 类型名称 {
  变量类型 变量名称;
  ...
};

Java:
public class 类名称 {
  访问控制符 变量类型 变量名称;
  ...
}

从语言结构可以看出,C语言使用结构体来模拟类的概念,而Java则直接使用class定义类。Java的类中的变量必须被定义访问控制符,而C语言的结构体中所有变量都是public的。

成员函数


C:
void 类型名称_函数名称 (类型名称 *this) {
  ...
}

Java:
访问控制符 函数返回值类型 函数名称 (参数列表) {
  ...
}

在C语言中,成员函数需要显式地传入一个指向当前对象的指针参数,而Java则不需要。此外,Java中可以使用访问控制符来控制函数的访问权限。

继承


C:
struct 类型名称_子类名称 {
  父类类型名称 父类对象;
  子类自有变量类型 子类自有变量名称;
  ...
};

Java:
class 子类名称 extends 父类名称 {
  子类自有变量类型 子类自有变量名称;
  ...
}

C语言中没有直接的继承概念,而是通过在子类中嵌入一个父类对象来实现类似继承的概念。Java则使用extends关键字来实现继承,并且可以使用super关键字来调用父类的方法。

多态


C:
typedef 父类类型名称 子类类型名称;

Java:
父类名称 对象名称 = new 子类名称();

在C语言中,可以使用typedef来实现类型重命名。在Java中,可以创建一个父类对象并使用子类的构造函数进行初始化,从而实现多态。

综上所述,C语言与Java语言在面向对象编程方面有许多的异同之处。对于程序员来说,选择适合自己的编程语言是非常重要的。