コンストラクタを使った変換 - 文字列から数値への変換 - 萌えJava超入門
第二十章 ラッパークラスで
文字列を数値に変換する

コンストラクタを使った変換

ラッパークラスのコンストラクタで、文字列を数値へ変換します。


目次

1. コンストラクタを使った変換


コンストラクタは
valueOfメソッドと中身が同じだ。
割愛しよう。
いやいや会長、
そう言わずに
あっ!





ここでも Doubleクラスを例に説明しましょう。
java.lang.Doubleのコンストラクタ
 public Double(String s) throws NumberFormatException {
     value = parseDouble(s);
 }

例外
java.lang.NumberFormatException
数値に変換できない文字列が与えられると上述の例外が発生します。


会長、
だいじょぶっすか?
えっと、
Doubleのコンストラクタは
引数に doubleをとるけど、
Stringでもいける。
他のラッパークラスも同様だ。
Double のコンストラクタ(引数 String)
Double od = new Double("str");

ん?
引数が String型?
プリミティブ型の
doubleでは?
あっ
見つかっちゃった?
これがオーバーロード
あとで紹介しよう。
それではまず ラッパークラスのコンストラクタを利用して、
文字列を数値に変換するサンプルをご紹介しますね。
これらのラッパークラスは、文字列からもインスタンスを生成できます。
これを利用しましょう。
//Sample20_33.java
class Sample20_33{

    public static void main(String[] args){

      String str1 = "123";
      String str2 = "456.25";

      Integer oi = new Integer(str1);
      Double od = new Double(str2);

      oi += 1;
      od += 11.25;

      System.out.println("oi = " + oi);
      System.out.println("od = " + od);
    }
}

コマンドライン
>cd ws
ws>javac Sample20_33.java
ws>java Sample20_33
oi = 124
od = 467.5


中身は valueOfメソッドと同じなので、
好きな方を使うといいだろう。
OK!


2. オーバーロードについて

お待たせ!
オーバーロードだったな。
オーバーロードって
どうゆう事っすか?

本章の最初、「ラッパークラスとは」では、
「ラッパークラスは、それぞれに対応するプリミティブ型 を引数にして
インスタンスを生成する」 と紹介させていただきました。

でも、このページでは、インスタンスの引数に String型を取っています。

実は、引数の種類や数が異なれば、
同じ名称のメソッドやコンストラクタを複数作る事ができます。


この機能のことを、オーバーロードといいます。
尚、メソッドの場合は、戻り値が同じでないといけません。

コンストラクタが
2つあるのね。
java.lang.Doubleクラスの超抜粋
public final class Double
            extends Number implements Comparable<Double> {
    private final double value;

    /*コンストラクタ1*/
    public Double(double value) {
        this.value = value;
    }

    /*コンストラクタ2*/
    public Double(String s) throws NumberFormatException {
     value = parseDouble(s);
    }

    /*アクセスメソッド*/
    public double doubleValue() {
        return value;
    }
}

Double のコンストラクタ(引数 double)
    double d;
    Double od = new Double(d);

Double のコンストラクタ(引数 String)
    String str;
    Double od = new Double(str);

どちらの引数を使っても、
Double型のインスタンスを生成できる。

重要
 引数の種類や数が異なれば、同じ名称のメソッドやコンストラクタを
 複数作る事ができます。
 この機能を オーバーロードといいます。

今は、その様な書き方ができるということだけ覚えておいてください。


お疲れ様でした。



© 2019 awasekagami