アプリ版:「スタンプのみでお礼する」機能のリリースについて

Java言語で学ぶデザインパターン入門で、デザインパターンの勉強をしています。
しかし、いきなりimportで失敗し躓いてしまいました。

==========Iterator.java==========
package iterator;

public interface Iterator{
public abstract boolean hasNext();
public abstract Object next();
}
============================
.
.
==========Aggregate.java=========
import iterator.*;

public interface Aggregate{
public abstract Iterator iterator();
}
=============================

Aggregate.javaのimport文でエラーが出てしまいます。
Iterator.javaとAggregate.javaは同じディレクトリに配置しています。
エラーの解決方法を教えてください。
どなたかよろしくおねがいします。

A 回答 (4件)

同じディレクトリに置いちゃいけません。


Javaでは、例えば、パッケ―ジ名a.b.c、クラス名dなら
ソースのルートディレクトリに対して
a/b/c
というディレクトリに
d.java
というソースを置かないといけません。

この質問の場合

ソースのルートディレクトリに対して
iteraterディレクトリにIterator.java
ルートディレクトリにAggregate.java
を置かないとコンパイル出来ません。
    • good
    • 0

こんばんは


同一パッケージでは、インポートいらないです
パッケージをまたぎたいからインポートします

インターフェースのメソッドは、public abstractが暗黙了解なので記載必要ありません
    • good
    • 0

>Iterator.javaとAggregate.javaは同じディレクトリに配置しています。



両方ともiteratorディレクトリですか?
もし、そうだとすると

>==========Aggregate.java=========
>import iterator.*;
>public interface Aggregate{
>public abstract Iterator iterator();
>}

↑こちらにも「package iterator;」を付与して下さい(下記参照)。

==========Aggregate.java=========
package iterator;
import iterator.*;
public interface Aggregate{
public abstract Iterator iterator();
}

↑この場合、(同じpackageなので)「import iterator.*;」は必要ないと思います。
    • good
    • 0

> Iterator.javaとAggregate.javaは同じディレクトリに配置しています。


今のディレクトリに iterator という名前のディレクトリを作って Iterator.java をそこに移動してください。

パッケージの説明については……検索して見つけたものだけどここがわかりやすいかな?
http://www1.bbiq.jp/takeharu/java51.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!