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

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

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

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

Q&A

解決済

2回答

3202閲覧

エディタの下から3行目の文の左に✖が出ていて,説明がありますがまったくわかりません。教えていただけませんか。

退会済みユーザー

退会済みユーザー

総合スコア0

Eclipse

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

0グッド

0クリップ

投稿2019/04/13 04:08

Eclipseを勉強中です。
以下のList2_27.javaの下から3行目の文「PersonalComputer myComp = new PersonalComputer();」で
エラーが出ます。
エディタの下から3行目の文の左に✖が出ていて説明があり、まったくわかりません。教えていただけませんか。
エラー説明は以下の通りです。
「アクセス可能な型List2_27のエンクロージング・インスタンスがありません。
型List2_27のエンクロージング・インスタンスで割り振りを限定する必要があります。(たとえば x.new A()で、xはList2_27のインスタンス)。」

とギザギザの赤い線にマウスを置くと出ます。

Eclipseの構成は次の通りです。
プロジェクトSampleproj/src/taturou/List2_27.java/List2_27.class
Sampleproj/src/taturou/List2_25.java/List2_25.class

情報が足りない場合はご指摘頂ければありがたいです。

package taturou; public class List2_25 { public static void main(String[] args) { Computer myComp = new Computer(); myComp.installSystem("windows XP","taturou"); myComp.printData(); } } class Computer { String system = "no"; String user = "nobody"; void installSystem(String os, String usr) { system = os; user = usr; } void printData() { System.out.println("System:" + system+"\t\tUser Name:" + user); } }
package taturou; public class List2_27 { class PersonalComputer extends Computer { int cpu = 0; } public static void main(String[] args) {    PersonalComputer myComp = new PersonalComputer(); myComp.installSystem("windows XP","taturou"); myComp.printData(); } }

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

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

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

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

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

m.ts10806

2019/04/13 04:52

>情報が足りない場合 でているエラーに対して調べたことを記載してください。
guest

回答2

0

staticではない内部クラスのインスタンスは、外部のクラスのインスタンスに紐づきます。
つまり、List2_27のインスタンスを介さないと生成できないのです。

解決法は主に三つで、上から順にお勧めします。

  • PersonalComputerをList2_27外部に移動する (内部クラスで無くす)
  • staticキーワードを付与する
  • List2_27インスタンスを先に作っておく

投稿2019/04/13 04:15

編集2019/04/13 04:18
LouiS0616

総合スコア35660

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

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

退会済みユーザー

退会済みユーザー

2019/04/13 05:07

ありがとうございます。久しぶりですね。これからもよろしくお願いします。 前に出てきたことありますが忘れましたが、staticキーワードを付与するとどうして消えるのですか。
LouiS0616

2019/04/13 05:12

外部クラスのインスタンスとは独立してインスタンスを作れることを明示できるからです。 平たく言えばそういう仕様だからです。 ともかく今回の例では、staticにせよ非staticにせよ、PersonalComputerをList2_27の内側に入れる妥当な理由はありません。 PersonalComputer.java を用意するのが楽で本質的だと思います。
退会済みユーザー

退会済みユーザー

2019/04/13 05:15

arigatougozaimasu.
退会済みユーザー

退会済みユーザー

2019/04/13 05:15

ありがとうございます。
guest

0

ベストアンサー

いまPersonalComputerクラスはList2_27クラスの内部クラスという扱いのため、List2_27クラスのインスタンス経由でないとアクセスできません。

java

1//やるとしたらこうなる 2PersonalComputer computer = new List2_27().new PersonalComputer();

こうしないためには、PersonalComputerのクラス宣言でstaticを使うか、List2_27クラスの外でPersonalComputerクラスを宣言するかしてください。

投稿2019/04/13 04:23

swordone

総合スコア20651

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

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

退会済みユーザー

退会済みユーザー

2019/04/13 05:04

ありがとうございます。ネットにたくさん回答がありました。2つとも試しましたがどちらも、 エラーがきえました。内部クラス、外部クラスは初心者のため、わかっているようでよくわかりませんが、 これから何回も聞いて、勉強するうちにしっくりくると思います。今、600ページ中の123ページまで来ています。PersonalComputer computer = new PersonalComputer();をどこに入れるのかの説明がなくて、適当に入れて試してみました。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問