読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

Java言語仕様の勉強

言語仕様 Java

冬休み、幸い時間があるので、基礎的な所からJavaのことを学ぼうと思い「プログラミング言語Java (The Java Series)第4版」を実家に持って帰りました。

1ページ目から真面目に読む、という学生みたいなことをしてるのですが、「えっ、Javaってこんなことできんの」的なことがチラホラ。
せっかくなのでまとめていこうと思います。

まず初っ端「知らなかった…」のは「第1章 はやめぐり」の「1.5 Unicode文字」の所。

Unicode文字

変数名を「π」で定義してるサンプルコードが。

じゃあこんなの書けるのか、とNetBeans起動して以下コードを書いてみました。

Unicode文字でstatic変数定義しただけのクラス

package jp.kikutaro.unicode;

public class UnicodeOtameshi {
    
    public static String マジですか = "こんな変数定義できるの!?";
    
}

NetBeansのコード補完…おお、変数名「マジですか」ってマジですか。
f:id:kikutaro777:20121230223651j:plain

Main

import jp.kikutaro.unicode.UnicodeOtameshi;

public class App 
{
    public static void main( String[] args )
    {
        System.out.println(UnicodeOtameshi.マジですか);
    }
}

実行結果
run:
こんな変数定義できるの!?

マジですかー。
仕事で絶対使わないけど、なんか面白いです。

staticインポート

「2.2.2 staticフィールド」の所に「staticインポート」という言葉が。知らない…。
詳細は「2.9 staticメンバー名のインポート」とのことで読む。うむ。

これもお試し

package jp.kikutaro.staticimport;

public class MyMath {
    
    /**
     * 大きいほうの数値に1を加えて返す
     * @param x 比較対象1
     * @param y 比較対象2
     * @return xとyの大きいほうの数値に1を加えた値
     */
    public static int maxPlusOne(int x, int y){
        return Math.max(x, y) + 1;
    }    
}

上記のstaticメソッドを利用する際、普通は

package jp.kikutaro.javasample;

import jp.kikutaro.staticimport.MyMath;

public class App 
{
    public static void main( String[] args )
    {
        int maybeThree = MyMath.maxPlusOne(1, 2);
        System.out.println("1と2で大きいほうの数字に1を足す=" + maybeThree);
    }
}

のように「クラス名.staticメソッド名」となりますが、import文にstaticとメソッド名を加えるとクラス名が省略できるそうな。

package jp.kikutaro.javasample;

import static jp.kikutaro.staticimport.MyMath.maxPlusOne;

public class App 
{
    public static void main( String[] args )
    {
        int maybeThree = maxPlusOne(1,2);
        System.out.println("1と2で大きいほうの数字に1を足す=" + maybeThree);
    }
}

確かに動いた。知らなかった。
まだ700ページ中の60ページくらい。ひええ。

にほんブログ村 IT技術ブログへ
にほんブログ村
にほんブログ村 IT技術ブログ Javaへ
にほんブログ村