1.リテラル
リテラルとは、ソースコードに書き込まれる値のことを指します。
Java言語のリテラルは、大別すると下記の6種類のリテラルが存在します。
- 整数リテラル
- 浮動小数点リテラル
- 文字リテラル
- 文字列リテラル
- 論理値リテラル
- nullリテラル
ひとつづつ解説していきます。
①整数リテラル
その名のとおり整数を表すリテラルです。
ex1) 10 (いつも私たちが使っている10進数の10)
ex2) 0x0A (16進数での10)
※16進数を表記したい場合、数値の前に0xを付け加えます。
ex3) 0b1010 (2進数での10)
※2進数を表記したい場合、数値の前に0bを付け加えます。
➁浮動小数点数リテラル
小数部をもつ数値を表します。
ex1) 3.14 (いつも私たちが使っている10進数の3.14)
ex2) 3e4 (3.0×10の4乗 → 30000.0)
※指数を表すeまたはEをつかうことで、上記のような表記が出来ます。
③文字リテラル
1つの文字を表現します。文字は「’」シングルクォートで囲みます。
ex1) ‘A’
その他、Unicode値という4桁の16進数を指定すると、1文字を表現できます。
Unicode値については、「そういうのがある。」ということだけ覚えて下さい。
ex2) ‘\u3012’ (※1文字扱いなのでシングルクォートで囲む!)
文字リテラルは基本的に「’」シングルクォートで囲んで表記しますが、なかには例外もあります。
改行やタブ文字を表記する場合、下記のように表記します。覚えて下さい。
ex3) \n (改行)
ex4) \t (タブ)
④文字列リテラル
その名のとおり、文字列のリテラル。「”」(ダブルクォート)で囲みます。
2文字以上の文字列は「”」と覚えて下さい!
ex) “Hello”
⑤論理値リテラル
真(true)か偽(false)の値を表現します。この2つしかないので覚えて下さい。
文字列ではない為、「”」で囲ってはいけません!
ex1) true
ex2) false
⑥null リテラル
nullとは何もはいっていないよ。ということを表現しています。
今はこれだけ覚えて下さい。
2.変数と定数
2-1.変数とデータ型
変数とは、データを格納する入れ物のことです。変数には好きな好きな名前を付けることができます。
ですが、変数には扱うデータにより、それぞれ決まった型がありそれをデータ型と呼びます。例えばbyte型というデータ型に「1」という数値を入れることはできますが、「’A’」という文字は入れることができません。
データ型を覚えないと変数を宣言できない為、まずは下記の基本データ型8種類を覚えてください。
◇基本データ型◇
byteは255の範囲を持っていて、-128~127を表記できます。ファミコンのドラクエ等のゲームはbyteを使っているためステータスの上限値255になります。ニゴゴと覚えて下さい。
shortは65535の範囲を持っています。パチスロを打つ人にはピンとくる数字かもしれません。65535分の1でフリーズが起きる。というのは、shortを使っているためです。ロクゴーゴーサンゴと覚えて下さい。
intの範囲は-2147483648 ~ 2147483647ですが、覚えなくて良いです。short以上の場合に使うと覚えておきましょう。
longの範囲はintより遥かに膨大です。稀にintでは事足りないときに使う。ということだけ覚えて下さい。
float,doubleは小数を表す際に使います。基本はfloatを使い、だいたい7桁を超えるような数字を表す際にはdoubleを使います。
charは文字を表します。注意してほしいのは1文字のみだということです。文字列に関しては、まったく別の表し方をします。
booleanは真偽を表します。trueとfalseの2種類しか表せません。簡単なので覚えて下さい。
2-2.変数の宣言と値の代入
変数を扱うには宣言をして、その変数に値を格納する、すなわち代入することで扱えます。早速、構文を教えます。
データ型 変数名;
//変数宣言変数名 = 値; ←変数に値を代入
ex1)
byte Lysis; //変数宣言
Lysis = 100; //変数に値を代入
上記のような記述で、byte型のLysisという名前の変数を作り、その変数に100という値を代入することができました。
また、変数宣言と代入を同時に行うことも出来ます。むしろコチラの書き方が主流の為、覚えて下さい。
ex1#)
byte Lysis = 100; //変数を宣言して、変数に値を代入
変数に値を格納する際、long型とfloat型のときには気を付けて下さい。
・long型のときにはL(もしくは小文字のl)をつけること。そうしないとコンパイルエラーになります。
ex2)
long Lysis = 10000000000L; //変数を宣言して、変数に値を代入
・float型のときにはF(もしくは小文字のf)をつけること。そうしないとコンパイルエラーになります。
ex3)
float Lysis = 3.14f; //変数を宣言して、変数に値を代入
また、float,double型には3e4 (3.0×10の4乗)のような表記ををすることができます。
ex4)
float Lysis = 3e4; //変数を宣言して、変数に値を代入
ここで注意して欲しいのが、float型は小数を表すので、格納される値は30000.0になります。絶対に.0が付くことを覚えておいてください。
2-3.定数
定数とは、その名のとおり定まった変数のことです。
変数は一度使っても、そのあとに再代入が可能です。
ex1)
class Sample1{
public static void main (String[] args){
int hensu = 1; //変数に1を代入
hensu = 2; //変数に2を再代入
}}
↑上記のプログラムに問題はありません。変数「hensu」には2が入っています。
では定数だと、どうなるでしょう。
構文
final データ型 変数名; //変数宣言
※変数の構文の頭にfinalを付けるだけ!簡単!!
class Sample2{
public static void main (String[] args){
final int teisu = 1; //定数に1を代入
teisu = 2; //変数に2を再代入できない
}}
上記ソースはコンパイルエラーになります!
定数はそのシステム上で変わることのない数値を格納する際に便利なので、覚えましょう。
2-4.文字列 【String 型】
文字列を表す際、String型を使います。char型は一文字なのに対して、複数文字を表すことができます。
構文
String aisatsu = “Hello”
String型は先程の表の基本データ型ではなく参照型と呼ばれています。
基本データ型だと、ひとつの領域に1文字しか格納できません。String型は格納した値を取りに行っているのではなく、上の例で言うと「Hello」という文字のかたまりを参照している為、参照型と呼ばれています。
ちなみに、基本データ型のbooleanは参照型でもあります。詳しくは後の章で出てきますが、booleanがただの基本データ型ではないということだけ覚えて下さい。
2-5.変数名の命名規則
変数名を付ける際、好きな名前を付けていいのですが、ルールがあります。また、このルールは変数だけでなく、第6章以降出てくるクラスやメソッドにも適用されます。これらを総称して識別子と呼びます。ここで覚えてしまいましょう。
◆命名規則
①半角英数(と一部の記号)で記載する
②1文字目は、英字(a~z,A~Z)、ドル記号($)、アンダーバー(_)のみ使用可能
ex) 「Lysis」「lysis」「$Lysis」「_Lysis」 →全てOK!
③2文字目以降は数字を使用可能
ex) 「Lysis7」「L7ysis」 →OK!
「7Lysis」 →1文字目に数字が来てるからNG!
④大文字、小文字は厳密に区別される
ex)「Lysis」「lysis」 →どちらもOKだが、完全に別物!
⑤文字数に制限がない
ex)「LLLLLLLLLLLLLLLLLLLLLysis」 →OK!
⑥予約語は使用できない
※予約語とは、「int」とか「void」とか、要するにJava言語内で既に使われている語句だと覚えて下さい。
ex) int byte = 1; →予約語の為NG!
以上で基本データ型の説明は終了です。
全部覚えたら、小テストを受けてみましょう!
小テストはコチラから。
テストで満点を取れたら次の項へ進みましょう。
3.配列
配列とは同じデータ型をまとめて宣言できる便利なものです。ひとまず構文から。
構文
データ型[] 配列名; //配列の宣言
配列名 = new データ型[要素数]; //領域の確保
※配列から領域の確保まで一発で記載する方法もあります。
データ型[] 配列名 = new データ型[要素数];
※ちなみに、配列の宣言方法は上記だけではなく3種類の方法があります。
ex)データ型→int。配列名→idの場合。
・int[] id; //データ型の直後に[]。上記構文と同じ、一番ベターな形
・int id[]; //配列名の直後に[]。
・int []id; //配列名の直前に[]。
分かり辛いですが試験に出るので覚えましょう。
配列宣言時、[]の位置はデータ型の直後。または配列名の前後と覚えましょう。
では、配列はどんな時に使うのでしょうか。
ex)50人分のIDを管理するとき(変数ver)
今まで覚えた変数を使って50人分のIDを管理すると・・・
int id1 = 1001; //id1のid番号は1001
int id2 = 1002; //id1のid番号は1002
int id3 = 1003; //id1のid番号は1003
・・・
int id50 = 1050; //id50のid番号は1050
上記のように膨大な数の宣言と代入をしなければなりません。そんな面倒なことをしなくても、配列を使うともっと短く綺麗に記述できます。
構文
データ型[] 配列名 = {値1, 値2, 値3, …. , 値n};
ex)50人分のIDを管理するとき(配列ver)
int[] id = new int[50]; //idという配列の宣言、作成。50個の領域確保
int[] id = {1001, 1002, 1003, … , 1050};
//id[0]の番号は1001、id[1]の番号は1002、id[2]の番号は1003….
//id[49]の番号は1050
上記のようにだいぶスッキリ記述することができました。
◆添え字 (配列の記述の[]の中身)
配列の中の[]内の数字を添え字と呼びます。添え字は配列の要素数を表しています。上記例「50人分のIDを管理するとき(配列ver)」の青字[50]は50個の要素数を持っていることを示しています。
また、注意して欲しいのは添え字は0からはじまることです。
「50人分のIDを管理するとき(配列ver)」の場合、
id[0] の中身は 1001が入っています。
id[1]には1002、id[3]には1003…と続いています。
◆.length(配列の要素数を調べる)
lengthを使うと要素数を調べることができます。
構文
データ型[] 配列名 = {値1, 値2, 値3, …. , 値n};
配列名.length //要素数を獲得
ex)
int[] id123 = {1, 2, 3 } //配列id123の中に「1」「2」「3」の3つをを格納。
int id123size = id123.length; //id123size変数には3が格納される。
上記例文だとid123sizeという変数のなかにはid123のlength、つまり「3」が入ることになります。
4.コマンドライン引数
コマンドライン引数とはクラス名の後に値を指定してあげると、mainメソッド(パパブリックスタティックボイドメイン…)にString型の配列として渡してくれるJavaの便利な機能です。
構文
(※実行時コマンド)
java クラス名 値1 値2 値3 … (値の前は半角スペース)
ピンと来ないと思うので、例文へ。
ex)
class Sample {
public static void main(String[] args) {
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
System.out.println(args[1] +args[2] );
}
}
上記ソース、コンパイルはできますが、
$java Sample
で実行してもエラーになります。引数が指定されていませんから。
$java Sample 5963 株式会社 Lysis
とすると結果は以下の形で配列として格納されます。
ですので、実行時の結果は、
5963 //args[0]が表示
株式会社 //args[1]が表示
Lysis //args[2]が表示
株式会社Lysis //args[1]+args[2]が表示
となります。