2012-03-08 14 views
0

いいえ、わずか2行のコードです。私は最初の行を理解しています。 2行目の意味は何ですか?また、いつ、そしてなぜこの行を使用する必要がありますか?Java:このようなキャラクターを定義する理由は何ですか?

char c = 'x'; 
Character C = new Character(c); 

の質問のすべてに答えてください...(何、ときに、なぜ)最初の行が第二のCharacterオブジェクトを作成するなどのプリミティブcharを作成

+0

プリミティブとラッパー/オブジェクトの使用があることに注意してください。 http://stackoverflow.com/questions/239560/when-should-i-use-primitives-instead-of-wrapping-objects –

答えて

6

charはプリミティブ型です。あなたは オブジェクトにプリミティブ型charの値をラップするJava documentation

Characterクラスで見ることができるようCharacterは、プリミティブ型のラッパーです。 Character型のオブジェクトには、型が の単一のフィールドが含まれています。

さらに、このクラスでは、文字のカテゴリ(小文字、数字など)を決定し、 の文字を大文字から小文字に変換するためのいくつかの方法を提供しています。

+1

Object型をプリミティブ型にキャストすることはできないため、キャストにもリフレクション中に便利です。 –

1

。あなたはどちらか一方を使う必要はありません。それはあなたのコードで何をしているかによって異なります。一般的に、javaは必要に応じてプリミティブを元に戻します。

4

Characterは、プリミティブタイプcharのラッパーです。これにより、よりオブジェクト指向の方法でプリミティブcharを使用することができます。

1

これはボックス化されたプリミティブと呼ばれ、プリミティブをCollectionに入れる場合などに便利です。コレクションにはオブジェクトを保持する必要があるため、Collection<char>を宣言するだけではないため、Collection<Character>を使用する必要があります。

4

Javaは、すべてのプリミティブ型(int、char、long、float、byte、short、boolean、double)のクラスを提供します。ideideは、Objectが必要な場所で動作するプリミティブ型ではなく、このクラスです。

Object a = new Integer(1); 
Object b = new Character(c); 

例えば、ArrayListを参照してください。

あなたが行うことはできません。

ArrayList<boolean> list = new ArrayList<boolean>; 

をしかし、あなたが行うことができます:

ArrayList<Boolean> list = new ArrayList<Boolean>; 
list.add(new Boolean(true)); 
2

これはプライマリタイプcharのラッパークラスです。これはObjectであるため、他のすべてのObjectと同様に使用できます。たとえば、Collectionの使用オブジェクト、Characterはnullでもかまいませんが、charは使用できません。