情報学部 | 菅沼ホーム | 全体目次 |
型名 バイト数 値の範囲 byte 1 -128 ~ 127 char 2 2バイトの文字 short 2 -32,768 ~ 32,767 int 4 -2,147,483,648 ~ 2,147,483,647 long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 float 4 3.4E±38(有効桁:約 7 桁) double 8 1.7E±308(有効桁:約 15 桁) boolean true, false
+ : 加算(文字列の結合にも使用される) - : 減算 * : 乗算 / : 除算(整数どうしの演算の場合,結果の小数点以下は切り捨て) % : 余り(実数演算に対しても使用可能) = : 代入 ++ : インクリメント演算子( 1 だけ増加) -- : デクリメント演算子( 1 だけ減少)
> より大きい a > b 式 a の値が式 b の値より大きいとき真 < より小さい a < b 式 a の値が式 b の値より小さいとき真 >= 以上 a >= b 式 a の値が式 b の値以上のとき真 <= 以下 a <= b 式 a の値が式 b の値以下のとき真 == 等しい a == b 式 a の値と式 b の値が等しいとき真 != 等しくない a != b 式 a の値と式 b の値が等しくないとき真 || 論理和 x || y 式 x が真か,または,式 y が真のとき真 && 論理積 x && y 式 x が真で,かつ,式 y が真のとき真 ! 否定 ! x 式 x が偽のとき真
| 論理和 x | y 対応するビットのいずれかが 1 のとき真. & 論理積 x & y 対応するビットの双方が 1 のとき真 ^ 排他的論理和 x ^ y 対応するビットが異なるのとき真 ~ 1の補数 ~ x ビット毎に 1 と 0 を反転する << 左にシフト x << 3 3 ビット左にシフト.x を 23 倍することに相当. >> 右にシフト x >> 3 3 ビット右にシフト.x を 23 で割ることに相当. >>> 右にシフト x >>> 3 3 ビット右にシフト( C++ における符号無しの整数を右シフトする場合に相当).
if (論理式) { 文1(複数の文も可) (論理式が真の場合に実行) } else { 文2(複数の文も可) (論理式が偽の場合に実行) }
if (論理式1) { 文1(複数の文も可) (論理式1が真の場合に実行) } else if (論理式2) { 文2(複数の文も可) (論理式2が真の場合に実行) } ・・・ else { 文n(複数の文も可) (いずれの論理式も偽である場合に実行) }
switch (式) { [case 定数式1 :] [文1] [case 定数式2 :] [文2] ・・・・・ [default :] [文n] }
for (初期設定; 論理式; 後処理) { 文(複数の文も可) (論理式が真である限り繰り返し実行) }
while (論理式) { 文(複数の文も可) (論理式が真である限り繰り返し実行) }
do { 文(複数の文も可) (論理式が真である限り繰り返し実行, ただし,最初は必ず実行) } while (論理式) ;
int u1[] = {1, 2, 3}, u2[] = {1, 2, 3}, u3[]; int u4[] = new int[3]; // 初期設定しない場合 u3 = u1;
int v1[][] = {{10, 20, 30}, {40, 50, 60}}, v2[][] = {{10, 20, 30}, {40, 50, 60}}, v3[][]; v3 = v1;
int vp1[] = v1[0]; // v1,v3 の 1 行目 int vp2[] = v1[1]; // v1,v3 の 2 行目
int v1[][] = new int [2][]; for (int i1 = 0; i1 < 2; i1++) { v1[i1] = new int [3]; for (int i2 = 0; i2 < 3; i2++) v1[i1][i2] = 10 * (3 * i1 + i2 + 1); }
int x1[] = {10, 20, 30}; int x2[] = {40, 50, 60}; int v1[][] = {x1, x2};
import java.io.*; class Test { // メソッド main public static void main (String[] args) { int x = 10, y = 20; System.out.println("和 = " + add(x, y)); } // メソッド add static int add(int a, int b) { return a + b; } }
import java.io.*; class Test { // メソッド main public static void main (String[] args) { Example ex = new Example(); } } class Example { // コンストラクタ Example() { int x = 10, y = 20; System.out.println("和 = " + add(x, y)); } // メソッド add int add(int a, int b) { return a + b; } }
import java.io.*; class Test { // メソッド main public static void main (String[] args) { Example ex = new Example(); } } class Example { // コンストラクタ Example() { int x = 10, y = 20; int z[] = new int [2]; add(x, y, z); System.out.println("和 = " + z[0] + " 差 = " + z[1]); } // メソッド add void add(int a, int b, int c[]) { c[0] = a + b; c[1] = a - b; } }
import java.io.*; class Test { // メソッド main public static void main (String[] args) { Example ex = new Example(); } } class Example { // コンストラクタ Example() { int x = 10, y = 20; int z[]; z = add(x, y); System.out.println("和 = " + z[0] + " 差 = " + z[1]); } // メソッド add int [] add(int a, int b) { int c[] = new int [2]; c[0] = a + b; c[1] = a - b; return c; } }
java add 2 3
public static void main ( String args[] )
import java.io.*; public class Test { public static void main(String args[]) throws IOException { int i1, k, sum = 0; /* 引数の内容の出力 */ System.out.println(" 引数の数 " + args.length); for (i1 = 0; i1 < args.length; i1++) { k = Integer.parseInt(args[i1]); // 文字を整数に変換 System.out.println(" " + (i1+1) + " 番目の引数 " + k); sum += k; } /* 結果の表示 */ System.out.println("結果=" + sum); } }
[クラス修飾子] クラス識別子 { クラス本体(変数やメソッドの定義) }
01 import java.io.*; 02 03 class Test { 04 public static void main (String[] args) 05 { 06 Complex x = new Complex (1.0, 0.0); // 初期設定を行う場合 07 Complex y = new Complex (); // 初期設定を行わない場合 08 09 x.print(); 10 y.set(5.1, 1.5); 11 // x,y が private であるため,以下の処理は不可能 12 // y.real = 5.1; 13 // y.imaginary = 1.5; 14 y.print(); 15 } 16 } 17 // クラス Complex 18 class Complex { 19 private double real; 20 private double imaginary; 21 // 引数のないコンストラクタ 22 Complex() {}; 23 // 引数のあるコンストラクタ 24 Complex(double a, double b) 25 { 26 real = a; 27 imaginary = b; 28 } 29 // 値の設定するためのメソッド 30 void set(double a, double b) 31 { 32 real = a; 33 imaginary = b; 34 } 35 // 出力するためのメソッド 36 void print() 37 { 38 System.out.println("実数部 = " + real + ", 虚数部 = " + imaginary); 39 } 40 }
Complex *x = new Complex (1.0, 0.0); // 初期設定を行う場合 Complex *y = new Complex (); // 初期設定を行わない場合
import java.io.*; class Test { public static void main (String[] args) { Complex y1 = new Complex (5.0, 0.0); Complex y2; System.out.println("y1 : 実数部 = " + y1.real + ", 虚数部 = " + y1.imaginary); y2 = y1; System.out.println("y2 : 実数部 = " + y2.real + ", 虚数部 = " + y2.imaginary); y2.imaginary = 4.0; System.out.println("y1 : 実数部 = " + y1.real + ", 虚数部 = " + y1.imaginary); System.out.println("y2 : 実数部 = " + y2.real + ", 虚数部 = " + y2.imaginary); } } // クラス Complex class Complex { double real; double imaginary; // 引数のないコンストラクタ Complex() {}; // 引数のあるコンストラクタ Complex(double a, double b) { real = a; imaginary = b; } }
y1 : 実数部 = 5.0, 虚数部 = 0.0 y2 : 実数部 = 5.0, 虚数部 = 0.0 y1 : 実数部 = 5.0, 虚数部 = 4.0 y2 : 実数部 = 5.0, 虚数部 = 4.0
import java.io.*; class Test { public static void main (String[] args) { Number x = new Number (10, 2); Number y = new Number (5, 4); x.add(); x.print(); y.sub(); y.print(); } } // クラス Base class Base { protected int n; protected int step; // コンストラクタ Base (int sp) { step = sp; } // 出力 void print() { System.out.println("value = " + n); } // 加算 void add() { n += step; } // 減算 void sub() { n -= step; } } // クラス Number class Number extends Base // Base の継承 { // コンストラクタ Number (int n1, int sp) { super(sp); // スーパークラスのコンストラクタの呼び出し n = n1; } }
public interface インタフェース名 extends 親インタフェース名 [ , ・・・ ] { // 変数:static final とみなされる // メソッド宣言:abstract とみなされる }
01 /****************************/ 02 /* 変数の有効範囲(スコープ) */ 03 /* coded by Y.Suganuma */ 04 /****************************/ 05 import java.io.*; 06 07 public class Test { 08 public static void main(String args[]) throws IOException 09 { 10 // ブロック 11 int x = 10; 12 if (x > 5) { 13 System.out.printf("block x %d\n", x); 14 // int x = 15; // 許されない 15 int y = 20; 16 System.out.printf("block y %d\n", y); 17 } 18 sub(); 19 System.out.printf("x %d\n", x); 20 // System.out.printf("y %d\n", y); // y が未定義 21 // クラス 22 // クラス 23 Example2 ex = new Example2(); 24 ex.sub1(); 25 ex.sub2(); 26 System.out.printf("public member( pub ) %d\n", ex.pub); 27 } 28 29 /************/ 30 /* 関数 sub */ 31 /************/ 32 static void sub() 33 { 34 int x = 40; 35 System.out.printf(" sub x %d\n", x); 36 } 37 } 38 39 /*******************/ 40 /* クラス Example1 */ 41 /*******************/ 42 class Example1 { 43 44 private int pri; 45 protected int pro; 46 public int pub; 47 48 Example1() { 49 pub = 1000; 50 pri = 2000; 51 pro = 3000; 52 } 53 54 void sub1() { 55 System.out.printf("sub1 pub %d pri %d pro %d\n", pub, pri, pro); 56 } 57 } 58 59 /*******************/ 60 /* クラス Example2 */ 61 /*******************/ 62 class Example2 extends Example1 { 63 void sub2() { 64 System.out.printf("sub2 pub %d pro %d\n", pub, pro); 65 // System.out.printf("sub2 pri %d\n", pri); // 許されない 66 } 67 }
block x 10 block y 20 sub x 40 x 10
sub1 pub 1000 pri 2000 pro 3000 sub2 pub 1000 pro 3000 public member( pub ) 1000
情報学部 | 菅沼ホーム | 全体目次 |