以下のJavaプログラム①を利用したプログラム②の実行結果の意味がよくわかりませんでした。
① abstract public class AsciiFigure { private String mark = "*"; // デフォルトは "*" /** mark を設定する */ public void setMark(String mark) { this.mark = mark; } /** 1行に n個の mark を出力する * サブクラス以外からは使われないと考えて,protectedにしている */ protected void putLine(int n) { for (int i = 1; i <= n; i++) { System.out.print(mark); } System.out.println(); } /** * 図形を描く. * abstractメソッドなので,サブクラスで適切にオーバライドする. */ abstract public void draw(); }
② public class AsciiFigureTester2 { public static void main(String args[]) { String marks[] = {"*", "*", "|", "#"}; AsciiFigure af[] = new AsciiFigure[4]; af[0] = new AsciiTriangle(5); af[1] = new AsciiTriangle(7); af[2] = new AsciiRectangle(2, 3); af[3] = new AsciiSquare(3); DrawFigures df = new DrawFigures(af, marks); df.draw(); } }
実行結果
$ javac AsciiFigureTester2.java AsciiFigureTester2.java:5: エラー: シンボルを見つけられません af[0] = new AsciiTriangle(5); ^ シンボル: クラス AsciiTriangle 場所: クラス AsciiFigureTester2 AsciiFigureTester2.java:6: エラー: シンボルを見つけられません af[1] = new AsciiTriangle(7); ^ シンボル: クラス AsciiTriangle 場所: クラス AsciiFigureTester2 AsciiFigureTester2.java:7: エラー: シンボルを見つけられません af[2] = new AsciiRectangle(2, 3); ^ シンボル: クラス AsciiRectangle 場所: クラス AsciiFigureTester2 AsciiFigureTester2.java:8: エラー: シンボルを見つけられません af[3] = new AsciiSquare(3); ^ シンボル: クラス AsciiSquare 場所: クラス AsciiFigureTester2 エラー4個
Javaを始めてからまだ二週間程度で基礎的な質問かもしれませんが、Javaの理解を深めたいので、理由を教えてくれたらとても助かります。
回答2件
あなたの回答
tips
プレビュー