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

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

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

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

Q&A

解決済

1回答

571閲覧

javaの戻り値の出力の仕方がわかりません

tera877

総合スコア9

Java

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

0グッド

0クリップ

投稿2023/02/15 19:58

編集2023/02/15 20:07

実現したいこと

returnの数値をmain関数の中で出力したいです。

前提

javaでインタフェースについて学んでいます。参考書に、このようなサンプルコードが出てきたのですが、それぞれのクラスのGetAreaメソッドの戻り値である数値を、main関数で出力したいのですが、コードがわかりません。

インタフェースを実装した三つのクラスの中にある、getArea()は名前が共通しているため、出力する際に、どのように書けばよいのかわかりません。

それぞれの戻り値としている、1.0, 2.0, 3.0を出力する方法はありますか?

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

該当のソースコード

java
ソースコード

interface HasGetAreaMethod { double getArea(); } abstract class Shape { abstract void draw(); } class Rectangle extends Shape implements HasGetAreaMethod { void draw() { System.out.println("□"); } public double getArea() { System.out.println("RectangleクラスのgetAreaメソッドが呼び出されました"); return 1.0; } } class Circle extends Shape implements HasGetAreaMethod { void draw() { System.out.println("〇"); } public double getArea() { System.out.println("CircleクラスのgetAreaメソッドが呼び出されました"); return 2.0; } } class Polygon extends Shape implements HasGetAreaMethod { void draw() { System.out.println("凸"); } public double getArea() { System.out.println("PolygonクラスのgetAreaメソッドが呼び出されました"); return 3.0; } } public class Polymorphism { public static void main(String[] args) { HasGetAreaMethod[] closedShape = new HasGetAreaMethod[3]; closedShape[0] = new Polygon(); closedShape[1] = new Rectangle(); closedShape[2] = new Circle(); for (int i = 0; i < 3; i++) { closedShape[i].getArea(); } } }

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

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

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

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

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

jimbe

2023/02/15 20:21 編集

>インタフェースを実装した三つのクラスの中にある、getArea()は名前が共通しているため インターフェースのメソッドなのですから逆に同じでなければエラーです。 復習が必要に思います。 >HasGetAreaMethod こんな名前を付ける参考書は質が疑われます。
TN8001

2023/02/15 21:18

> 参考書に、このようなサンプルコードが出てきた 出典は質問に明示してください。 [Java 第3版 入門編 ゼロからはじめるプログラミング(三谷 純)|翔泳社の本](https://www.shoeisha.co.jp/book/detail/9784798167060) > それぞれのクラスのGetAreaメソッドの戻り値である数値を、main関数で出力したい 1,2ページ前の「インタフェースの使用例」で、そのものズバリが書いてあると思うのですが... [Java 第3版 入門編 ゼロからはじめるプログラミング - 三谷 純 - Google ブックス](https://books.google.co.jp/books?id=MboZEAAAQBAJ&pg=PT290&lpg=PT290&dq=closedShapes%5Bi%5D.getArea)
guest

回答1

0

ベストアンサー

そのままprintlnの引数に入れてしまえばよいのでは。

Java

1System.out.println(closedShape[i].getArea()); 2

投稿2023/02/15 20:07

m.ts10806

総合スコア80850

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

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

tera877

2023/02/15 20:24

ありがとうございます。無事に出力できました。
m.ts10806

2023/02/15 22:49

もう少し簡単なところから検証コードを書いていったほうが良いと思います。 interfaceや継承以前の問題ですから。
tera877

2023/02/18 10:09

わかりました!アドバイスありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問