• 検索結果がありません。

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

第3回 Java基本技術講義

構造と生成

クラス構造と生成

33

クラスの概念

前回の基本文法でも少し出てきたが,オブジェクト指向プログラミ

ングは

_______

という概念をうまく活用した手法である.

C言語で言う 関数に似ている

オブジェクト指向プログラミングはこれら状態と

振る舞いを持つオブジ クトの概念をソフトウ

クラス

いろんなプログラムで使いまわせる

振る舞いを持つオブジェクトの概念をソフトウェ

ア開発の中に適用し、様々な機能を実現する

34

クラス=_________=いろんなプログラムで使いまわせる

(2)

クラスの概念

クラスの構成要素

クラスの構成要素をクラスのメンバ と呼ぶ

クラスの構成要素をクラスのメンバーと呼ぶ

オブジェクトが持っている状態を

オブジェクトが持っている状態を

表す.属性,クラス変数,フィール

ドともいう

メモリ上に実体を作る処理 初期

メモリ上に実体を作る処理.初期

化処理とも呼ばれる

オブジェクトの機能/働きを記述

機能

働 を記

してあり,オブジェクトを操作する

方法

i が含まれるオブジ クトはプ

mainが含まれるオブジェクトはプ

ログラムの最初に動作するメソッ

ドである

35

クラスの生成

クラスを使ったプログラミング

最も簡単なクラスの利用はC言語関数のように呼び出して使う方法

最も簡単なクラスの利用はC言語関数のように呼び出して使う方法

public class Room { int capa = 40;p ; int fact = 36; void member() { System.out.println(“クラス実員は“+capa+”です”); }} }

public class RoomMain {

p {

public static void main(String[] args) {

Room T3 = newRoom(); //(1)オブジェクトT3の生成

System.out.println(“定員は”+T3.fact+”です”); //(2)変数teiinの参照

T3member() //(3)メソッドmemberの参照 T3.member(); //(3)メソッドmemberの参照 } } 36

関数と違うのは,他のクラスを

_____________________

して使うこと

(3)

クラスの生成

インスタンス化の手順

クラスは単なる

であり インスタンス化して初めてプログ

クラスは単なる_____________であり,インスタンス化して初めてプログ

ラムが使えるオブジェクトとなる

Room

T3

=

new

Room();

オブジ クトの初期化

オブジェクト変数の宣言

クラス名 オブジェクト変数)

元となるクラス

オブジェクトの初期化

(コンストラクタ名(初期化値))

中身を入れることで

元となるクラス

を_________

オブジェクトの生成

(new)

作る命令

中身を入れることで

_______している

37

クラスの生成

クラス生成とメモリ上の動作

メモリ上の動作はC言語と同じ考え

int aaa = 31;

メモリ上の動作はC言語と同じ考え

Int aaa

aaa

メモリ

Int aaa =31

aaa

メモリ

intが入る

箱を作る

箱の名前

はaaa

11111

箱に中身

を入れる

Room T3 = new Room();

メモリ

メモリ

Room T3

R

が入る

T3

メモリ

Room T3 =new Room capa member()

T3

メモリ

箱に中身

Roomが入る

箱を作る

箱の名前

はT3

箱に中身

を入れる

38

違うのは変数だけでなく,_____________もメモリ空間に入れる

(4)

クラスの利用

オブジェクトの参照

メモリ(プログラム) テンプレート メモリ(実行) memberメソッド 変数capa Roomクラス テンプレ ト 生成 実体 memberメソッド T3オブジェクト

インスタンス化することにより,オブ

ジェクトが持つメンバ変数やメソッドを

変数capa 関連

ジェクトが持つメンバ変数やメソッドを

使えるようになる

インスタンス化されたオブジェクトは

参照 T3.member() 参照 T3.capa I/F T3.member T3.capa RoomMainクラス System.out.println AAA.member 実行

インスタンス化されたオブジェクトは

外部からのアクセスI/Fを持つ

メッセージ

オブジェクトとのアクセスをメッセージ

オブジェクトとのアクセスをメッセ ジ

と呼ぶ

39 http://www.geocities.jp/objectbrain/messagebrain.html

クラスの利用

メンバ変数とメソッド

public class Room {

int capa = 40; int fact = 36; id b () {

オブジェクトが持っている状

態を保持する変数である.

通常は属性を示すアクセス

void member() { System.out.println(“クラス実員は“+fact+”です”); } }

通常は属性を示すアクセス

演算子を伴うが,詳細は次

章で触れる

}

オブジェクトの機能/働きを

担うものである.引数受けや

返値を

す機能もある

public class Room { int capa = 40;

返値を戻す機能もある.

int fact = 36; void member() { System.out.println(“欠員=”+calculate(capa, fact)); }

当然,同じクラス内だけのや

り取りだけでなく インスタン

}

int calculate(int x, int y) { int answer = x-y; return answer;

り取りだけでなく,インスタン

ス化されているものなら他の

クラスから呼ぶこともできる

40 } }

(5)

クラスの利用

コンストラクタ

public RoomR { int capa = 40; int fact;

様々なメンバ変数を持つオブ

ジェクトを生成する場合,コン

ストラクタの

RoomR( int x) { fact = x; }

___________

利用する.

前までの例題のように とりわ

void member() { System.out.println(“クラス欠員=“+(capa-fact)); } }

前までの例題のように,とりわ

け初期化の必要がない時,クラ

スにおけるコンストラクタの記述

は無くとも良い(自動で実行され

}

public class RoomMainR {

public static void main(String[] args) { RoomR T3 = newRoomR(36);

は無くとも良い(自動で実行され

るが,値はNULLが入る)

パッケージ名:lec 004 RoomR T3 = new RoomR(36); T3.menber();

RoomR W3 = new RoomR(32); R3.menber(); パッケ ジ名:lec_004 メインクラス名:RoomMainR サブクラス名: RoomR RoomMainRとRoomRは 41 () } } lec_003から中身をコピーして 改造しなさい

クラスの利用

コンストラクタの区別

public RoomR { int capa = 40; int fact;

コンストラクタは名前が同じで

も,その引数の違いによって

全く違う動作をする.

RoomR( int x) { fact = x; }

違 動

便利である一方で,間違えや

すいので注意すること!

RoomR( ) { System.out.println(“全員います!“); }

RoomR( int x int y) {

public class RoomMainR { RoomR( int x, int y) { capa = x;

fact = y;

System.out.println(“もともと“+(capa-fact))+”名い ません”)

public class RoomMainR {

public static void main(String[] args) { RoomR T3 = new RoomR(36); T3.menber();

ません”); }

void member() {

System.out.println(“クラス欠員=“+(capa-fact)); RoomR W3 = new RoomR(32);

R3.menber();

RoomR R3 = new RoomR(); RoomR A3 = newRoomR(38 32);

42 System.out.println( クラス欠員 (capa fact)); }

} RoomR A3 new RoomR(38,32); }

(6)

クラスのまとめ

・クラスはテンプレートであり インスタンス化して初めて使える

クラスはテンプレ トであり,インスタンス化して初めて使える

クラス名 オブジェクト変数 = new コンストラクタ名(初期化値);

・mainを含むクラスは自動的にインスタンス化される

・クラスには以下の特性が含まれる

コンストラクタ…初期化する動作

メンバ変数 クラスの特性を定義する変数

メンバ変数…クラスの特性を定義する変数

メソッド…クラスの動作を定義する関数

・インスタンス化されたクラスはオブジェクトと呼ばれる実行

モジュールとなる

43

オブジェクト変数

メンバ変数;

クラスの理解度チェック

クラス生成の理解度チェック

パッケージ名:task 003

以下のプログラムを作成しなさい

・クラスはCalculateとCalMainを作る

・Calculateではpi=3 14をメンバ変数とする

パッケ ジ名:task_003 メインクラス名:CalMain サブクラス名: Calculate

・Calculateではpi=3.14をメンバ変数とする

・Calculateでは円の面積と球の体積を求めるメソッドを作る

・円の面積はコンストラクタで与えられた半径rで計算し,結果を表示する

球の体積は引数として与えられる半径で 計算し 結果を返す

・球の体積は引数として与えられる半径でr計算し,結果を返す

・ CalMainでは半径rを入力させる

ブジ

・ CalMainではAAAオブジェクトを作る

・ CalMainで与えられたrをコンストラクタでCalculateに与える

・ CalMainから円の面積のメソッドを参照する(結果も表示される)

・ CalMainから球の体積のメソッドをrの引数付で参照する

・ CalMainで球の体積の結果を表示する

44

ここまでの概念を十分理解できないと,先では混乱するのみ…

参照

関連したドキュメント

READ UNCOMMITTED 発生する 発生する 発生する 発生する 指定してもREAD COMMITEDで動作 READ COMMITTED 発生しない 発生する 発生する 発生する デフォルト.

・大都市に近接する立地特性から、高い県外就業者の割合。(県内2 県内2 県内2/ 県内2 / / /3、県外 3、県外 3、県外 3、県外1/3 1/3

口腔の持つ,種々の働き ( 機能)が障害された場 合,これらの働きがより健全に機能するよう手当

定可能性は大前提とした上で、どの程度の時間で、どの程度のメモリを用いれば計

また、第1号技能実習から第2号技能実習への移行には技能検定基礎級又は技

ERROR  -00002 認証失敗または 圏外   クラウドへの接続設定及びア ンテ ナ 接続を確認して ください。. ERROR  -00044 回線未登録または

原子力規制委員会 設置法の一部の施 行に伴う変更(新 規制基準の施行に 伴う変更). 実用発電用原子炉 の設置,運転等に

学部混合クラスで基礎的な英語運用能力を養成 対象:神・ 社 会・ 法・ 経 済・ 商・ 理 工・ 理・