0
0

Java学習 変数

Last updated at Posted at 2024-01-10

変数の違い

プログラミング言語によって変数の扱い方は異なり、「動的型付け言語」と「静的型付け言語」の2種類がある。
今まで学習してきたRubyは「動的型付け言語」で、Javaは「静的型付け言語」。

データ型

データ型とは、変数に格納するデータの種類のこと。
「数値としての1」と「文字としての1」はプログラムの上では異なるものとして扱われます。

Javaでは変数を定義するときに、その変数をどのデータ型として扱うのかプログラムに伝えるため、使用前に「宣言」してから使用する。

Javaの基本データ型は以下の8種類

データ型 bit数 
boolean 1bit true あるいは false
char 16bit 文字
byte 8bit 整数(扱える範囲は -128~127)
short 16bit 整数(扱える範囲は-32,768~32,767)
int 32bit 整数(扱える範囲は-2,147,483,648~2,147,483,647)
long 64bit 整数(扱える範囲は-9223372036854775808~9223372036854775807)
float 32bit 小数(精度低)
double 64bit 小数(精度高)

小さめの数値を扱うint型と、大きめの数値を扱うlong型が使用頻度が高い。

小さめの数値を扱う型と、大きめの数値を扱う型で使用するメモリに 8bt ~ 64bit と、違いがあり、扱う数値が大きくなると必要なメモリサイズも増える

データ型の扱い方の違い

「動的型付け言語」と「静的方付け言語」の2種類の違い

動的型付け言語

rubyが該当する。

a = 2
puts(a * 2)
# 4と出力される。
# 数値の4として扱われる。

a = "ruby"
puts(a * 2)
# rubyrubyと出力される。
# 文字列として扱われ、2回繰り返している。

a = "2"
puts(a * 2)
# 22と出力される。
# 文字列として扱われ、2回繰り返している。

上記のような違いが出るのは、どのような値が代入されたかによって、変数のデータ型が柔軟に変更され、そのデータ型に基づいて処理が行われていることを表している。

このように、「プログラムの実行時に変数のデータ型が決定される仕組み」を採用している言語が、「動的型付け言語」。

静的型付け言語

動的型付け言語とは異なり、変数のデータ型を最初に決定したら変更できない仕組み。
javaが該当する。

最初に「整数」として宣言した変数に、「文字列」を代入しようとするとエラーになる。

柔軟性がなく不便なようだが、あらかじめ宣言しておくことで処理が高速になったり、データ型の不整合によるエラーを実行前に検知できるなどのメリットがある。

変数の宣言と使い方

型名 変数名;

行末に「;(セミコロン)」をつける。
Javaでは、命令の終わりに「;(セミコロン)」が必要で、書き忘れるとエラーになる。
宣言した後の変数は、Rubyと同様に使うことができる。

class Main {
  public static void main(String[] args) {
    int number;
    number = 2;
    System.out.println(number * 3);
  }
}
// int型で整数(数値)として扱うことを宣言している。

System.out.printlnは、()で囲んだ中身を出力するメソッドで、Rubyのputsに相当する。

class Main {
  public static void main(String[] args) {
    int number;
    number = エラーになる;
    System.out.println(number);
  }
}
// int型で整数(数値)として扱うことを宣言しているため、文字を代入するとエラーになる。

下記はreplitで出力されたエラー文

./Main.java:3: error: cannot find symbol
    var radius = エラーになる;
                 ^
  symbol:   variable エラーになる
  location: class Main
1 error
1 class Main {
2   public static void main(String[] args) {
3     //ここに処理を記述する
4   }
5 }

1・2・4・5行目の記述は必ず書かなくてはいけないテンプレートのようなもの。
詳しくは別の記事。

型推論

var 変数名 = 

この記述を行うと、値の種類によってデータ型が推論され、推論されたデータ型で宣言が行われる。

class Main {
  public static void main(String[] args) {
    var number = 2;
    System.out.println(number * 3);
  }
}

上記記述を行うと、代入する値(今回は2)からデータ型を推論してくれるため、int型であるという宣言が不要になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0