プログラミング

プログラミング初心者のJavaSilver修羅の道#3〜定数・配列・ローカル変数型推論〜



プログラミング初心者の私が実務未経験転職するにあたり、会社の研修資料以外にも本格的に自主的な勉強をするためについに始めました。今回はそのシリーズの第3段となります。第1段,第2段は下記から見れます。

現在使用している参考書は「オラクル認定資格教科書 JavaプログラマSilver SE11」いわゆる紫本と呼ばれる参考書です。今後は白本・黒本を活用しつつ勉強していくと思います。

オラクル認定資格教科書 JavaプログラマSilver SE11

 定数

固定された値。宣言時にfinal修飾子が必要。定数として宣言すると、初期化以降は値を代入し直すことは出来ない。

ローカル変数型推論

JDK10より使用可能となる。これにより「ローカル変数の宣言時に特定のデータ型ではなくvarが利用できる。

int num1 = 10 ;  →  var num1 = 10 ;

右辺の値から変数のデータ型が推論できること!

<varが使用できない場所>

・メソッドの引数
・コンストラクタの引数
・メソッドの戻り値
・フィールド(メンバ変数)
・catchブロック

配列

1次元配列

※配列自体は参照型となります。

以下のような,初期値が代入されていない変数を出力しようとするとコンパイルエラーとなります。

int i ;

System.out.println(i);

しかし、配列の場合は初期値が自動的に設定されるので、

int [ ] array = new int [1];

System.out.println(array[0]);

とすると、「0」が出力されます。ちなみにこの例の場合、インデックス番号が1、2・・・とすると存在しない番号なので実行時エラーが起きます。

多次元配列

①要素数が揃っている配列

int [ ][ ] array ; //配列の宣言
array = new int [3][4] ; //配列の作成
array [0][0] = 100 ; //配列の初期化

または

int [ ][ ] array = { 
 { 10,20,30,40 },
 { 50,60,70,80 },
 { 90,100,110,120 }
} ;

上記はどちらもint [ ][ ] array =new int [3][4] ;のarray配列となります。

わかりやすく図解にしてみると以下のようになります。

②要素数が不揃いな配列

考え方は要素数が揃っている時と同じです。

int [ ][ ] array = new int [3][ ] ;
array [0] = new int [3] ;
array [1] = new int [5] ;
array [2] = new int [2] ;

③配列の宣言と初期化の注意点

実行可能なコードとコンパイルエラーとなるコードの例を載せておきます。

コマンドライン引数

javaコマンド実行時にプログラムへ渡す事ができる値のこと。
main()メソッドにString型の配列として渡されます。

実行する際に以下とすると、

java Main tanaka 10 20 “hello hello”

下記コードの時、
(中略)

System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
System.out.println(args[1]+args[2]);

System.out.println(args[3]);

コンパイル・実行した結果としては、

tanaka
10
20
1020

hello hello

※「1020」となるのは、String型として渡されるため。「hello hello」となるのは、「””」で区切られた文字列が1つの箱に格納されるため。

となります。

図解を作ったり、再度参考書やノートを読み直したりと記事を書くのにも意外と時間がかかります。しかし、プログラミングの勉強をしたいのと同時にブログで何かを書くことも好きなので、勉強しながらブログの記事も書けるこのスタンスは一石二鳥だと思いませんか?(笑)

そして、本をただ2回読み返すよりもやっぱり頭の定着も理解度も変わってきている気がします。

「楽しみながら勉強」これを忘れずに今後も頑張っていこうと思います。

では、また👋

ABOUT ME
ヒロ
社会人2年目/23歳/趣味はゲーム・サウナ・サッカー&フットサル・読書・BABYMETALです。 ヒロの人生放浪記1(はてブ版)→https://t-nero.hatenablog.com/