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

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

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

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

Q&A

1回答

776閲覧

クラス生成部分→クラス配列を使用する

tapipi

総合スコア13

Java

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

0グッド

0クリップ

投稿2020/04/20 04:41

前提・実現したいこと

Dogクラスを利用するプログラムで、
Dogクラス生成部分をDogクラス配列を使用して書き換えたいのですが、
文字化けを起こしてしまいました。

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

エラーメッセージ

該当のソースコード

こちらのクラス生成部分をクラス配列を使用し書き換えたいです.

java

1public class main { 2 3 /**メインメソッド <BR> 4 * @param args 5 * @return void (なし) 6 */ 7 8 9 public static void main(String[] args) { 10 11 //パッケージ「model」のクラス「Dog」を使用し、インスタンス作成 12 model.Dog dog1 = new model.Dog(); 13 14 dog1.setName("未入力"); 15 dog1.setKind("未入力"); 16 17 //未入力の情報を出力する 18 System.out.println(dog1.getName() +"の情報:種類は" + dog1.getName()); 19 20 21 //Dogクラスのインスタンスを生成(右側)し、dog2クラスに代入する 22 model.Dog dog2 = new model.Dog(); 23 24 25 dog2.setName("ポチ"); 26 dog2.setKind("柴犬"); 27 28 //ポチの名前と犬種を出力 29 System.out.println(dog2.getName() + "の情報:種類は" + dog2.getKind()); 30 31 32//未入力の情報:種類は未入力 33//ポチの情報:種類は柴犬 34 } 35 36} 37

java

1package model; 2 3public class Dog { 4 /*名前・種類*/ 5 6 //インスタンスフィールド(情報を格納する変数)にnameとkindをセット 7 private String name; 8 private String kind; 9 10 11 //コンストラクタの定義 12 public Dog(){ 13 } 14 15 //コンストラクタでフィールドをセットする 16 public Dog(String name,String kind){ 17 18 } 19 20 21 //Nameフィールドのゲッターを定義 22 public String getName() { 23 return name; 24 } 25 26 //Nameフィールドのセッターを定義 27 public void setName(String name) { 28 this.name = name; 29 } 30 31 //Kindフィールドのゲッターを定義 32 public String getKind() { 33 return kind; 34 } 35 36 //Kindフィールドのセッターを定義 37 public void setKind(String kind) { 38 this.kind = kind; 39 } 40 41 42 43 } 44 45

試したこと

文字がバグってしまいます…。

java

1public static void main(String[] args) { 2 3 4 5 //Dogクラス配列を使用する 6 model.Dog[] dog1 = {new model.Dog("未入力", "未入力")}; 7 8 9 //未入力の情報を出力する 10 System.out.println(dog1 +"の情報:種類は" + dog1); 11 12 13 14 //Dogクラス配列を使用する 15 model.Dog[] dog2 = {new model.Dog("ポチ","柴犬")}; 16 17 18 //ポチの名前と犬種を出力 19 System.out.println(dog2 + "の情報:種類は" + dog2); 20 21 22/**実行結果 23[Lmodel.Dog;@7852e922の情報:種類は[Lmodel.Dog;@7852e922 24[Lmodel.Dog;@4e25154fの情報:種類は[Lmodel.Dog;@4e25154f 25*/ 26 } 27 28 29

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

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

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

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

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

y_waiwai

2020/04/20 04:48

文字がバグるとはどういうふうになるんでしょうか 詳しく説明しましょう
guest

回答1

0

配列であるdog2を文字列連結するとObject.toStringが生成する[Lmodel.Dog;@4e25154fのような文字列が出力されます。これは配列組み込みなので変更できません

自分で各要素から表示したい文字列を回収してください。

投稿2020/04/20 04:57

maisumakun

総合スコア145183

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問