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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

1129閲覧

new使用時の"Simplenameを挿入" "@を指定"などのエラー

nodati

総合スコア1

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

1グッド

0クリップ

投稿2022/05/11 12:07

初歩的な質問で申し訳ないのですが、次の配列の中身を次々に表示するプログラムの中で
コンストラクタを呼ぶ際にnew、また行末から2文字目の)にエラーの下線が表れてしまいます。
エラーの内容は
構文エラーがあります。"SimpleName" を挿入して Name を完了してください
- トークン "new" に構文エラーがあります。このトークンの後には @ を指定する必要
があります
- 構文エラーがあります。"( )" を挿入して Expression を完了してください
の三つです。eclipseを使用しています。
ご教授頂けると幸いです。

java

package javalec3; public class ArrayTest2 { String[] a; ArrayTest2(){ a[0]="Sunday"; a[1]="Monday"; a[2]="Tuesday"; a[3]="Wednesday"; a[4]="Thursday"; a[5]="Fryday"; a[6]="Saturday"; } ArrayTest2(String[] day){ a=day; } String weekstr(int c) { return (a[c]); } public static void main(String[] args) { String b; ArrayTest2 d1 = new ArrayTest2({"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday"}); for (int i = 0; i <= 6; i++) { b = weekstr(i); System.out.println(b.substring(0, 3)); } } }
TN8001👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

Eclipseは使っていないので、エラー文の意味は分かりません。

ArrayInitializer(配列初期化子 int[] array = { 1, 2, 3 };{ 1, 2, 3 }の部分)は、型を明示した変数で受けねばなりません。

var array = { 1, 2, 3 };こうもできませんし、メソッドの引数にもできません(「気が利かないな」とは思いますが、そういう仕様なので仕方がありません^^;

いったん変数で受けるか、newで型を明示します。

それとは別に2か所間違いがありますが、コード内のコメントをご覧ください。

Java

1public class ArrayTest2 { 2 3 String[] a; 4 5 // これなら可能 6// String[] a = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" }; 7 8 ArrayTest2() { 9 // 一個一個入れるならnewでサイズ分確保が必要 10 a = new String[7]; 11 a[0] = "Sunday"; 12 a[1] = "Monday"; 13 a[2] = "Tuesday"; 14 a[3] = "Wednesday"; 15 a[4] = "Thursday"; 16 a[5] = "Fryday"; 17 a[6] = "Saturday"; 18 19 // これすらできないのは厳しすぎる気はするw 20// a = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" }; 21 } 22 23// ArrayTest2(String[] day) { 24// a = day; 25// } 26 // こうしておくと配列としても受け取れるし、可変長引数でも指定できて便利かも 27 // String[] day と両立はできない(内部的には同じメソッドになってしまうため) 28 ArrayTest2(String... day) { 29 a = day; 30 } 31 32 String weekstr(int c) { 33 return (a[c]); 34 } 35 36 public static void main(String[] args) { 37 String b; 38 39 // これはできない! 40// ArrayTest2 d1 = new ArrayTest2({"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday"}); 41 42 // いったん変数で受けるか 43 String[] array = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" }; 44 ArrayTest2 d1 = new ArrayTest2(array); 45 46 // newで型を明示するか どちらか 47// ArrayTest2 d1 = new ArrayTest2(new String[]{ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday" }); 48 49 // 可変長引数 50// ArrayTest2 d1 = new ArrayTest2("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fryday", "Saturday"); 51 52 for (int i = 0; i <= 6; i++) { 53 // weekstrはインスタンスメソッド 54// b = weekstr(i); 55 b = d1.weekstr(i); 56 System.out.println(b.substring(0, 3)); 57 } 58 } 59}

投稿2022/05/12 03:16

TN8001

総合スコア9317

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

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

nodati

2022/05/12 10:26

ご回答ありがとうございます。 型を指定とはそういうことだったのですね、わかりやすい説明、別の書き方など丁寧にありがとうございます。 newを忘れているとはお恥ずかしいです、細かな解説ありがとうございました。
guest

0

Java

1public class ArrayTest2 { 2 3 String[] a; 4 5 ArrayTest2(String[] day){ 6 a=day; 7 } 8 9 String weekstr(int c) { 10 return (a[c]); 11 } 12 13 public static void main(String[] args) { 14 ArrayTest2 d1 = new ArrayTest2(new String[] 15 {"Sunday", "Monday", "Tuesday", 16 "Wednesday", "Thursday", "Fryday", "Saturday"}); 17 18 for (int i = 0; i <= 6; i++) { 19 Sring b = d1.weekstr(i); 20 System.out.println(b.substring(0, 3)); 21 } 22 } 23}

投稿2022/05/12 02:55

episteme

総合スコア16614

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問