我有点熟悉C,我知道对于几乎每个头文件,我都必须创建源文件.
现在我正在研究java接口和实现,它看起来是一样的.
首先,您只需在一个类中命名变量和方法,然后在其他类中定义它们.
C和Java中的这些东西是基本相同还是相似?
解决方法
Java接口和C头/实现文件是不同的概念.
C有一个文本编译模型.因此,要在代码中使用某些东西(例如函数),编译器必须首先解析该函数的定义.通过将内容放入要从许多源文件中使用的头文件中,它可以节省您必须重新写出函数定义的原因,因为您可以将相同的头文件包含在使用该头中的内容的许多源文件中.
void PrintMessage(std::string text);
它们也可以通过编写方法体来定义:
void PrintMessage(std::string text) { cout << text; }
您只能在编译单元中定义一次函数(这是编译器在#includes被替换为包含的文件的文本后看到的所有文本).但是,只要声明相同,就可以多次声明一个函数.您必须定义一次调用的每个函数.这就是为什么你有一个.cpp文件为每个.h文件. .cpp定义.h文件中声明的所有函数. .h文件包含在所有使用这些函数的.cpp文件中,并被包含在定义函数的.cpp文件中一次.
Java在查看项目中的所有文件时编译项目的时候会找到函数定义的位置. C一次只编译一个.cpp文件,只查看#included头文件.
Java接口等同于C抽象基类.它本质上是一组方法的声明,包括它们采用的参数类型和返回值的类型. Java接口或C抽象基类可以由Java类或C类继承,它实际上定义(实现)这些方法是什么.
在C中,当您创建一个类时,通常(有异常)将方法声明放入头文件中,并将定义放在.cpp文件中.但是,在Java中,您只需要编写方法的定义,这些定义相当于C定义和声明.您可以将所有java方法定义放在一个文件中.