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

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

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

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

解決済

抽象クラスを用いた計算

fuku-ruby
fuku-beginner

総合スコア2

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

2回答

0リアクション

1クリップ

337閲覧

投稿2022/08/03 10:27

編集2022/08/04 00:25

前提

先程質問して、足りない部分があったので追記で再度質問させていただきました。
まだまだ自分はJavaに触れたばかりで初心者でわからないことが多いため、こちらで質問させていただきます。
Javaのmain部分にてキーボードから値を入力し、配列に格納した後に値を計算するという問題を行っています。
そこで問題としては入力した値と抽象クラスと継承したクラスを用いて計算するということをしたいのですが、どうやって入力した値を抽象クラスのフィールドに格納して計算するのかわかりません。
どなたか詳しいやり方を教えていただけると幸いです。

実現したいこと

・値をキーボードから入力し、配列に格納する
・抽象クラスとクラスを用いて、計算を行う。

該当のソースコード

Java

abstract class Array{ protected int num[] = new int[5]; public void setNum(int n[]) { num = n; } } class Average extends Array{ public int getNum() { int total = 0; for(int i = 0; i < num.length; i++) { total += num[i]; } return (total / num.length); } } public static void main(String[] args){ Scanner sc = new Scanner(System.in); Array num[] = new Array[5]; int[] a = new int[5]; System.out.println("数値を5つ入力してください"); a[5] = sc.nextInt(); num[5].setNum(a); } ### 試したこと 色々試してみたので、main部分は適当になっています。 ほんとに詰まっているので、新しく意見がほしいです。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

BeatStar

2022/08/03 10:45

質問は無駄に立てないで編集してください。 質問は編集できるので編集してください。お願いします。
BeatStar

2022/08/03 10:50

それとまずはabstractを使わない方法でやってみてください。 というか、なぜabstractが出てくるんでしょうか? 別にabstractを使わずともできるし、わざわざabstractにするほどでもないんですが…
fuku-ruby

2022/08/03 11:01

やり方が分からなかったので、もう1本たててしまいました。 教えていただきありがとうございます。 なぜ「abstract」を使うのかは、問題が抽象クラスを用いなければならない問題だっただからです。 なのでタイトルにも抽象クラスと記載しています。 教えいただいた抽象クラスはこの「abstract」を使う方法なのですが、他にあるのでしょうか? それとmain部分のみ使った方法ではキーボード入力からの計算は可能です。
jimbe

2022/08/03 13:06

つまり抽象クラスが分からないというだけのようですので、抽象クラスについて学習(復習?)してください…ということになると思います。
BeatStar

2022/08/03 13:45

こっちの質問かもう一方の質問を削除依頼出してください。
BeatStar

2022/08/04 00:13

重箱の隅をつつくようだけど、「文字列を入力してください」ではなくて、「数値を入力してください」では? 文字列ってのは「おはよう」とかの数字以外の文字で構成されている方を連想します。一応数字で構成されていても文字列とは言いますが、ユーザは基本的に滅茶苦茶なことをするのでちゃんと書いた方がいいです。「半角英数字10文字以内で入力してください」と明示されているのになぜか漢字を含んだ文字列とか半角ではあっても15文字以上をコピペとかで入れようとしてたりとか。 なのではっきり書いた方がいいですよ。
dodox86

2022/08/04 03:46

多分誤解を受け易いご質問内容だと思いますので、大きなお世話ながらちょっと確認と補足をしてみたいと思います。 1. もともとが学校など、どこかから出された課題で、その課題が「とにかく抽象(abstract)クラス」を使うことが必須の条件なのですよね。  (配列に数値を入れていくということだけを考えると、その必要は無いので) 2. 抽象クラスを使いさえすれば課題の条件を満たすので、その抽象クラスの名前(質問中のコードで言えば"Array")やその派生クラス(同"Average"クラス)は自由に決めて良いということなのですよね? ArrayやAverageの名前は質問者fuku-beginnerさんがお決めになったのだと思いますが、 名前の適切さは経験や好み、設計で基準が変わることがあります。 課題の解答として変えて良い部分と守らなければならない部分を明示した方が良いかもしれません。 本来であれば抽象クラスを使うほどの問題とは思えません。質問内容を初見で読んだ者には、それが違和感となります。
BeatStar

2022/08/04 06:34

えっと…もう一つのアカウントって同じ方ですか? もしそうなら規約違反だと思いますよ…? https://teratail.com/legal の「第七条」の「(10)」には > ユーザーIDを他者と共有する行為 とありますから…

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。