「intはIntegerの略」じゃない? Java初心者が混乱する“根本的な違い”とはJavaの「int」「Integer」を比較【第1回】

「Java」における「int」と「Integer」は、いずれも文字通り整数を扱うための仕組みだ。ただしintとIntegerには根本的な違いがある。それぞれの基本的な特徴を整理しよう。

2023年07月16日 09時30分 公開
[Cameron McKenzieTechTarget]

 プログラミング言語・実行環境の「Java」には、整数を扱うための仕組みとして「int」と「Integer」の2つがある。“字面”だけで判断して「intもIntegerも同じであり、intはIntegerの略に過ぎない」と考えてはいけない。intとIntegerは名称は似ているものの、それぞれの特徴は大きく異なる。どのような違いがあるのか。

実は別物だった「int」と「Integer」 その“端的な違い”はこれだ

 Javaにおいて、intは整数を表すための変数の型(数値や文字列といったデータの種類)を指す。intは、Javaが標準で用意する8つの型「プリミティブ型」の1つだ。

 Integerは、フィールド(データ)とメソッド(処理)をまとめたオブジェクトとして、intを利用できるようにするクラス(オブジェクトの設計図)を指す。このようにオブジェクトとしてプリミティブ型を利用可能にするクラスを「ラッパークラス」と呼ぶ。

 Javaでintの変数を宣言すると、その変数は代入した整数を表すだけだ。それ以外の情報を提供することはない。つまりintについて、以下のことが言える。

  • intの変数はフィールドを持たない
  • intの変数からメソッドを呼び出すことはできない
  • 「equals」を使って、intの変数同士を比較することはできない
    • equalsはIntegerで利用できるメソッド。引数として与えたオブジェクトと、メソッドを呼び出したIntegerオブジェクトの値を比較する。
  • intの変数は継承ができない
    • 継承は、基となるクラスのフィールドやメソッドを引き継いで、新しいクラスを作成すること。

 intの変数は、保持する値を計算や比較に使用することしかできない。以下にintの変数を使ったJavaのソースコード例を示す。

int x = 10; // intの変数「x」を宣言し、初期値として10を代入する。
int y = 20; // intの変数「y」を宣言し、初期値として20を代入する。
int sum = x + y; // intの変数「sum」を宣言し、初期値としてxとyを加算した結果を代入する。
int difference = x-y; // intの変数「difference」を宣言し、xからyを減算した結果を初期値として代入する。
boolean flag = (x == y); // boolean(真偽値を扱う型)の変数「flag」を宣言し、xとyが等しい場合は「true」、異なる場合は「false」を代入する。

 次回は、intとIntegerの違いを掘り下げる。

関連キーワード

Java | プログラミング


TechTarget発 エンジニア虎の巻

米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。

ITmedia マーケティング新着記事

news186.jpg

世界のブランド価値ランキング 「フェラーリ」が成長率トップの一方で「テスラ」は……
Interbrandが毎年発表する世界のブランド価値評価ランキング「Best Global Brands」の202...

news140.jpg

「リスクヘッジ購買」の実態 購入後に生活者が気にしていることとは?
電通デジタルは、「EC・店頭をまたぐ購買行動実態調査2024」を実施した。コロナ禍の行動...

news052.jpg

ホンダがアイルトン・セナ登場の感動動画をリリース F1ブームが世界で再燃する背景に何が?
米国でモータースポーツの人気が再燃している。Hondaの新たな広告動画では、F1のアイコン...