#author("2018-10-29T15:38:12+09:00","ldap:pandora"," pandora") #author("2018-10-29T15:43:19+09:00","ldap:pandora"," pandora") * ''Java'' [#wf9bf738] #contents 参照[https://ja.wikipedia.org/wiki/Java] * 用語 [#ndece577] - [[オブジェクト指向]] - コンストラクタ --インスタンス生成時に自動で呼び出される性質を持ち、メンバの初期化等に使用する。 #highlighter(java,number){{ class TestClass{ //コンストラクタ(クラス名と同名のメソッド名になる) public TestClass(){ //初期化処理など } //コンストラクタ(引数があっても問題ない。) public TestClass(String tmp){ //初期化処理など } } }} - インスタンス --クラスの具体的な実体を定義すること。(クラスをnew する) #highlighter(java,number){{ public class Main { public static void main(String[] args) throws Exception { // インスタンス(オブジェクト)を生成 TestClass obj = new TestClass(); // インスタンス(引数によって呼ばれるコンストラクタが変わる) TestClass obj = new TestClass("test"); } } }} - ジェネリクス --データの型に束縛されず、型そのものをパラメータ化して扱うことができる。プログラミング技法。 #highlighter(java,number){{ // Tは総称型と呼ばれるもの。Aでもよいが、Typeの頭文字Tを使うことが多い。 public class testClass<T> { private T value; // 値を設定 public void setValue(T val) { value = val; } // 値を取得 public T getValue() { return value; } } public class Main { public static void main(String[] args) throws Exception { //<String> がジェネリクスと呼ばれるもの。このクラスをどの型で使うのかを定義 //文字型として定義した為、 //これ以降値を取得。設定は全て文字型で設定しないといけない。 TestClass<String> obj = new TestClass<String>(); obj.setValue("Test"); String test = obj.getValue(); } } }} -シグネチャ --signature(証明)とは、メソッドを一意に証明するもの。メソッド名、引数になる。 - オーバーロード --引数の異なる同名のコンストラクタやメソッドを多重定義すること。 * 基本文法 [#z2c63211] - 基本データ型 |>|データ型|サイズ|表現できる値|h |整数|byte|8bit|-128~127| |~|short|16bit|-32768~32767| |~|int|32bit|-2147483648~2147483647| |~|long|64bit|-9223372036854775808~9223372036854775808| |浮動小数点数|float|32bit|IEEE754に基づいた表現| |~|double|64bit|IEEE754に基づいた表現| |文字|char|16bit|Unicodeで表現できる1文字| |boolean|byte|-|true or false| - 宣言 #highlighter(java,number){{ public class TestClass { public static void main(String[] args) { int money; //整数型の定義 String moji = new String(); //文字型の定義 double qty; //小数型の定義 boolean flg; //boolean型の定義 Date day = new Date(); //日付型の定義 String [] array = {"1","2","3"}; // 配列の定義 Object obj = null //未定義状態 return money; // 返却値 } public int getQty() { } } }} - アクセス修飾子 |修飾子|概要|アクセス範囲の広さ|h |public|すべてのクラスからアクセスできる|大| |protected|現在のクラスとサブクラスからアクセスできる|↓| |なし|現在のクラスと同じパッケージのクラスからアクセスできる|↓| |private|現在のクラスからだけアクセスできる|小| - 計算符号 |>|CENTER:100|c |>|計算符号|h |+|加算| |-|減算| |*|乗算| |^|累乗| |/|除算| |%|余り| - 論理式 |>|CENTER:200|c |>|論理式|h |<|未満| |<=|以下| |>|超過| |>=|以上| |==|等しい| |!=|等しくない| |&|AND| |||OR| |&&|AND(短絡評価)| ||||OR(短絡評価)| - if文 #highlighter(java,number){{ if(int > 0){ //条件 //真 } else { //偽 } }} - for文 #highlighter(java,number){{ for(int i = 0 ; i<10 ; i++) { // 10回ループ } }} * 特殊構文 [#n277f936] - 拡張for文 #highlighter(java,number){{ String[] array = { "x", "y", "z" }; // 配列を定義 for (String tmp : array) { // 配列で定義した要素分ループ } }} - ループ文制御 #highlighter(java,number){{ int i = 0; //初期化 for(;;) { // 無限ループ i++; //インクリメント if( i > 4 && i < 8 ) continue; //以降の処理を行わず次のループへ if( i > 6 ) break; //ループ処理を終了する } }} - 三項演算子 #highlighter(java,number){{ int x; x = 0; //結果の格納先 = <条件式> ? <trueのときの値> : <falseのときの値> String result = x == 0 ? "正解" : "不正解"; // この場合は正解がresultに入る。 }} - 差分リスト #highlighter(java,number){{ List<String> list = new ArrayList<String>(); //文字型のリストを定義 list.add("A"); // リストに追加 list.add("B"); list.add("C"); list.add("D"); list.add("E"); List<String> sub = list.subList(2,4); // C D E の差分リストを取得 }} * 関連 [#t67667e8] #ls2