こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

java内部クラスについて

内部クラスがstaticな場合
public class mainclass{
  public static void main(String[] args) {
    innerClass ic = new innerClass();
  }

  public static class innerClass{
  }
}

と innerClass ic = new innerClass();で動作しnewできますが、
class が static でない場合どういう書き方になりますでしょうか?

色々と理解不足がある状況だとおもいますがよろしくお願いいたします。

投稿日時 - 2018-05-17 15:36:28

QNo.9499329

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(5)

ANo.5

基本は「public static」は無しにして、メイン・クラスの外に出す、どうしてもpublicが必要なが必要な場合は別ファイルを作る、と言う感じでしょうか。

投稿日時 - 2018-05-17 23:27:50

お礼

よくよく考えたら内部クラスではstatic無しに実現できないですね。
ありがとうございました。

投稿日時 - 2018-05-18 12:33:18

ANo.4

「回答No.1」はインナー・クラスにしないと言う事です。

投稿日時 - 2018-05-17 23:19:12

お礼

よくよく考えたら内部クラスではstatic無しに実現できないですね。
ありがとうございました。

投稿日時 - 2018-05-18 12:33:09

ANo.3

>public class mainclass{
>static dynamic d;
>public static void main(String[] args) {
>d = new dynamic();
>}
>}

↑「static dynamic d;」の定義は必ず「main(~)」メソッドの外で定義して下さい。

投稿日時 - 2018-05-17 23:13:50

お礼

よくよく考えたら内部クラスではstatic無しに実現できないですね。
ありがとうございました。

投稿日時 - 2018-05-18 12:33:03

ANo.2

冗長的な感はありますが起動用クラスを作れば、別途ファイルを作る必要はありません(下記参照)。
mainメソッド内は「d = new dynamic();」だけにして、「dynamic( )」コンストラクターにプログラムを記述して下さい(dynamicの名前は分かりやすければ何でも良いです)

public class mainclass{
static dynamic d;
public static void main(String[] args) {
d = new dynamic();
}
}

class dynamic{
dynamic( ){
innerClass ic = new innerClass();
}

public class innerClass{
}
}

投稿日時 - 2018-05-17 23:07:49

お礼

よくよく考えたら内部クラスではstatic無しに実現できないですね。
ありがとうございました。

投稿日時 - 2018-05-18 12:32:54

ANo.1

「public static」を消して、mainclassの外に出して下さい(下記参照)
「public」を残したい場合は「innerClass.java」と言うファイルを作って、そのファイルに「innerClass」を移動して下さい

public class mainclass{
public static void main(String[] args) {
innerClass ic = new innerClass();
}
}

class innerClass{
}

投稿日時 - 2018-05-17 22:51:35

お礼

よくよく考えたら内部クラスではstatic無しに実現できないですね。
ありがとうございました。

投稿日時 - 2018-05-18 12:32:45

-広告-
-広告-
-広告-
-広告-