Javaお勉強(1)
来週SJC-P試験受けるのでメモっていくよ!
transient修飾子
共変戻り値(JDK5〜)
- JDK5より前は、オーバーライドする側のメソッドの戻り値と、オーバーライドされる側のメソッドの戻り値の型が同じである必要があった
- JDK5以降は、オーバーライドする側のメソッドの戻り値は、オーバーライドされる側の戻り値のサブクラスの型でもOKになった
interface Hoge { Object somethingMethod(); } public class Fuga { public static void main(String[] args) { System.out.println( new Hoge() { @Override public Double somethingMethod() { return new Double(0.5); } }.somethingMethod() ); //0.5 } }
if文の罠
- if (x = y) {}とかみたいに、イコールが1つしか無い場合、無条件でコンパイルエラーにしがちだが、xとyが共にboolean型ならコンパイルが通る!*1
java.io.Consoleクラス(JDK6〜)
- コンソールからダイレクトに入出力を扱える!
- 俺たちが打ち込んでいた new BufferedReader(new InputStreamReader(System.in)); とはなんだったのか
- なんと、パスワード入力用に文字のエコーバックを抑制するreadPasswordメソッドがある
import java.io.Console; public class ConsoleSample { public static void main(String[] args) { Console console = System.console(); String name = console.readLine("%s", "name: "); char[] pw = console.readPassword("%s", "pw: "); //文字が表示されない! System.out.println("name: " + name); System.out.println("pass: " + new String(pw)); } }
つづく