- ベストアンサー
public interfaceの記述場所
- public interfaceの記述場所について教えてください。
- Android StudioでMyApplicationを作成後、public interfaceのコードを追加する方法を教えてください。
- MainActivityやExampleInstrumentedTestのファイルにpublic interfaceのコードを追加するべきか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>「interface」に「public」が付与されている場合、「public」が付与されている「class」が存在しない(「public」が付与されてない「class」は存在しても良い)「java」ファイルでないと記述できないようです(1ファイル内に複数の「interface」を記述可)、その「java」ファイルには「public」が付与されてない「interface」も混在可。 申し訳御座いません、訂正です。 「interface」に「public」が付与されている場合、「public」が付与されている「class」が存在しない(「public」が付与されてない「class」は存在しても良い)「java」ファイルでないと記述できないようで、そのファイル名と同じインターフェイス名にする必要があるようです。 「public」が付与されているメインの「interface」は1ファイル内に1つだけしか記述できないようです、その「java」ファイルには「public」が付与されてない「interface」も混在可(「public」が付与されてない「interface」は1ファイル内に複数記述可)。 その ご質問の条件の場合、下記のルールから、新たな「java」ファイルが必要になります。 (「MainActivity」(javaファイル)と同じフォルダーに)「 HatenaApiInterface」と言う「java」ファイルを新規作成([Kind]は[Interface]に指定して下さい)し、そのファイルに そのインタフェースを記述して下さい。 (新規作成時は問題ないのですが)interface を編集(変更)した場合は[Build]→[Clean Project]や、[Run]→[Clean and Rerun]など Clean を実行しないと変更が反映されないようです。 (上記で前述したとおり)「public」が付与されたメインの「interface」は「1ファイル内に1つだけしか記述できない」と言う制約があるので、1ファイル内に複数 収めたい場合は「public」が付与されたメインの「interface」内に「public」が付与されたサブの「interface」を複数記述すると言う手法が考えられますが、それが最善か少々疑問です。 インタフェースの宣言(interface) http://www.javaroad.jp/java_interface2.htm >インタフェースのアクセスレベルを指定します。publicがなければインタフェースと同じパッケージ内で定義されたクラスのみからアクセスできることを表します。publicがあれば全クラスからアクセスできることを表します。 つまり、全クラスから その「interface」にアクセス可能にしたければ「public」を付与する、同一パッケージ内のみだけから その「interface」にアクセスを制限したければ「public」を付与しない、と言う事になります。 「interface」に「public」が付与されてない場合は、「public」が付与されている「class」が存在する「java」ファイルや、「public」が付与されている「class」が存在しない(「public」が付与されてない「class」は存在しても良い)「java」ファイルにも記述可。 その場合メイン・クラスの外側にも記述可、クラスの内側にも記述可なようです(あくまで個人的な主観ですが、クラスの内側に「interface」を記述するのは あまり推奨されないような気がします)。 「interface」に「public」が付与されている場合、「public」が付与されている「class」が存在しない(「public」が付与されてない「class」は存在しても良い)「java」ファイルでないと記述できないようで、そのファイル名と同じインターフェイス名にする必要があるようです。 「public」が付与されているメインの「interface」は1ファイル内に1つだけしか記述できないようです、その「java」ファイルには「public」が付与されてない「interface」も混在可(「public」が付与されてない「interface」は1ファイル内に複数記述可)。