ラベル SJC-A の投稿を表示しています。 すべての投稿を表示
ラベル SJC-A の投稿を表示しています。 すべての投稿を表示

2010年4月1日木曜日

演算子(2)(Java)

  •  インクリメント
    •  書式: x++, ++x
        x = x + 1 と同義
  • デクリメント
    • 書式: y--, --y
       y = y - 1 と同義

  • 計算について
    • ++x , --y のように前置された場合は、計算してから代入
    • x++ , y--のように後置された場合は、代入してから計算

  • 参考
  1. class test3 {
  2.         public static void main (String[] args){
  3.                int a = 0; int b = 0; int c = 0; int d = 0;
  4.                int result_a ; int result_b ; int result_c ; int result_d ;
  5.                result_a = ++a;
  6.                result_b = b++;
  7.                result_c = --c;
  8.                result_d = d--;
  9.                System.out.println("計算結果 ;" + result_a + " 変数a ;" + a);
  10.                System.out.println("計算結果 ;" + result_b + " 変数b ;" + b);
  11.                System.out.println("計算結果 ;" + result_c + " 変数c ;" + c);
  12.                System.out.println("計算結果 ;" + result_d + " 変数d ;" + d); 
  13.         }
  14. }
---実行結果---
計算結果 ;1 変数a ;1
計算結果 ;0 変数b ;1
計算結果 ;-1 変数c ;-1
計算結果 ;0 変数d ;-1

2010年3月31日水曜日

データ型(2) (Java)

  • 型変換(キャスト)
    • 小さい型から大きい型への代入は暗黙の型変換が行われる(自動) 
    • 小さい型から大きい型への代入は許可されていない
      キャストを行うことで代入が可能
      • 凡例
        (目的の型) 値
      • 例
        int i =123, double = 1.05;
        i = (int)d; //この場合小数点以下は切り捨てられて1になる
        ※切り捨てについては、四捨五入等なし。
        1.99でも整数部の1しか扱われない
  • 基本データ型
      • 型の大小は以下のとおり
        double > float > long > int > (char) >  short > byte
        ※shortからcharに変換された場合は、文字として扱われる

演算子(1)(Java)

演算子と結合規則について
  1. 演算子ごとに設定されている優先度の高いものから計算
  2. 優先順位が同じ場合は、結合規則によって計算順を決定
    結合規則は左結合と、右結合がある。
    • 左結合
      • 左から右へ計算する(普通の数式と一緒)
    • 右結合
      • 右から左へと計算する
        • 例
          int x = 1 , int y =  2;
          x = x + y;
          System.out.println( "x=" + x );

          ---実行結果---
          x = 3
  •  優先度と結合規則
    1.  ++ , -- , + , -, ~, (キャスト) :右結合
    2.  *, /, %                              :左結合
    3. + , -                                  :左結合
    4. <<, >>, >>>                        :左結合
    5. <, >, <<, >>, instanceof       :左結合
    6. ==, !=                                :左結合
    7. &                 :左結合
    8. ^                 :左結合
    9. |                 :左結合
    10. &&                :左結合
    11. ||                                      :左結合
    12. ?:                 :右結合
    13. =, *=, /=, %=, +=, -=, etc     :右結合

識別子、予約語(Java)

  • 識別子
    • 1文字目は、英字、ドル記号($)、アンダースコア(_)のみ
    • 数字は2文字目以降に使用可能
    • 予約語は使用不可
    • 予約後を識別子に含めた場合はコンパイルエラー
    • 予約語ではないが、リテラル(定数)として意味があるため識別子として使用不可
      • true
      • false
      • null
  • 予約語
    • abstract
    • assert
    • boolean
    • break
    • byte
    • case
    • catch
    • char
    • class
    • const
    • continue
    • default
    • do
    • double
    • else
    • enum
    • extends
    • final
    • finally
    • float
    • for
    • goto
    • if
    • implements
    • new
    • package
    • private
    • protected
    • public
    • return
    • short
    • static
    • strictfp
    • super
    • switch
    • synchronized
    • this
    • throw
    • throws
    • transient
    • try
    • void
    • volatile
    • while

列挙型(Java)

任意に作成可能
クラスの中でも外でも定義可能
クラスの中に定義する場合は暮らすの直下で定義する。
ただし、コンストラクタ内やメソッド内での定義は不可
switchみたいに指定できるデータ型が制限されている場合に、間接的に指定が可能
  • 特記事項
    • 列挙された値は文字列ではなく、特定の整数として扱われる(なので、”間接的に”指定可能)
    • 内部的には整数扱いなので、要素に文字列が入っていてもダブルクォーテーション不要
  • 定義
    [修飾子] enum 列挙名{要素1, 要素2, 要素3, ...}
    • 記述例
      public enum Colour { RED, BLUE, BLACK, WHITE, YELLOW};

配列(Java)

一つ以上の”同じデータ型”の集合を表現
配列に格納されるデータはインデックスで識別される
格納されるデータは、基本データ型、参照型ともに格納可能
配列自体は参照型として扱われる
 
  • 配列の生成
    データ型[] 配列名;
    配列名 =new データ型[ 要素数 ]
    • 記述例
      int[] i;            // int i[]; でもOK (配列の宣言)
      i = new int[3] ; // int型の領域を3個確保
      int [] i = new int[3]; //配列名の宣言と領域の確保を1行で行う
  • 配列の初期化
    データ型 [] 配列名 = {初期値1, 初期値2,初期値3)
    • 記述例
      int[] i = {10, 20, 30} ;
  • インデックス
    配列名 [インデックス] = 値;
    • 記述例
      i[0] = 10;

    変数(Java)

    データ型 変数名;  //変数の宣言
    変数名 = 値;    //値の代入

    データ型 変数名 = 値 // 変数の宣言と代入を1行で実行(変数の初期化)

    データ型(1)(Java)

    • 基本データ型(プリミティブ型)
      • 整数
        ※シングルクォーテーションで囲った文字列はユニコード16進数の整数として扱われる
        例) int a = ’a';  と int a =  97; は同値となる
        • byte (8bit)
          表現可能な範囲: -128~127
        • short (16bit)
          表現可能な範囲: -32768~32767
        • int (32bit)
          表現可能な範囲: -2^31~2^31-1
        • long (64bit)
          表現可能な範囲: -2^63~2^63-1
          ※数値に何も指定をしない場合は、デフォルトがint型となるため、
          明示的に扱うためには指定が必要
          • 指定例
            long l = 1234L; or  long l = 1234L; or long l = (long)1234;
      • 浮動小数点整数
        • float (32bit)
          表現可能な範囲: IEEE754に基づく値
          ※数値に何も指定をしない場合は、デフォルトがdouble型となるため、
          明示的に扱うためには指定が必要
          float f = 3.14f; or float f = 3.14F; or float f = (float)3.14;
        • double (64bit)
          表現可能な範囲: IEEE754に基づく値
      • 文字
        • char (16bit)
          表現可能な範囲: \u0000~\uFFFF
          ※charは一文字のみ
           ””(ダブルクォーテーション)での囲んでの代入は不可
          ''(シングルクォーテーション)で囲む場合は制御コードを代入する場合
          文字列はStringで定義するが、基本データ型ではなく参照型(Stringクラス)となる
      • 真偽値
        • boolean (1bit)
          表現可能な範囲: true,false
    • 参照型
      • 配列
        • array
      • 列挙
        • enum
      • クラス
        • class
      • インターフェース
        • interface