🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

2回答

626閲覧

【Java】インスタンス化でintに関してエラーが生じる

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/02/11 01:26

Javaで、オブジェクトを学習しています。インスタンス化する際に、デフォルトの数値を上書きすべく、数字を入れるとエラーがついてしまいます。2パターンのエラーがありました。原因と改善方法のヒントをお願いいたします。

完成形

1 番目の人のステータス
◆【名前】太郎
◆【年齢】30
◆【エネルギー】20

ソースコード①Main

DemoPerson person1 = new DemoPerson("太郎",30); System.out.println(DemoPerson.person_num + " 番目の人のステータス"); person1.showStatus();

上記に対するエラーメッセージは以下になります。

コンストラクター DemoPerson(String, int) は未定義です

DemoPerson person1 = new DemoPerson("コードキャンプ太郎"); person1.age=30; System.out.println(DemoPerson.person_num + " 番目の人のステータス"); person1.showStatus();

上記に対するエラーメッセージは以下になります。

型の不一致: int から Age には変換できません

ソースコード②Person

// フィールド String name; // 名前 Age age; // 年齢 Energy energy; // エネルギー static int person_num = 0; // コンストラクタ(引数が1つバージョン) public DemoPerson(String name) { this.name = name; this.age = new Age(); this.energy = new Energy(); person_num++; } // コンストラクタ(引数が2つバージョン) public DemoPerson(String name, Age age) { this.name = name; this.age = age; this.energy = new Energy(); person_num++; } // コンストラクタ(引数が2つバージョン) public DemoPerson(String name, Energy energy) { this.name = name; this.age = new Age(); this.energy = energy; person_num++; } // コンストラクタ(引数が3つバージョン) public DemoPerson(String name, Age age, Energy energy) { this.name = name; this.age = age; this.energy = energy; person_num++; } // ステータスを表示する void showStatus() { System.out.println("◆【名前】" + this.name); System.out.println("◆【年齢】" + this.age); System.out.println("◆【エネルギー】" + this.energy); }

ソースコード③Age

public class Age { int age; @Override public String toString() { return "" + age; } public Age() { this.age = 20; } public Age(int age) { this.age = age; } }

ソースコード④Energy

public class Energy { int energy; @Override public String toString() { return "" + energy; } public Energy() { this.energy = 20; } public Energy(int energy) { this.energy = energy; } }

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

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

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

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

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

guest

回答2

0

どちらもエラーメッセージの通りです。

コンストラクター DemoPerson(String, int) は未定義です

DemoPersonのコンストラクタの第2引数にintを取るものが定義されていません。

型の不一致: int から Age には変換できません

Age型の変数にint型の値を代入しようとしていますが、不可能です。

投稿2021/02/11 01:34

swordone

総合スコア20669

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

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

0

// コンストラクタ(引数が2つバージョン)

public DemoPerson(String name, Age age) {

2番めの引数がintではない!
と、いうはなしですが、それどうにかしましょう

投稿2021/02/11 01:33

y_waiwai

総合スコア88040

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問