型
| 日本語 | 型 |
| 英語 | type |
| ふりがな | かた |
| フリガナ | カタ |
変数の「原型」。
データを格納する「変数」は、「型 変数名;」という形式で、型を使って「変数」を「宣言」することで初めて使うことができる。こうして作られた変数は「変数 = 値;」という形で値を格納することができる。
型そのものにデータを格納することはできない。たとえば「型 = 値;」のように、型に値を入れることはできない。型はあくまで変数の原型であり、変数そのものとはならないからである。
「バケツの金型」のようなものをイメージするといい。金型そのものに水は入れられない。金型を元にバケツを作ることで、そのバケツに水を入れることができるようになる。この「バケツ」が「変数」、「水」が「格納する値」、「金型」が「型」である。
型には「プリミティブ型」や「参照型」が該当する。
プリミティブ型はint型やdouble型が該当し、整数や浮動小数点を格納することができる。
参照型は「参照値」と呼ばれる値を格納することができる。参照値は、クラスや配列といったインスタンスを指し示す番号である。参照型変数は、格納している参照値を通して、その参照値が指し示すインスタンスを操作することができる。
ただし、参照型の場合、参照型変数の型と、その指し示すインスタンスの型は、必ずしも一致しない。これはポリモーフィズムが行われるためである。
変数やリテラル、戻り値は必ず「型」を持っている。
変数は、作られた際の「型」が、その変数の「型」となる。
リテラルは、リテラルによって型が決まる。整数リテラルであればint型、文字列リテラルであればStringクラスの参照型である。
戻り値は、メソッドの「戻り値の型」がその値の型となる。
変数に格納されている値やリテラル、戻り値を、他の変数にコピーする場合、型が一致している必要がある。
型が異なる場合、その「格納先変数の型」へと変換してからコピーする必要がある。
この、変数であれば変数の中の値、リテラルであればその値を、戻り値であればその値を、自らの型と違う型へと変換することを「型変換」と言う。
型が異なる場合、異なる型へと「型変換」する必要がある。その際、暗黙的キャストが行われる場合は自動的に型変換が行われる。それ以外は明示的にキャストする必要がある。
データを格納する「変数」は、「型 変数名;」という形式で、型を使って「変数」を「宣言」することで初めて使うことができる。こうして作られた変数は「変数 = 値;」という形で値を格納することができる。
型そのものにデータを格納することはできない。たとえば「型 = 値;」のように、型に値を入れることはできない。型はあくまで変数の原型であり、変数そのものとはならないからである。
「バケツの金型」のようなものをイメージするといい。金型そのものに水は入れられない。金型を元にバケツを作ることで、そのバケツに水を入れることができるようになる。この「バケツ」が「変数」、「水」が「格納する値」、「金型」が「型」である。
型には「プリミティブ型」や「参照型」が該当する。
プリミティブ型はint型やdouble型が該当し、整数や浮動小数点を格納することができる。
参照型は「参照値」と呼ばれる値を格納することができる。参照値は、クラスや配列といったインスタンスを指し示す番号である。参照型変数は、格納している参照値を通して、その参照値が指し示すインスタンスを操作することができる。
ただし、参照型の場合、参照型変数の型と、その指し示すインスタンスの型は、必ずしも一致しない。これはポリモーフィズムが行われるためである。
変数やリテラル、戻り値は必ず「型」を持っている。
変数は、作られた際の「型」が、その変数の「型」となる。
リテラルは、リテラルによって型が決まる。整数リテラルであればint型、文字列リテラルであればStringクラスの参照型である。
戻り値は、メソッドの「戻り値の型」がその値の型となる。
変数に格納されている値やリテラル、戻り値を、他の変数にコピーする場合、型が一致している必要がある。
型が異なる場合、その「格納先変数の型」へと変換してからコピーする必要がある。
この、変数であれば変数の中の値、リテラルであればその値を、戻り値であればその値を、自らの型と違う型へと変換することを「型変換」と言う。
型が異なる場合、異なる型へと「型変換」する必要がある。その際、暗黙的キャストが行われる場合は自動的に型変換が行われる。それ以外は明示的にキャストする必要がある。
参考サイト
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// プリミティブ型のひとつ、int型の変数を宣言します。
int i;
// そのint型変数に整数リテラルを代入します。
i = 100;
System.out.println( i );
// 100
// プリミティブ型 int そのものには値を入れられません。
// int = 100;
// トークン "=" に構文エラーがあります。
// 正しくは "Identifier" です。
// 先ほど宣言したiの型は「int型」です。
// このiの中に格納されている値を渡せるのは、
// 同じint型変数になります。
int i2;
i2 = i;
System.out.println( i2 );
// 100
// 型が異なる変数にコピーする場合、コピー元の値を
// コピー先の型へ変換してから、コピーされます。
long l;
l = i;
// int型からlong型へ、iに格納されている値が
// 暗黙的にキャストされ、long型へ変換されてから、
// 変数lに格納されました。
// 暗黙的にキャストされない場合には、明示的にキャスト
// する必要があります。
char ch;
ch = (char)i;
// int型からchar型へ、iに格納されている値が
// 明示的にキャストされ、char型へ変換されてから、
// 変数chに格納されました。
}
}
public class Sample
{
public static void main( String[] args )
{
// プリミティブ型のひとつ、int型の変数を宣言します。
int i;
// そのint型変数に整数リテラルを代入します。
i = 100;
System.out.println( i );
// 100
// プリミティブ型 int そのものには値を入れられません。
// int = 100;
// トークン "=" に構文エラーがあります。
// 正しくは "Identifier" です。
// 先ほど宣言したiの型は「int型」です。
// このiの中に格納されている値を渡せるのは、
// 同じint型変数になります。
int i2;
i2 = i;
System.out.println( i2 );
// 100
// 型が異なる変数にコピーする場合、コピー元の値を
// コピー先の型へ変換してから、コピーされます。
long l;
l = i;
// int型からlong型へ、iに格納されている値が
// 暗黙的にキャストされ、long型へ変換されてから、
// 変数lに格納されました。
// 暗黙的にキャストされない場合には、明示的にキャスト
// する必要があります。
char ch;
ch = (char)i;
// int型からchar型へ、iに格納されている値が
// 明示的にキャストされ、char型へ変換されてから、
// 変数chに格納されました。
}
}
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// プリミティブ型のひとつ、int型の変数を宣言します。
int i;
// そのint型変数に整数リテラルを代入します。
i = 100;
System.out.println( i );
// 100
// プリミティブ型 int そのものには値を入れられません。
// int = 100;
// トークン "=" に構文エラーがあります。
// 正しくは "Identifier" です。
// 先ほど宣言したiの型は「int型」です。
// このiの中に格納されている値を渡せるのは、
// 同じint型変数になります。
int i2;
i2 = i;
System.out.println( i2 );
// 100
// 型が異なる変数にコピーする場合、コピー元の値を
// コピー先の型へ変換してから、コピーされます。
long l;
l = i;
// int型からlong型へ、iに格納されている値が
// 暗黙的にキャストされ、long型へ変換されてから、
// 変数lに格納されました。
// 暗黙的にキャストされない場合には、明示的にキャスト
// する必要があります。
char ch;
ch = (char)i;
// int型からchar型へ、iに格納されている値が
// 明示的にキャストされ、char型へ変換されてから、
// 変数chに格納されました。
}
}
「みだし」に含まれているページ
「解説」に含まれているページ
- !演算子
- %=演算子
- %演算子
- &&
- &&演算子
- &=演算子
- (
- *=演算子
- *演算子
- ++演算子
- +=演算子
- +演算子
- ,
- --演算子
- -=演算子
- -演算子
- .
- /=演算子
- /演算子
- 16進数
- <<=演算子
- <<演算子
- <T>
- ==演算子
- =演算子
- >>=演算子
- >>>=演算子
- >>>演算子
- >>演算子
- [
- ^=演算子
- ArrayList
- ArrayStoreException
- BigDecimal
- BigInteger
- boolean
- Boolean
- booleanリテラル
- BufferedInputStream
- BufferedWriter
- byte
- Byte
- ByteArrayInputStream
- ByteArrayOutputStream
- C++言語
- case
- char
- Character
- CharArrayReader
- CharArrayWriter
- ClassCastException
- clone
- close
- Comparable
- Comparator
- CREATE TABLE
- C言語
- DataInputStream
- DataOutputStream
- Date
- default
- double
- Double
- equals
- false
- FileInputStream
- FileOutputStream
- FileReader
- final変数
- float
- Float
- for
- forステートメント
- getBytes
- getter
- HashMap
- HttpSession
- InputStream
- InputStreamReader
- instanceof
- int
- Integer
- ISO-8859-1
- Iterable<T>
- Iterator
- java.sql.Date
- JspWriter
- JSP式
- JSP暗黙オブジェクト「exception」
- LineNumberInputStream
- long
- Long
- Math
- NaN
- null
- NullPointerException
- Object
- OutputStream
- OutputStreamWriter
- PipedInputStream
- PipedOutputStream
- PipedReader
- PipedWriter
- PreparedStatement
- println
- PrintStream
- PrintWriter
- privateフィールド
- protectedフィールド
- publicフィールド
- PushbackInputStream
- PushbackReader
- Reader
- ResultSet
- return
- setter
- short
- Short
- size
- SQLException
- Statement
- static final
- staticフィールド
- static初期化子
- StringBuffer
- StringBufferInputStream
- StringReader
- StringWriter
- superフィールド
- switch
- switchステートメント
- synchronizedブロック
- this
- Timestamp
- toString
- true
- UDP
- Unicode
- unsigned
- valueOf
- void
- whileステートメント
- Writer
- |=演算子
- ||演算子
- ~演算子
- 「D」
- 「d」
- 「F」
- 「f」
- 「L」
- 「l」
- アップキャスト
- アドレス
- アンボクシング変換
- インスタンス
- インターフェイス
- エポック
- オブジェクト型
- オブジェクト指向
- オートボクシング
- オーバーライド
- オーバーロード
- ガベージコレクション
- キャスト
- キャスト演算子
- クイックソート
- クラス
- コレクション
- シンボル
- ジェネリッククラス
- ジェネリックメソッド
- スコープ
- ステートメント
- ストリーム
- ソート
- ダウンキャスト
- テーブル
- データベース
- トークン
- ナローイング変換
- バイト
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- ビット
- ビットフラグ
- フィールド
- プリミティブ型
- プロトタイプ
- ボクシング変換
- ポリモーフィズム
- メソッド
- ラッパー
- リテラル
- リフレクション
- ローカル変数
- ワイドニング変換
- 丸め誤差
- 二次元配列
- 仮数部
- 修飾子
- 倍精度浮動小数点型
- 全角
- 内部クラス
- 列
- 初期値
- 割り算
- 動的束縛
- 匿名クラス
- 半角
- 単精度浮動小数点型
- 単項+演算子
- 単項-演算子
- 参照
- 四捨五入
- 型
- 型変換
- 基本データ型
- 変数
- 変数宣言
- 契約による設計
- 安定ソート
- 完全修飾クラス名
- 定数
- 宣言
- 寿命
- 引き算
- 引数
- 戻り値
- 拡張for
- 指数部
- 排他的論理和
- 掛け算
- 整数
- 整数リテラル
- 文字
- 文字コード
- 文字ストリーム
- 文字リテラル
- 文字入力ストリーム
- 文字出力ストリーム
- 明示的
- 暗黙的
- 桁溢れ
- 構造体
- 浅いコピー
- 浮動小数点
- 浮動小数点リテラル
- 深いコピー
- 添え字
- 演算
- 演算子
- 無限大
- 真偽値
- 符号
- 符号なし
- 符号付き
- 算術右シフト
- 精度
- 累乗
- 自然数
- 行列
- 論理否定
- 論理和
- 論理演算
- 論理積
- 足し算
- 辞書
- 配列
- 配列初期化子
- 降順
「サンプルプログラムとか」に含まれているページ
- !=演算子
- !演算子
- &&演算子
- &=演算子
- &演算子
- *演算子
- ++
- ++演算子
- +演算子
- --演算子
- -演算子
- /演算子
- 10進数
- 16進数
- 2の補数
- 2進数
- 8進数
- <%= %>
- <<=演算子
- <<演算子
- <=演算子
- <T>
- <演算子
- ==演算子
- =演算子
- >=演算子
- >>=演算子
- >>>=演算子
- >>>演算子
- >>演算子
- >演算子
- ?演算子
- @deprecated
- [
- ^=演算子
- ^演算子
- ArrayList
- ArrayStoreException
- ASCII
- BigDecimal
- boolean
- booleanリテラル
- BufferedOutputStream
- BufferedWriter
- byte
- Byte
- ByteArrayInputStream
- ByteArrayOutputStream
- char
- CharArrayReader
- clone
- close
- Comparable
- compareTo
- CP932
- CREATE TABLE
- DataInputStream
- DataOutputStream
- Date
- Deprecated
- DOM
- double
- DTD
- EOF
- EOFException
- equals
- EUC
- EUC-JP
- false
- FileInputStream
- FileOutputStream
- FileReader
- FilterOutputStream
- finalクラス
- final変数
- float
- forステートメント
- getBytes
- HashMap
- Hashtable
- IANA
- import
- InputStream
- instanceof
- int
- ISO-10646-UCS-2
- ISO-2022-JP
- ISO-8859-1
- java.sql.Date
- JAVA_HOME
- Java仮想マシン
- JSP式
- long
- Map
- NaN
- new
- Node
- null
- Object
- ObjectInputStream
- ObjectOutputStream
- OutputStreamWriter
- println
- PrintStream
- PrintWriter
- privateクラス
- privateメソッド
- protectedクラス
- protectedメソッド
- publicクラス
- ResultSet
- return
- SELECT
- Serializable
- Shift_JIS
- short
- Short
- StackOverflowError
- Statement
- static final
- staticクラス
- staticメソッド
- strictfp
- String
- StringReader
- switch
- switchステートメント
- synchronizedブロック
- throw
- Throwable
- throws
- Timestamp
- toString
- transient
- true
- UCS-2
- UDP
- Unicode
- US-ASCII
- UTF-8
- void
- whileステートメント
- Windows-31J
- Xerces
- XML
- |=演算子
- ||演算子
- |演算子
- ~演算子
- 「D」
- 「d」
- 「F」
- 「f」
- 「L」
- 「l」
- 「偽」
- 「真」
- アップキャスト
- アンボクシング変換
- インスタンス
- インスタンスは不変
- インターフェイス修飾子
- エイリアス
- エンクロージングインスタンス
- オブジェクト型
- オブジェクト指向
- オートボクシング
- オーバーライド
- オーバーロード
- キャスト
- キャスト演算子
- クエリー
- クラス
- クラス修飾子
- コンストラクタ修飾子
- コンパイルタイムエラー
- サフィックス
- シフトJIS
- ジェネリッククラス
- ジェネリックメソッド
- スコープ
- スタック領域
- ステートメント
- ソート
- ダウンキャスト
- ダンプ
- テキストファイル
- テーブル
- データベース
- ナローイング変換
- バイアス
- バイト
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- バイナリーファイル
- バッファアンダーフロー
- バッファアンダーラン
- バッファオーバーフロー
- バッファオーバーラン
- ビット
- ビットシフト演算子
- ビットフラグ
- ブロックします
- プリミティブ型
- ボクシング変換
- ポリモーフィズム
- メソッド修飾子
- メソッド呼び出し変換
- ラッパー
- ローカルクラス
- ローカル変数
- ワイドニング変換
- 丸め誤差
- 乱数
- 二次元配列
- 代入変換
- 代入演算子
- 仮数部
- 倍精度浮動小数点型
- 全角
- 内部クラス
- 列
- 初期値
- 初期化
- 割り算
- 動的
- 匿名クラス
- 単精度浮動小数点型
- 単純代入演算子
- 単項+演算子
- 単項-演算子
- 参照
- 四捨五入
- 型
- 型変換
- 基本データ型
- 変数
- 変数宣言
- 多次元配列
- 大文字
- 定数
- 宣言
- 寿命
- 引き算
- 戻り値
- 指数部
- 掛け算
- 推奨されていません
- 整数
- 整数リテラル
- 文字
- 文字コード
- 文字リテラル
- 文字入力ストリーム
- 文字列リテラル
- 文字化け
- 明示的
- 暗黙的
- 未定義
- 桁溢れ
- 桁落ち
- 標準入出力
- 浮動小数点
- 浮動小数点リテラル
- 添え字
- 演算
- 無印クラス
- 無印メソッド
- 無理数
- 無限大
- 環境変数
- 直列化
- 真偽値
- 符号
- 符号なし
- 符号付き
- 算術右シフト
- 精度
- 累乗
- 自然数
- 行
- 複合代入演算子
- 論理値
- 論理右シフト
- 足し算
- 配列
- 配列初期化子




