Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

クラス変数の省略?

はじめまして。
現在javaの勉強をしているところです。
クラスのインスタンス化では

class A {
}

class main {
    A a = new A();
}
というところは理解できるのですが、参考書でThreadの例に

class B extend Thread {
    String a;
    B(String a){
        this.a = a;
    }
   void run() {
      System.out.println(a);
   }
}

class Main {
    public static void main(String args[]) {
        new B("A").start();
    }
}
という(参考書通りではありませんが)書式がありました。

分からないのは、
new B("A").start();
です。
今までの参考書の方法では

B b = new B("A");
b.start();

となるのでは無いかと思うのですが、参考書にはこの部分の説明がないので理解に苦しみます。
Bクラスでメソッドがひとつで、使用が1回などの場合はクラス変数なしで良いのかな?などと考えていますがどなたか解説していただけませんか?

よろしくお願いいたします。

2

回答

5781

閲覧

2件の回答

評価

10

それはクラス変数じゃない、ローカル変数だ。

ローカル変数に限ったことではないが、そういう一時変数をどのタイミングで作るかに、特段の決まりはない(プロジェクトのコーディング規約なんかはともかく)。
その後に同じ変数を使うのでなければ、別に作らないでもいい。

String a=new StringBuilder().append(a).append('=').append(b).deleteCharAt(0).toString();
なんて書いても、言語的には何ら問題ない。

評価

0

回答ありがとうございます。
変数に関して定義と呼称がまだしっくり頭に入っていないようです。(突っ込みありがとうです。)

>その後に同じ変数を使うのでなければ、別に作らないでもいい。
納得しました。

ご回答ありがとうございました。復習を含め勉強に励みます。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。