第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日
本日の講義内容 Java のキーワードについて Java の変数と型の宣言 Java のプログラム内の記号の意味 Java の計算記号と演算
復習:Javaの開発環境の構成 Java仮想マシン(JVM) Java コンパイラ その他のツール(jarなど) 標準クラスライブラリ (java.awt, java.net など)
Java による開発手順 クラスの設計 (ソースファイルの記述) コンパイル (バイトコードの生成) 実行 (仮想マシンへのロード)
クラス名とファイル クラス名でソースファイル名が決まる Welcomeクラス=> Welcome.java コンパイルでバイトコード javac Welcome.java クラス名+.class => Welcome.class 実行時にはクラス名を引数に java Welcome
サンプルソース: Welcome.java public class Welcome { public static void main(String[] a){ System.out.println( "Welcome!" ); }
キーワードとは? Javaで役割が予約されている語 約50語定義(goto,constは予約のみ) 基本データ型とその値 修飾子 制御構造 例外処理 クラスの構造とオブジェクト生成
基本データ型とその値 整数および浮動小数の型 文字データの型 論理値の型と値 void型 byte,short,int,long,float,double char,boolean,true,false,void int x=10; boolean b=true;
修飾子 クラス、メソッド、フィールドなどの性質を表す public protected private static final transient volatile abstract native synchronized public static void main(String[] args){ }
制御構造 条件分岐 if else switch case default ループ処理 for while do break continue メソッドの処理 return
例外処理の制御 例外の捕捉と処理 try catch finally 例外の発生 throw throws
クラスとインスタンスの生成 クラスの定義 class interface enum パッケージ名の宣言、指定 package import クラスの継承 extends implements インスタンスの生成、破棄 new null
最初に理解すべきキーワード class int, float, char *意味は今のところ気にしなくてもよい public, static, void
キーワードではないが・・・ main() -- ここから処理がスタート String -- 文字列(複数の文字のデータ) System – Javaのシステム自身 out – (システムの)標準出力 println() – 1行出力する処理 * System.out.println( “ABC” ); 「システムの標準出力に “ABC” と1行出力」
重要な働きをする記号 区切りの括弧 { } ( ) [ ] 式の区切り ; データの並びの区切り , パッケージ名、クラス名の区切り . 区切りの括弧 { } ( ) [ ] 式の区切り ; データの並びの区切り , パッケージ名、クラス名の区切り . 「ラベル」の指定 : クォーテーション記号 ‘ “ コメント文 /* */ /** */ // アノテーション(J2SE5.0より) @
サンプルソース: Welcome.java /** 最初のクラスのサンプル */ public class Welcome { public static void main(String av[]){ System.out.println( "Welcome!" ); }
Javaのプログラムの構造 クラスという単位でプログラムを管理 クラスの内部にはさらに構造がある 構造は階層的 構造の単位を{ と }で表す
クラスの定義とクラス名 クラスの定義の開始は class クラスは名前をもつ 習慣としてクラス名は大文字で始める クラス名はプログラムの管理にも影響(ソースファイル名、バイトコード名)
基本データ型とその値 整数および浮動小数の型 文字データの型 論理値の型と値 void型 byte,short,int,long,float,double char,boolean,true,false,void int x=10; boolean b=true;
9種類の基本データ型 byte 1バイト(8ビット)の整数値 short 2バイト(16ビット)の整数値 int 4バイト(32ビット)の整数値 long 8バイト(64ビット)の整数値 char 2バイトの文字コード(整数値) float 4バイトの浮動小数値 double 8バイトの浮動小数値 boolean 論理値(値は true か false) void データなしの型(メソッドの型のみに使用)
データの型宣言のルール データは必ず1種類の型を持つ データは使用前に必ず型宣言 宣言と同時に値を代入するのは可 型の宣言はデータごとに1回のみ データの有効範囲は、宣言された構造の内部に限定
リテラルとは? リテラルとはプログラム内の値の表現 Javaのリテラルの種類 整数リテラル 浮動小数リテラル 論理値リテラル 文字リテラル 文字列リテラル 空リテラル
整数リテラル 10進数、8進数、16進数の区別 16進数でのa,b,c,d,e,f の意味 long型の値の指定 代入可能な型 byte,short,char,int,long 型ごとに格納可能な数値が異なる 15, 0xff, 0XFF, 024 15l, 15L 10000000000L
浮動小数リテラル 代入可能な型 float, double float, doubleの識別 指数表現: e の後に10進の指数部 20.0, 2e1, 2E1, 2E+1 0.02, 2e-2, 2E-2 20.0f, 2e1f
論理値リテラル 代入可能な型 boolean 値は true と false 数値としては扱わない
文字リテラル、文字列リテラル 文字リテラルは char 型に代入 文字列リテラルは Stringクラスに代入 文字は‘ ’ 文字列は “ ” 文字は‘ ’ 文字列は “ ” ‘a’, ‘象’ “abcd”, “稚内北星” char c=‘X’; String s=“X”;
演算子とは? データの値の操作を指定する 記号の文字、および文字の組み合わせ 単項演算子 +,-,++,--,~,! 算術演算子 +,-,%,*,/ 代入演算子 =, (演算子)= 比較演算子 >,<,==,<=,>=,!=,instanceof 論理演算子 &&, || ビット演算子 ^,&,| シフト演算子 >>, >>>, << 3項演算子 ? : キャスト演算子 (型)
単項演算子の基本 数値の符号 +, - インクリメント、デクリメント ++, -- 前置と後置の違い 論理値の否定 ! ビット反転 ~ a= -a; x++; ++x; b= !true; z=3; y=++z;
算術演算子の基本 四則演算と剰余(余り)演算 +,-,*,/,% 剰余演算は整数のみ対象(負数にも定義) 演算の優先順位 文字列の連結にも + 結果は必ず文字列 3 - 15%2 (3 - 15)%2 “x=“ + 3 + 2 “x=” + (3+2)
代入演算子 =, (演算子)= 左辺の値を右辺に代入 y = x + 1; 左辺の変数自身との演算結果を代入 y += 2; y = y + 2;