第5回独習Javaゼミ

第5回独習Javaゼミ
第5章 セクション5~7
発表者
直江 宗紀
5.5 thisキーワード(1)

thisキーワード




実行中のオブジェクトを指す
インスタンス変数の参照にも用いられる
コンストラクタから同クラスの別コンストラクタ呼出
インスタンス変数の参照例
this.varName
(varName:インスタンス変数名)
5.5 thisキーワード(2)

コンストラクタ呼出例
this(args)
args:引数列
ただし、コンストラクタ先頭行のみ使用可
→他行の場合、コンパイルエラー
5.5 thisキーワード(3)

使用例
class Ex{
double x,y ;
Ex(double x){
this(x,0) ; //下のコンストラクタ呼出
}
Ex(double x,double y){
this.x=x ;//Exクラスのインスタンス変数呼出
this.y=y ;
}
}
5.6 インスタンス変数と
インスタンスメソッド(1)

インスタンス変数



そのクラスのオブジェクトに関連付けされている
独立別オブジェクトへの影響は無い
宣言例
type varName ;
type varName1,varName2,…,varNameN ;
varName,varName1~varNameN:変数名
type:変数のデータ型
5.6 インスタンス変数と
インスタンスメソッド(2)

インスタンス変数初期時→既定値代入される

宣言時の代入可
例:
type varName1=expr1 ;
type varName2=expr2,…,varNameN=exprN ;
expr1,expr2,…,exprN:定数値又は定義値
5.6 インスタンス変数と
インスタンスメソッド(3)

インスタンスメソッド
→オブジェクトに対して特定の操作を実行

宣言例
rtype mthName(mparams){
//メソッド本体
}
rtype:戻り値型,mthName:メソッド名
mparams:パラメータ型リスト(省略可)
5.7 静的変数と静的メソッド(1)

静的変数



そのクラスの全てのオブジェクトから共有される
クラスそのものと関連付けられている
静的メソッド

静的変数と同じくクラスに対して作用する
5.7 静的変数と静的メソッド(2)

静的変数宣言例
static type varName1 ;
static type varName2,…,varNameN ;
varName1,varName2,…,varNameN:変数名
type:変数のデータ型
5.7 静的変数と静的メソッド(3)

変数宣言時
→特に指定が無い場合、既定値が代入される

宣言時、任意の初期値代入可
例:
static type varName1=expr1 ;
static type varName2=expr2,…,varNameN=exprN ;
expr1,expr2,…,exprN:定数値又は定義値
5.7 静的変数と静的メソッド(4)

クラスをメモリロード時実行可のコードブロック
→静的初期化ブロック

静的初期化ブロックの構文
class clsName {
static{
// ステートメントのブロック
}
}
練習問題
1.
2.
3次元のx,y,z座標を扱うクラスを作成し、任意の座標
値を3つ用意し、加算するプログラムを作成せよ。与え
る3次元座標3つのうち1つがxのみ,うち1つをx,y、
残った1つはすべての値を用意すること(引数が1つの
場合、2つの場合のオーバーロードコンストラクタを用
意し、3引数を扱うコンストラクタに纏まるようにするこ
と)。
3次元正方行列を扱うクラスを用意し、転置を行うメ
ソッドと、引数として定数値を与え、行列をその定数倍
を行うメソッドを用意して転置、定数倍を行うプログラ
ムを作成せよ。用いるデータ値は任意とする。