データの型

第2回:Javaの変数と型の宣言
プログラミングII
2007年10月2日
本日の講義内容




Java
Java
Java
Java
のキーワードについて
の変数と型の宣言
のプログラム内の記号の意味
の計算記号と演算
復習:Javaの開発環境の構成
Java仮想マシン(JVM)
 Java コンパイラ
 その他のツール(jarなど)
 標準クラスライブラリ
(java.awt, java.net など)

Java による開発手順
1.
2.
3.
クラスの設計 (ソースファイル
の記述)
コンパイル (バイトコードの生
成)
実行 (仮想マシンへのロード)
クラス名とファイル



クラス名でソースファイル名が決まる
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;