Java final

使っている参考書は
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
です!!!!

【問題 5-3】
public class Test {
 final int a;
 Test(int b) { a = b;}
 void method(int c) { a = c;}
 public static void main(String[] args) {
  Test t = new Test(10); // ①
  t.method(20); // ②
  System.out.println(t.a);
 }
}

フィールドのインスタンス変数aには、final修飾子がついているので
定数として扱われる

よって

①のコンストラクタでの変数初期化はOKだが
②のmethod()で、変数aをいじろうとすると
コンパイルエラー(文法間違い)になる( ;´Д`)

JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス
JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス

Java staticイニシャライザ

使っている参考書は
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
です!!!!

【問題 5-2】
public class Test {
 public static void main(String[] args) { // ①
  Test test = new Test():
 }
 Test() { // ②
  System.out.println("constructor");
 }
 static { System.out.println("static"); } // ③
}

とりあえず、③って何??ϵ( 'Θ' )϶
って感じなのですが
→ staticイニシャライザ(initial)
→ クラスをインスタンス化する前や、main()メソッドを呼び出す前に実行される

ということで
処理順としては
③ staticイニシャライザ

① mainメソッド

② Testのコンストラクタ

JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス
JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス

Java クラス

使っている参考書は
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
オラクル認定資格教科書 Javaプログラマ Silver SE 7 -
です!!!!

【問題 5-1】
public class Cow {
 final static Cow cow = new Cow(); // ①
 public static void main(String[] args) {
  Cow cowOne = cow; // ②
  Cow cowTwo = cow.dive(cow); // ③
  Cow cowThree = cow; // ④
  System.out.println(cowOne == cowTwo): // ⑤
  System.out.println(cowOne == cowThree); // ⑥
 }
 Cow dive(Cow c) { // ☆
  c = new Cow();
  return c;
 }
}

これ自分的にちょっと難しいので
ちょっと後回しにしてもいいですか??笑

いきなり難しくないか、、、(´Д` )
JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス
JavaプログラマSilver SE 7 [ 山本道子(プログラミング) ] - 楽天ブックス