はじめに
Java や他のオブジェクト指向言語では、オブジェクトは関連データのコレクションであり、メソッドのセットが付属しています。これらのメソッドはオブジェクトに対して操作を行い、計算を実行し、時にはオブジェクトのデータを変更します。ここでは、3つの簡単で重要なJavaの組み込みオブジェクト型:Number、String、Arrayを紹介します。
Java や他のオブジェクト指向言語では、オブジェクトは関連データのコレクションであり、メソッドのセットが付属しています。これらのメソッドはオブジェクトに対して操作を行い、計算を実行し、時にはオブジェクトのデータを変更します。ここでは、3つの簡単で重要なJavaの組み込みオブジェクト型:Number、String、Arrayを紹介します。
基本的には、byte
、int
、double
などのプリミティブな数値型を使用します。ただし、時にはプリミティブデータ型の代わりにオブジェクトを使用する必要があります。Javaはプリミティブデータ型に対するラッパークラスを提供しています。それらは Byte
、Short
、Long
、Integer
、Double
、Float
などです。ラッパーオブジェクトはプリミティブデータ型に戻すことができます。このプロセスは アンボクシング と呼ばれます。Number
クラスは java.lang
パッケージの一部です。パッケージについては後で説明します。
以下は、Number
クラスのサブクラスが実装する一般的なクラスメソッドの一部のリストです。
Number
オブジェクトの値を xxx データ型に変換して返します。Number
オブジェクトと引数を比較します。Number
オブジェクトが引数と等しいかどうかを判定します。Integer
オブジェクトを返します。int
または Integer
の値を表す String
オブジェクトを返します。String
値からプリミティブな int
型を取得するために使用されます。double
として返されます。double
として返されます。long
または int
を返します。例:
/home/labex/project/numberTest.java
ファイルに次のコードを記述します。
public class numberTest
{
public static void main(String[] args){
Integer x = 1; // int を Integer オブジェクトにボックス化
x = x + 1; // Integer を int にアンボックス化
System.out.println(Integer.parseInt("10")); // 文字列を解析して int を取得
System.out.println( "x = " + x);
}
}
出力:
次のコマンドを使用して numberTest.java
ファイルを実行します。
javac /home/labex/project/numberTest.java
java numberTest
出力を確認します。
10
x = 2
文字列はオブジェクトですので、「文字列オブジェクトに含まれるデータは何ですか?」と「文字列オブジェクトで呼び出せるメソッドは何ですか?」という質問ができるでしょう。文字列オブジェクトの構成要素は文字です。すべての文字が文字であるわけではありません。一部は数字で、一部は特殊記号で、残りはその他の種類の文字です。簡単のために、すべてを文字と呼びます。String
クラスには多くの文字列メソッドがありますが、そのうちいくつかのみを使用します。残りは 公式サイト のドキュメントを参照することができます。
注:String
クラスは不変ですので、一度作成された文字列オブジェクトは変更できません。文字の文字列を多くの変更を加える必要がある場合は、StringBuffer
と StringBuilder
クラスを使用する必要があります。
以下は、String
、StringBuffer
、StringBuilder
クラスの一般的なメソッドの一部のリストです。
index
引数によって示されるように、現在文字列バッファによって表されるシーケンスの指定された文字を返します。dst
にコピーします。StringBuffer
に現在含まれる文字の部分列を含む新しい String
を返します。部分文字列は指定されたインデックスから始まり、StringBuffer
の末尾まで伸びます。StringBuffer
に現在含まれる文字の部分列を含む新しい String
を返します。例:
/home/labex/project/stringTest.java
ファイルに次のコードを記述します。
public class stringTest
{
public static void main(String[] args){
String greeting = "Hello world!";
String hello = new String("Hello!");
System.out.println("greeting is: "+ greeting);
System.out.println("hello is: "+ hello);
System.out.println("length of greeting: " + greeting.length());
System.out.println("first char of greeting: " + greeting.charAt(0));
System.out.println("index of 'e' in hello: "+ hello.indexOf('e'));
System.out.println("substring of greeting: "+ greeting.substring(6)); //substr: world
}
}
出力:
次のコマンドを使用して stringTest.java
ファイルを実行します。
javac /home/labex/project/stringTest.java
java stringTest
出力を確認します。
greeting is: Hello world!
hello is: Hello!
length of greeting: 12
first char of greeting: H
index of 'e' in hello: 1
substring of greeting: world!
配列構造はデータのコレクションを格納するために使用されますが、配列を単一の型の変数のコレクションとして考える方が多くの場合便利です。number0
、number1
、...、number99
のような個々の変数を宣言する代わりに、1つの配列変数 numbers
を宣言し、numbers[0]
、numbers[1]
、...、numbers[99]
を使用して個々の変数を表します。配列の最初の要素はインデックス 0
にあります。
以下は、配列が持つ一般的なメソッドの一部のリストです。
(–(挿入位置 + 1))
を返します。long
型の配列が互いに等しい場合は true
を返します。2つの配列が同じ数の要素を含み、2つの配列のすべての対応する要素のペアが等しい場合、2つの配列は等しいと見なされます。2つの配列が等しい場合は true
を返します。同じメソッドは他のプリミティブデータ型(byte
、short
、int
など)でも使用できます。int
型の配列の各要素に指定された int
値を割り当てます。同じメソッドは他のプリミティブデータ型(byte
、short
など)でも使用できます。byte
、short
、int
など)でも使用できます。例:
/home/labex/project/arrayTest.java
ファイルに次のコードを記述します。
public class arrayTest
{
public static void main(String[] args){
// 空の配列を初期化するには new を使用できます。
String[] nameArray1 = new String[5];
// 空の nameArray1 の要素に同じ名前 "abc" を入力します。
java.util.Arrays.fill(nameArray1,"abc");
// for ループを使用して配列を反復処理することもできます。
for (String name:nameArray1){
System.out.println(name);
}
// いくつかの値を使用して配列を初期化することができます。
String[] nameArray2 = {"Candy", "Fancy", "Ann", "Ella", "Bob"};
// 配列の長さを取得できます。
System.out.println("Length of nameArray2: " + nameArray2.length);
// インデックスで値を取得できます。
System.out.println("The last item of nameArray2 is " + nameArray2[4]);
// 配列オブジェクトをソートします。
java.util.Arrays.sort(nameArray2);
System.out.println("Sorted nameArray2 by alphabet:");
for(String name:nameArray2){
System.out.println(name);
}
}
}
出力:
次のコマンドを使用して arrayTest.java
ファイルを実行します。
javac /home/labex/project/arrayTest.java
java arrayTest
出力を確認します。
abc
abc
abc
abc
abc
Length of nameArray2: 5
The last item of nameArray2 is Bob
Sorted nameArray2 by alphabet:
Ann
Bob
Candy
Ella
Fancy
主なタスクの多くは、数値や文字列などのデータを操作することですので、Javaの組み込みクラスを使用してタスクを実行するのは簡単で効率的です。高度な使用方法については、公式ドキュメントを参照してください。