今回は前回に引き続き、型についてもう少し深くメモっておきたいと思います。
型には種類があり、宣言した型に沿うデータにしか対応できない点。基本的には整数、実数、文字、論理の4つを使用します。
型は上の4つだけではなく、実は細かく分類されています。
整数型といえばint型を真っ先に思いつきましたが、扱う数の範囲によって細かく分けられていました。
・byte : -128 ~ 127
・short : -3,2768 ~ 32767
・int : -2,147,483,648 ~ 2,147,183,647
・long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
byteやshortは数が少ない感じがするし、longは数が大きすぎて何を想定してるんだって印象を受けます。
こう考えるとintがちょうどよいサイズって感じしますね。よく見かけるのも勝手に納得しました。
整数以外を取り扱う型も存在します。主に小数を利用する目的の型が、
float :±1.40239846×10^-45~±3.40282347×10^38
double :±4.94065645841246544×10^-324~±1.79769313486231570×10^308
かなり精密な計算結果が出そうな小数点以下の桁数まで出してくれそうですね。これも普段はfloatで良さそう。
文字を扱う型として、
char : Unicode準拠
があります。Unicodeという文字コード規格があり、一文字を0 ~ 65535の範囲の数字で表したものです。
文字を扱うと聞いてよく聞くStringはどうなるのかというと、char型は一文字を表すものに対し、Stringは0文字以上の文字が集まったモノです。お互いに扱っているモノは似ていますが、お互いに代入しようとしてもエラーが出ます。
最後にboolean型と呼ばれる。論理を扱うための型。
これは、boolean型というデータ型にtrue(真)かfalse(偽)のどちらかのデータが入ることを指します。この2つ以外のデータは入らないようになっています。
基本の4つの型に加えて、変数の初期化した時の値が明らかな場合、型推論による変数宣言が出来ます。
これは何かと言うと、プログラマが型を明示しなくてもコンパイラがどの型に当てはまるのか判断してくれることをいいます。
その時に使うのが、var という型です。
宣言でこれを使うと、
class Sengen{
public static void main(String[] args){
var num = 123;
var num2 = 3.14;
var num3 = "Hello World";
System.Out.println(num);
System.Out.println(num1);
System.Out.println(num2);
}
}
123
3.14
Hello World
全て型は var で統一されていますが、var型を使用することで代入されたデータから、どの型が相応しいか推論して適切な形で表示してくれます。
実行結果は本来の型を使用した時と同じ出力結果で、本来の型を使用して宣言したのと同じ扱いになります。
例えば一つ目の結果 123 は int num = 123; と入力したのと同じです。
今日はここまでとします。
何か間違ってましたらツッコミお願いいたします。