На самом деле ... Есть способ иметь ту же семантику, что и в C #include (позднее ключевое слово было заимствовано в C ++ для того, чтобы выглядеть причудливо ...). Он не определен одними и теми же словами, но делает именно то, что вы ищете.
Сначала давайте посмотрим, что вы делаете с #include в C ++, чтобы понять вопрос:
- включает
#defines
,
- определения "прямой" функции (их "тело" определяется в другом месте, в реализации класса, если вы помните Turbo Pascal, вы поймете мою точку зрения),
- определить структуры,
и это почти все.
Для определений структуры нет смысла, это старая школа C: в C ++ вы больше не определяете struct {}
веками, вы определяете class
структуры со свойствами и методами доступа, то же самое в Java : здесь нет typedef struct {}
.
Для этого у вас есть объявление "interface", см. https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html
Это именно то, что вы ищете:
public interface MyDefines {
final CHAR_SPACE : ' '; // ugly #define
int detectSpace(FileInputStream fis); // function declaration
// and so on
}
Затем использовать:
public class MyClass extends MyAncestor implements MyDefines {
...
// implementation of detectSpace()
int detectSpace(FileInputStream fis) {
int ret = 0;
char Car;
if((Car = fis.read()) != -1) && (Car == CHAR_SPACE)) ret++;
...
}
Прочитайте приведенную выше ссылку, она полна полезных случаев.