Java 嵌套类的实际用途是什么?
我是一个Android编程的新手,对下面的代码没有什么困惑。 这部分代码来自android开发者网站:Java 嵌套类的实际用途是什么?,java,Java,我是一个Android编程的新手,对下面的代码没有什么困惑。 这部分代码来自android开发者网站: public final class FeedReaderContract { // To prevent someone from accidentally instantiating the contract class, // give it an empty constructor. public FeedReaderContract() {} /*
public final class FeedReaderContract {
// To prevent someone from accidentally instantiating the contract class,
// give it an empty constructor.
public FeedReaderContract() {}
/* Inner class that defines the table contents */
public static abstract class FeedEntry implements BaseColumns {
public static final String TABLE_NAME = "entry";
public static final String COLUMN_NAME_ENTRY_ID = "entryid";
public static final String COLUMN_NAME_TITLE = "title";
public static final String COLUMN_NAME_SUBTITLE = "subtitle";
...
}
}
我在Java文档和一些其他博客中阅读了一些关于嵌套类的文章,了解了使用嵌套类的以下原因:
创建嵌套类的确切目的是什么?此特定嵌套类用作与其主类相关的
字符串常量的命名空间
- 它是
抽象的
,因此不用于实例化
- 它实现了
BaseColumns
接口,本质上是一种将字符串常量“转储”到FeedEntry
类中的方法
为什么他们使用嵌套类而不是独立类
使用嵌套类强调内部类与其外部类之间的“语义紧密性”。您的代码读者必须明白,FeedEntry
只能在FeedReaderContract
的上下文中进行解释。否则,FeedEntry
就没有意义了。基本上,这是为代码的人类读者而做的,因为在这种情况下,编译器不会有什么不同。最好在Google上搜索。嵌套类可以访问host classI的字段。我对abstract和Basecolumns接口没有问题,我非常清楚地理解它们。我只是想了解使用这个嵌套类的逻辑。@RaazDhakal如果你了解发生了什么,你不了解他们逻辑的哪一部分?为什么他们使用嵌套类而不是独立类?或者是别的什么?耶,为什么他们用嵌套类而不是独立类??