匿名の内部クラス
匿名内部クラスとは、名前のない内部クラスを指します。名前は、抽象クラスまたはインターフェイスに基づいて定義する必要があります。
例:匿名の内部クラスを使用してクラス定義を簡略化する
interface Message{ //定义接口
public void print();
}
public class Test1_1_4_9 {
public static void main(String args[]){
fun(new Message(){ //直接实例化接口对象
public void print(){ //匿名内部类中覆写print()方法
System.out.println("Hello World");
}
}); //传递匿名内部类实例化
}
public static void fun(Message msg){ //接收接口对象
msg.print();
}
}
//结果
//Hello World
基本的なデータ型ラッパー
Javaは、基本的なデータ型に対応するクラスを提供します。これらのクラスはラッパーと呼ばれます。
オブジェクトパッケージクラス(オブジェクトの直接サブクラス):文字、ブール。
数値パッケージクラス(Numberの直接サブクラス):Byte、Short、Integer、Long、Float、Double。
Numberクラスの定義について:
Numberは、intValue()、doubleValue()、floatValue()、byteValue()、shortValue()、longValue()の合計6つの操作メソッドを定義する抽象クラスです。
ボックス化およびボックス化解除操作
ボックス化操作:基本的なデータ型をパッケージ化クラスの形式に変更します。
各パッケージ化クラス構築メソッドは、独自のデータ型の変数を受け取ることができます。
ボックス化解除操作:パッケージ化されたデータをパッケージ化から取り出します。Number
クラスからの継承を使用します。一連のxxxValue()メソッドが完成しました。
例:intおよびIntegerの使用
public class Test1_1_5_11 {
public static void main(String args[]){
Integer obj=new Integer(10); //将基本数据类型装箱(构造方法实例化)
int temp=obj.intValue(); //将基本数据类型拆箱
System.out.println(temp*2); //数学计算
}
}
//结果
//20
例:doubleおよびDoubleの使用
public class Test1_1_5_11 {
public static void main(String args[]){
Double obj=new Double(10.2); //装箱
double temp=obj.doubleValue(); //拆箱
System.out.println(temp*2);
}
}
//结果
//20.4
例:自動梱包および開梱
public class Test1_1_5_11 {
public static void main(String args[]){
Integer obj=10; //自动装箱(直接装箱实例化)
int temp=obj; //自动拆箱
obj++;
System.out.println(temp*obj);
}
}
//结果
//110
直接ボクシングインスタンス化メソッドを使用する場合、同じヒープメモリ空間が使用され、コンストラクターによってインスタンス化されたパッケージ化オブジェクトが新しいヒープメモリ空間を開きます。したがって、パッケージ化データを同等に比較するための最も信頼できる方法は、equals()です。
Objectクラスを使用してすべてのデータ型を受け取る
プロセス:
1.基本データ型
2.自動パッキング(オブジェクトになる)
3.オブジェクトへの上方変換
例:オブジェクトを使用してデータ型を受け取る
public class Test1_1_5_11 {
public static void main(String args[]){
Object obj=10; //先自动装箱后再向上转型,此时不能进行科学计算
//Object不可能直接向下转型
//所以要取出基本数据类型必须首先向下转型为指定的包装类
int temp=(Integer)obj; //向下变为Integer后自动拆箱
System.out.println(temp*2);
}
}
//结果
//20
データ型変換
Stringデータ型を基本データ型に変更するために一般的に使用されるメソッド
Integerクラス:public static int parseInt(String s);
Doubleクラス:public static double parseDouble(String s);
ブールクラス:public static boolean parseBoolean(String s);
例:文字列をintデータに変更します。
public class Test1_1_5_1 {
public static void main(String args[]){
String str="123"; //字符串
int temp=Integer.parseInt(str); //将字符串转换为int型数据
System.out.println(temp*2);
}
}
//结果
//246
注:文字列データを数値に変換する場合は、文字列で定義されている文字がすべて数値であることを確認する必要があります。数値以外の文字がある場合、変換は異常になります。
例:基本データ型を文字列型データに変換する
public class Test1_1_5_1 {
public static void main(String args[]){
int num=100;
String str=String.valueOf(num); //变为String型
System.out.println(str.replaceAll("0","9"));
}
}
//结果
//199