質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

5913閲覧

インタフェースがよく理解できません

hiro.a

総合スコア28

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/05/03 02:23

編集2020/05/03 02:44

前提・実現したいこと

java基礎知識学習中インターフェイスについてエラーが発生した為質問しました。

発生している問題・エラーメッセージ

Rect クラスへのアクセスがエラーとなっている
エラーメッセージ

Exception in thread "main" java.lang.IllegalAccessError: failed to access class Rect from class IfSample3 (Rect is in unnamed module of loader 'app'; IfSample3 is in unnamed module of loader com.sun.tools.javac.launcher.Main$MemoryClassLoader @16022d9d)
at IfSample3.main(IfSample3.java:4)

java

1interface Shape{ 2 public double getArea();//面積を計算して返す抽象メソッド(シグネチャのみ定義) 3 4} 5

java

1class Rect implements Shape{//Shapeを実装 2 3 double width; 4 double height; 5 6 Rect(double width, double height){ 7 this.width = width; 8 this.height = height; 9 } 10 public double getArea(){ 11 return width * height; 12 13 } 14}

java

1class Circle implements Shape{ 2 double radius; 3 4 Circle (double redius){ 5 this.radius = radius; 6 } 7 8 public double getArea(){ 9 return radius * radius * 3.14 ; 10 } 11}

java

1class IfSample3 { 2 public static void main(String[] args){ 3 4 Shape s1 = new Rect(10.0, 5.0); 5 showArea(s1); 6 7 Shape s2 = new Circle(3.0); 8 showArea(s2); 9 } 10 11 static void showArea(Shape shape){ 12 System.out.println(shape.getArea()); 13 14 } 15}

試したこと

IfSample3のjava:4がエラーの表示が出ているのでスペルミスがないか確認

補足情報(FW/ツールのバージョンなど)

Mac Atom

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/03 02:31

パッケージどうなってますか?同じ階層ですか? importも含めてコードを全て提示してください。
m.ts10806

2020/05/03 02:33

あと、コード以外はコードのブロック内には入れないでください。 また、コードは全てファイル毎にマークダウンにしてください。
hiro.a

2020/05/03 02:45

早速お回答ありがとうございます。 修正いたしました。 importなのですがこちらのコード参考書を利用して記述しているのですが importはありません。
Yasumichi

2020/05/03 03:15

同じ階層(フォルダ)にあれば、import とか必要ないですが、4つのファイルはすべて同じ階層にありますか? m.ts10806 さんと同じ確認ですけど。
hiro.a

2020/05/03 03:19

すみません。そこの回答をしてませんでした。 全て同じ階層にあります。
Yasumichi

2020/05/03 03:22

Atom からコンパイル、実行してる感じでしょうか?どのように環境構築したか、あるいはどこを見て環境構築したか、説明できますか?
Yasumichi

2020/05/03 03:27

Circle (double redius){ this.radius = radius; } 蛇足ですが、引数と代入している変数名が異なっています。
hiro.a

2020/05/03 03:52

まだ初心者なので詳しく説明はできないですが、 基礎からのJavaと言う書籍を使って勉強していまして 環境構築はQiitaでMacでJavaの環境構築を検索して構築しています。
Yasumichi

2020/05/03 04:40

> 環境構築はQiitaでMacでJavaの環境構築を検索して構築しています。 見たページが分かるようであれば、そこのリンクを押してください あと、コンパイルとかはどうやっていますか?
hiro.a

2020/05/03 05:04

すみません 解決できました。コンパイルの仕方が間違っていました。
m.ts10806

2020/05/03 05:06

書籍、ネットの記事参照は結構なのですが、バージョンが違うと全く参考にならない時もあります。環境構築とビルドは特にそうですね。 必ずあわせてください。バージョンの違いを吸収するのってそれなりの経験があっても大変です。
guest

回答1

0

ベストアンサー

内容が誤っていたため確認中です。

4つのファイルが同じ階層(ファルダー)において、ソースを試してみましたが、こちらでは問題なく動作します。

【追記】
色々、やり取りした結果、コンパイルの方法に問題があったようで解決されたようです。

投稿2020/05/03 02:45

編集2020/05/03 05:09
Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問