Microsoft PowerPoint - lec06 [互換モード]

Size: px
Start display at page:

Download "Microsoft PowerPoint - lec06 [互換モード]"

Transcription

1 内 容 Ⅶ. クラスの定義 クラス定義の基本 フィールドの定義 メソッド定義 例題 : 円クラスのフィールドとメソッドの定義 コンストラクタ 例題 :Circle2を使ったアプレット 1 2 クラス定義の基本 オブジェクト指向のプログラム プログラム実行時に登場するオブジェクトの性質や挙動を記述する オブジェクトの性質や挙動を記述したものが クラス である Java プログラムを書くとはクラスを定義すること クラス定義の書式 class クラス名 { メンバ定義 メンバ定義 クラス定義の基本 クラス定義の書式例 class クラス名 { フィールド 1 フィールド 2 メソッド 1 メソッド 2 メソッド 3 2 つのフィールドと 3 つのメソッドを持つ メンバ定義 フィールド定義 ( 性質 ) またはメソッド定義 ( 挙動 ) 3 4 フィールドの定義 フィールドの定義 フィールド定義の書式アクセス制御修飾子型名フィールド名 ; 型名フィールド名 ; までは C 言語と同じ アクセス制御修飾子とは オブジェクトのメンバに対するアクセスを制御するもの アクセスの種類アクセス制御修飾子そのメンバにアクセス可能なもの Public public どのクラスからでも Private private そのクラスのメンバ Protected protected そのクラスおよびサブクラス Package なしそのクラスを含むパッケージ 5 6

2 フィールドの定義 フィールドの定義 ( 注意点 ) private はカプセル化の実現のため必要 オブジェクト 1 オブジェクト 2 private int x; public メソッド 1{ x の値を変更するメソッド X このオブジェクトからはオブジェクト 1 の x は変更できない x の値を変更するにはメソッド 1 にお願いする class Test{ private int x; public method1( ){ int i; フィールド ローカル変数フィールドではない カプセル化 7 8 メソッドの定義 クラス定義の例 メソッド定義の書式アクセス制御修飾子戻り値の型メソッド名 ( 引数 ){ メソッド本体 C 言語の関数定義と同じようなもの 円を表すクラスの定義 中心の x 座標 y 座標 半径 r の状態を持つクラスの定義 class Circle1{ public int x; public int y; public int r; 9 10 クラス定義の例 class Circle1 { public int x; public int y; public int r; class CircleTest1 { public static void main(string args[]) { Circle1 a = new Circle1(); a.x = 30; a.y = 50; a.r = 10; System.out.println(a.x + + a.y + + a.r); オブジェクトの生成 クラスからオブジェクトを生成して使用する手順 オブジェクトへの参照を格納する 参照型変数 を定義 new 演算子を用いてオブジェクトを生成し その参照を参照型変数に代入する オブジェクトに対する操作は 参照型変数を介して行う例 Circle1 a; a = new Circle1(); = Circle1 a = new Circle1(); Circle1クラスのオブジェクトを指す参照変数 aの定義 Circle1クラスのオブジェクトを生成 11 12

3 オブジェクトのメンバーに対するアクセス オブジェクトのメンバーにアクセスするには 参照変数名とメンバー名をピリオド. でつなぐ a.x フィールドの場合 a.draw() メソッドの場合 (Circle1 にはメソッドが無いのであくまでも例 ) Circle1 クラスの各フィールドの代入は以下のようにして行う a.x = 30; a a.y = 50; a.r = 10; Circle1 オブジェクト x y r UML a : Circle1 x = 30 y = 50 r = UML のクラス図で表現 Circle2 円の中心 x 円の中心 y 半径 r Circle2(int xp, int yp, int radius) moveto(int newx, int newy) draw(graphics g) 14 円クラス (Circle2) import java.awt.*; class Circle2 { private int x; private int y; private int r; public Circle2(int xposition, int yposition, int radius) { x = xposition; y = yposition; r = radius; public void moveto(int newx, int newy) { x = newx; y = newy; public void draw(graphics g) { g.drawoval(x r, y r, 2 * r, 2 * r); プログラムの解説 3 つのメソッド public Circle2(int xposition, int yposition, int radius) 円オブジェクトを初期化する コンストラクタ と呼ばれる特殊なメソッド ( 後述 ) public void moveto(int newx, int newy) 円の中心を (newx, newy) に移動するメソッド public void draw(graphics g) 円を描画するメソッド privateフィールド private int x; private int y; private int r; フィールドがprivateで定義された場合は そのクラス内のメソッドからのみアクセス可能 この場合 3つのメソッド (Circle2, moveto, draw) からのみアクセスできる 他のクラスのメソッドからはx, y, rの値は変更できない ( カプセル化 ) 他のクラスのメソッドから値を変更するには 3つのメソッド (publicなので) に引数を渡して変更してもらう 17 18

4 movetoメソッド public void moveto(int newx, int newy) { x = newx; y = newy; 円の中心の位置を変更するメソッド 引数 (newxとnewy) として与えられた値をフィールドxとフィールドyに代入しているだけ 19 drawメソッド public void draw(graphics g) { g.drawoval(x r, y r, 2 * r, 2 * r); 左上の座標幅高さ 円を描画するメソッド (x-r, y-r) 楕円を含む長方形の左上の座標 y-r x-r 2 * r ( 長方形の幅 ) x 軸 2 * r( 長方形の高さ ) 中心 (x,y) y 軸 g.drawovalは長方形に内接する楕円を描く 20 コンストラクタ オブジェクトが生成されるとき フィールドの初期状態を定めるためのもの コンストラクタの定義例 public Circle2(int xposition, int yposition, int radius) { x = xposition; y = yposition; r = radius; コンストラクタとクラスの名前は同じ この例では 対応する引数を受け取り フィールド x, y, r を初期化している 21 コンストラクタの書式アクセス制御修飾子クラス名 ( 引数リスト ){ コンストラクタ本体 コンストラクタの名前とクラス名は同じ コンストラクタは戻り値がない コンストラクタを使ったオブジェクトの初期化 Circle2 a = new Circle2(20, 30, 10); 参照変数 a には Circle2 オブジェクトへの参照が入る コンストラクタは渡された引数とコンストラクタの定義に従って オブジェクトのフィールドを初期設定する この場合 オブジェクトの初期状態は 中心のx 座標が20 y 座標が30 半径が10 となる 22 コンストラクタのオーバーロード 一つのクラス内で 引数の個数あるいは型の異なるコンストラクタを複数定義できる機能のこと 例えばCircle2クラスで以下のようなものを追加できる public Circle2(int radius){ x = y = 100; r = radius; このコンストラクタは 円の半径を引数とし中心の座標を (100,100) とする コンストラクタが追加されたCircle2では Circle2 a = new Circle2(20, 30, 10); としてオブジェクトが生成された場合には Circle2( int xposition, int yposition, int radius) のコンストラクタが呼ばれる Circle2 b = new Circle2(30); としてオブジェクトが生成された場合には Circle2(int radius) のコンストラクタが呼ばれる new 演算子によってオブジェクトが生成されるとき どのコンストラクタが呼ばれるかはコンストラクタに渡す引数の個数と型によって決定される 23 24

5 例題 :Circle2 を使ったアプレット c:circle2 UMLのオブジェクト図で表現 x=20 y=50 Circle2 c = r=20 CircleApplet2 new Circle2(20, 50, 20) Circle2(xP,yP,ra) moveto(nx,ny) draw(g) paint(graphics g) c.draw(g) c.moveto(80,50) c.draw(g) c:circle2 x=80 y=50 r=20 Circle2(xP,yP,ra) moveto(nx,ny) draw(g) 例題 :Circle2を使ったアプレット UMLのオブジェクト図で表現 CircleApplet2 c.moveto(140,50) paint(graphics g) c.draw(g) c:circle2 x=140 y=50 r=20 Circle2(xP,yP,ra) moveto(nx,ny) draw(g) 次のスライドに続く 例題 :Circle2 を使ったアプレット import java.applet.applet; import java.awt.*; public class CircleApplet2 extends Applet { public void paint(graphics g) { Circle2 c = new Circle2(20, 50, 20); 例題 :Circle2 を使ったアプレット 実行結果 c.draw(g); c.moveto(80, 50); c.draw(g); c.moveto(140, 50); c.draw(g); 例題 :Circle2 を使ったアプレット プログラムの説明 CircleApplet2 クラスは Circle2 クラスを使って 3 個の円を描画するアプレット new Circle2(20, 50, 20) という形で Circle2 オブジェクトを生成する ( 中心座標 (20,50) で半径 20) draw メソッドを呼んで円を描画 ( 左の円 ) moveto メソッドを使って 円を移動する ( 中心 (80,50)) 再度 draw メソッドを使って円を描画する ( 真ん中の円 ) もう一度円の移動と描画を繰り返す ( 右の円 ) 29 スタックとは 複数の関連したデータを格納することのできるデータ構造の一種 データを取り出すときは 入れた順序と逆の順序で取り出される (Last-IN First-OUT) 例本を箱に入れる (Book1 Book2 Book3 の順 ) 箱 Book3 Book2 Book1 Book2 Book1 本を箱から取り出す (Book3 Book2 Book1 の順 ) Book3 Book1 Book2 Book3 30

6 スタックに対する基本操作 ( メソッド名 ) プッシュ : スタックにデータを入れる (push) ポップ : スタックからデータを取り出す (pop) スタックに対するその他の操作 スタックが空かどうか調べる (isempty) スタックが一杯かどうか調べる (isfull) スタックの中にある データ の個数を調べる (number) スタックの容量を調べる (capacity) 31 配列要素番号 スタックの実現方法 配列を使う 底 A,B というデータが格納されている状態 スタックの本体を配列として表現する どこまでデータを格納したかを表すために スタックポインタ と呼ぶ変数を用意する スタックポインタには次にデータが格納される配列要素番号が格納される A B 2 スタックポインタ スタック上 32 UML のクラス図で表現 IntStack スタック stack[] スタックポインタ sp IntStack() IntStack(int size) push(int n) pop() isempty() isfull() number() capacity() 33 スタッククラスの定義 int 型データだけを格納できるIntStackクラスの定義 // Stack class class IntStack { private int stack[]; private int sp; public IntStack() { stack = new int[100]; sp = 0; 34 public IntStack(int size) { stack = new int[size]; sp = 0; public void push(int n) { if(!isfull()) { stack[sp] = n; sp++; 35 public int pop() { if(!isempty()) { sp--; return stack[sp]; else { return 0; public boolean isempty() { return sp <= 0; 36

7 public boolean isfull() { return sp >= stack.length; public int number() { return sp; public int capacity(){ return stack.length; 37 プログラムの解説 フィールド定義 private int stack[]; private int sp; int 型の配列 stackとint 型の変数 spを定義する アクセス制御修飾子は private なのでこのクラス内のメソッドからのみアクセス可能 ( カプセル化 ) Java でクラスを定義する際 フィールドは private で定義するのが基本 38 コンストラクタ public IntStack() { stack = new int[100]; sp = 0; public IntStack(int size) { stack = new int[size]; sp = 0; コンストラクタを 2 個持つ 上は引数のないコンストラクタで下はスタックの容量を引数とするもの ( 両方とも配列 stack と sp の初期化を行う ) 39 push メソッド public void push(int n) { if(!isfull()) { stack[sp] = n; sp++; スタックにデータを格納するためのメソッド スタックポインタ sp は次にデータを格納する配列要素番号を示す 引数に与えられたデータを配列 ( この場合 stack) に格納した後 sp を 1 増やす isfull メソッドは配列が満杯かどうか調べるためのメソッド もし配列が満杯ならこの処理は行われない 40 pop メソッド public int pop() { if(!isempty()) { sp--; return stack[sp]; else { return 0; スタックからデータを取り出すためのメソッド スタックが空でないことをisEmpty() メソッドで確認してからスタックポインタspの値を1 減らして その後データを取り出している スタックが空のときは0を返す 41 isempty メソッド public boolean isempty() { return sp <= 0; スタックが空であるかどうかを調べるメソッド スタックポインタの値が 0 以下なら true それ以外は false isfull メソッド public boolean isfull() { return sp >= stack.length; スタックが満杯であるかどうかを調べるメソッド スタックポインタの値と配列の大きさ stack.length を比較している sp の値が stack.length 以上なら true それ以外は false 42

8 numberメソッド public int number() { return sp; スタック内に格納されているデータの個数を返すメソッド スタックポインタspの値がデータの個数になる capacity メソッド public int capacity(){ return stack.length; スタックに格納可能なデータの個数を返すメソッド 配列の大きさ stack.length を返している 43 コマンドライン引数から整数を読み込み それを IntStack 型のオブジェクトに入れてから取り出すプログラム class StackTest { public static void main(string args[]) { IntStack s = new IntStack(3); System.out.println( capacity = + s.capacity()); System.out.println( number = + s.number()); System.out.println(); for(int i = 0; i < args.length; i++) { s.push(integer.parseint(args[i])); 44 System.out.println( number = + s.number()); System.out.println( isfull? + s.isfull()); System.out.println(); while(!s.isempty()) { System.out.print(s.pop() + ); System.out.println(); System.out.println( number = + s.number()); System.out.println( isempty? + s.isempty()); System.out.println(); 45 実行結果 > java StackTest 1 2 capacity = 3 number = 0 number = 2 isfull? false 2 1 number = 0 isempty? true データが格納された直後のオブジェクト図 s:intstack stack[]=1,2 sp=2 IntStack() IntStack(int size) push(int n) pop() isempty() isfull() number() capacity() 46 実行結果 > java StackTest capacity = 3 number = 0 number = 3 isfull? true number = 0 isempty? true データが格納された直後のオブジェクト図 s:intstack stack[]=1,2,3 sp=3 IntStack() IntStack(int size) push(int n) pop() isempty() isfull() number() capacity() 47 プログラムの説明 new IntStack(3) でIntStack 型のオブジェクトを生成している スタックの容量は3 その後スタックに関する情報 ( 容量と格納されているデータの個数 ) を表示 コマンドライン引数をスタックに格納 スタックの状態を表示 スタックが空になるまでスタックからデータを取り出し表示する スタックが空になったらもう一度スタックの状態を表示する 48

9 補足 : キュー ( 待ち行列 ) クラス キューの実現方法 キューの本体を配列として表現する どこまでデータを格納したかを表すための キューポインタ 1(qp1) とどこまで読み込んだかを表すための キューポインタ 2(qp2) と呼ぶ変数を用意する qp1 には次にデータが格納される配列要素番号が格納され,qp2 にはこれから読み込むデータの配列要素番号が格納される 補足 : キュー ( 待ち行列 ) クラス 配列要素番号 qp A B C 0 3 qp1 キュー A,B,C というデータが格納されている状態 配列要素番号 キュー 配列要素番号 キュー qp2 0 0 qp1 初期状態 A qp2 B 1 C 3 qp1 A が読み込まれた状態 問題 1 問題 2 例を参考にして Circle1 オブジェクトの各フィールドに x=100,y=200,r=300 を代入するクラスを定義せよ 長方形を描画する Rectangle クラス円クラス Circle2 を参考にして, 長方形を描画する Rectangle クラスを定義せよ 演習問題 6(1) Circle2 を使ったアプレット中心座標が (100,100) で半径 50 の円を描くアプレットを作成せよ また その円の中心を (200,200),(300,300) に移動した円を描画する部分も追加せよ なお クラスの名前やオブジェクトの参照変数は例題と同じものを使用せよ 演習問題 6(2) StringStack クラス例題の IntStack クラスは,int 型のデータをスタックに格納することができるクラスであった. このクラスを改良して, スタックの中に文字列データを格納することができる StringStack クラスを定義せよ 53 54

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

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - prog03.ppt プログラミング言語 3 第 03 回 (2007 年 10 月 08 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/33 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 10 月 08 日分と書いてある部分が 本日の教材です

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

Javaプログラムの実行手順

Javaプログラムの実行手順 戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

メディプロ1 Javaプログラミング補足資料.ppt

メディプロ1 Javaプログラミング補足資料.ppt メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?

More information

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問 Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問のメソッドを追加する public static void main(string[] args) {

More information

Javaの作成の前に

Javaの作成の前に メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 4 回目クラスの機能 (2) コンストラクタ クラス変数 クラスメソッド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) コンストラクタはメソッドと同様に戻り値をもつ (2) コンストラクタはオブジェクトが生成されると最初に実行される (3) コンストラクタはメソッドと同様にオーバーロードができる (4) コンストラクタは常に public メンバとしなければならない

More information

Microsoft PowerPoint - prog04.ppt

Microsoft PowerPoint - prog04.ppt プログラミング言語 3 第 04 回 (2007 年 10 月 15 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/33 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 10 月 15 日分と書いてある部分が 本日の教材です

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java ( 第 3 版 ) 6.7 変数の修飾子 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 Object クラスと Class クラス 6.7 変数の修飾子 (1/3) 変数宣言の直前に指定できる修飾子 全部で 7 種類ある キーワード final private protected public static transient volatile 意味定数として使える変数同じクラスのコードからしかアクセスできない変数サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数他のクラスからアクセスできる変数インスタンス変数ではない変数クラスの永続的な状態の一部ではない変数不意に値が変更されることがある変数

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 基本 Java プログラミング演習 第 13 回 担当 : 植村 今後の予定 7/15 第 13 回 今回 7/22 第 14 回 小テスト ( クラス ) 7/29 第 15 回 総まとめテスト レポート提出 期末テストの時間割に Java のテストの欄がありますが無視してください 再テストはまた別途連絡いたします 2 CHAPTER 11 はじめてのクラス前回の復習 クラスクラスを構成する要素

More information

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 2 回クラス インスタンス メソッド フィールド コンストラクタ ICPC の宣伝 国際大学対抗プログラミングコンテスト 3 人一組のチームでプログラムを書く速さを競う 国内予選 : ネットワーク上で 6 月末 ~7 月頭 アジア地区予選 : 日本国内で秋に開催 世界大会 :2020 年は 6 月にモスクワで 参加登録締切 : 国内予選の 2~3 週間前 今年は

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ

More information

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 11.pptx ポインタと配列 ポインタと配列 配列を関数に渡す 法 課題 : 配列によるスタックの実現 ポインタと配列 (1/2) a が配列であるとき, 変数の場合と同様に, &a[0] [] の値は配列要素 a[0] のアドレス. C 言語では, 配列は主記憶上の連続領域に割り当てられるようになっていて, 配列名 a はその配列に割り当てられた領域の先頭番地となる. したがって,&a[0] と a は同じ値.

More information

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - chap10_OOP.ppt プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,

More information

Prog2_12th

Prog2_12th 2018 年 12 月 13 日 ( 木 ) 実施クラスの継承オブジェクト指向プログラミングの基本的な属性として, 親クラスのメンバを再利用, 拡張, または変更する子クラスを定義することが出来る メンバの再利用を継承と呼び, 継承元となるクラスを基底クラスと呼ぶ また, 基底クラスのメンバを継承するクラスを, 派生クラスと呼ぶ なお, メンバの中でコンストラクタは継承されない C# 言語では,Java

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 2 回クラス インスタンス メソッド コンストラクタ 先週の出席確認 Webブラウザはどのようなプログラムでできているかこの問に答える前に Webブラウザとは 何か? 普段使ってますよね? Webブラウザを使ってできることと Webブラウザがやっていることを区別する必要がある 何をすれば Web ブラウザ と言えるのか NHK チコちゃんに叱られる! Web

More information

JAVA入門

JAVA入門 JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する

More information

GEC-Java

GEC-Java Copyright (C) Junko Shirogane, Waseda University 2019, All rights reserved. 1 プログラミング初級 (Java) 第 14 回継承 白銀純子 第 14 回の内容 継承 オーバーライド ポリモーフィズム Copyright (C) Junko Shirogane, Waseda University 2019, All rights

More information

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが

More information

Microsoft Word - CompA-Ex doc

Microsoft Word - CompA-Ex doc コンパイラ演習参考資料 2008/09/23 担当 : 佐々木晃 算術式の処理と逆ポーランド記法 ( 第一回スライド 29 ページ ) (1) 実数値 (double の値 ) を格納するスタックを実装せよ ( 配列やリストを使うとよい ) (2) 逆ポーランド記法によって実数値の算術演算を行う計算機のプログラムを作成せよ 演算子や被演算子の各要素同士は空白で区切られるものとする (a) 四則演算のみなお

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 8 回目抽象クラスとインタフェース課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) 抽象クラスのオブジェクトは生成できる (2) 抽象メソッドとはメソッドの本体が未定義のメソッドである (3) 抽象メソッドをメンバーにもつクラスは抽象クラスである (4) 抽象クラスを拡張してすべての抽象メソッドをオーバーライドすれば サブクラスのオブジェクトを生成できる

More information

Prog1_6th

Prog1_6th 2019 年 10 月 31 日 ( 木 ) 実施配列同種のデータ型を有する複数のデータ ( 要素 ) を番号付けして, ひとまとまりの対象として扱うものを配列と呼ぶ 要素 point[0] point[1] point[2] point[3] point[4] 配列 配列の取り扱いに関して, 次のような特徴がある 1. プログラム中で用いる配列変数 ( 配列の本体を参照する参照型の変数 ) は必ず宣言しておく

More information

I java A

I java A I java 065762A 19.6.22 19.6.22 19.6.22 1 1 Level 1 3 1.1 Kouza....................................... 3 1.2 Kouza....................................... 4 1.3..........................................

More information

CプログラミングI

CプログラミングI C プログラミング I Swap 関数を作る Stack データ構造のための準備 整数変数 x と y の値を取り替える関数 swap を作る 最初の試み : swap-01.c #include void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; int main(void) { int x=10, y=30;

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1 解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1つ分となっています 4 問題の 中の 1 2 などには 特に指 がないかぎり 与えられた 問選択肢群が

More information

基本情報STEP UP演習Java対策

基本情報STEP UP演習Java対策 トレーニング編 1. 予約語 extends アクセスレベル class サブクラス名 extends スーパクラス名 { (1) スーパクラス ( 既存のクラス ) を拡張して, サブクラス ( 新しいクラス ) を定義する場合に extends を利用する (2) extends の後ろには, スーパクラスの名前を一つだけ指定できる (3) サブクラスからインスタンスを生成すると, スーパクラスに定義されたインスタンス変数やメソッドがこのインスタンス内部に引き継がれる

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 3 回目クラスの機能 (1) アクセス制限 オーバーロード課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) クラスの private メンバは そのクラスからのみアクセス可能なメンバである (2) 一般に クラスのフィールドはどこからでもアクセスできるように public メンバで宣言すべきである (3) クラスは private メンバと public

More information

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt) 独習 JAVA 第 3 版 8.4 例外とエラークラス 8.5 throws ステートメント 8.6 独自の例外 Throwable コンストラクタ catch ブロックには Throwable 型のパラメータが必ず 1 つなければならない Throwable コンストラクタ Throwable() Throwable( String message ) message には問題を通知する文字列のメッセージ

More information

デジタル表現論・第4回

デジタル表現論・第4回 デジタル表現論 第 4 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 2 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 1 / 14 本日の目標 Java プログラミングの基礎 出力の復習 メソッドの定義と使用 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 2 / 14 出力 Systemoutprint()

More information

Prog2_9th

Prog2_9th 2017 年 11 月 30 日 ( 木 ) 実施 Canvas による描画 Canvas とは Canvas は, 描画コールを保持するためのクラスである 描画には, 次の 4 つの要素が必要である (1) ビットマップピクセル ( 画素 ) を保持 (2) キャンバス描画コール ( ビットマップへの書き出し要請 ) に対応 (3) 描画プリミティブ描画領域, パス, テキスト, ビットマップ等

More information

オブジェクト指向プログラミング・同演習 5月21日演習課題

オブジェクト指向プログラミング・同演習 5月21日演習課題 オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 3 回継承 オーバーライド インタフェース 前回までのお話 モジュール化 大きなプログラムは部品に分けて設計する オブジェクト指向 モノ中心に考える プログラムでは クラス ( モノの種類 ) を定義する ある特定のモノは インスタンスで表す クラスは型 インスタンスは値 プログラムを書くときも部品ごとに書く モノの部品であるモノはフィールドに書く 手順の部品である手順はメソッドに書く

More information

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。 ソフトウェア基礎演習課題 文法理解度確認範囲 問題 1 データ型 ( 変数, データ型 ) 問題 2 制御構造 (switch 文 ) 問題 3 制御構造 (while 文 ) 問題 4 制御構造と配列 ( 総和 ) 問題 5 制御構造と配列 ( 総和, 平均 ) 問題 6 データ型と各種演算子 ( 文字列, 検索 ) 問題 7 クラスの定義 ( メソッドの定義, コンストラクタの定義, キャスト

More information

スライド 1

スライド 1 第 4 回データの入出力 情報科学部情報メディア学科 鈴木基之 1 前回の演習の答え class CalcMean { public static void main(string[] args){ int a = 10, b = 15; double f; f = ( a + b ) / 2; System.out.println(f); f = ( a + b ) / 2.0; System.out.println(f);

More information

Prog1_10th

Prog1_10th 2014 年 6 月 19 日 ( 木 ) 実施 例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる 例外処理を行うための try 文の一般形は次のようになる 例外を発生させる可能性のある処理 catch( 例外のクラス名 1 変数 1 ) 例外に対処する処理 1 catch(

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

人工知能入門

人工知能入門 藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する

More information

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Javaセキュアコーディングセミナー2013東京第1回 演習の解説 Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 2 第 6 回継承 コンストラクタ 1 講義資料について 新しい言語の機能 ( オブジェクト指向の機構 ) については 随時参考書などを参照するのがよい 過去の資料も参考になる http://java2005.cis.k.hosei.ac.jp/ 今回の範囲は 上記ページの 17 回に詳しい 2 テーマ : 継承 コンストラクタ 継承 (inheritance) インスタンス変数の継承

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション L2: Fundamentals of AI Programming in Java Javaアプレット ArrayList HashMap AI 応用の例 探索問題 Java アプレット VS アプリケーション ava アプレットとは html に貼り付けられる java で作成した小規模のプログラムのことで サーバー側からクライアントマシンに送られ ブラウザ上に読み込まれて実行される ブラウザと

More information

Java言語 第1回

Java言語 第1回 Java 言語 第 2 回簡単な Java プログラムの作成と実行 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp 簡単な Java プログラム Java プログラムのファイル名 Java プログラムのファイル名命名ルール ファイル名とクラス名は同じでなければならない HelloJava.java public class HelloJava { public

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 2 第 8 回表形式データ (1) 1 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ データの登録 データの検索 データの更新 実際的はソフトウェアでは 表形式データの ( 例えば データベースのデータ ) を利用する場面が非常に多く とても重要である そこで 表形式を扱うプログラミングを繰り返しとりあげる 2 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 9 回 メソッド (3) 授業の前に自己点検 以下の質問に答えられますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか 戻り値はどのように利用しますか 変数のスコープとは何ですか

More information

Prog2_10th

Prog2_10th 2013 年 11 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル操作は,C 言語プログラミングで学んだように, 次の順序で行う 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている

More information

Prog1_3rd

Prog1_3rd 2019 年 10 月 10 日 ( 木 ) 実施 プログラムの制御構造 1960 年代後半にダイクストラが提唱した構造化プログラミングという考え方では, 手続き型のプログラムを記述する際には, 順次, 選択, 反復という標準的な制御構造のみを用い, 先ずプログラムの概略構造を設計し, その大まかな単位を段階的に詳細化して処理を記述していく 順次構造順次構造とは, プログラム中の文を処理していく順に記述したものである

More information

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀 できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 2 回オブジェクト指向 テクノロジックアート 瀬 嘉秀 内容 オブジェクト指向とは オブジェクト指向のしくみ Java 言語とオブジェクト指向 属性と振る舞い クラスとメソッド オブジェクト指向の特徴 演習問題 勉強会の参考書 Java ( アジャイルソフトウェア開発技術シリーズ 基礎編 ) 発売日 2012 年 5

More information

問題1 以下に示すプログラムは、次の処理をするプログラムである

問題1 以下に示すプログラムは、次の処理をするプログラムである 問題 1 次に示すプログラムは 配列 a の値を乱数で設定し 配列 a の値が 333 より大きく 667 以下の値 の合計値を求めるプログラムである 1 と 2 に適切なコードを記述してプログラムを完 成させよ class TotalNumber { public static void main(string[] args) { int[] a = new int[1000]; // 1 解答条件

More information

Microsoft PowerPoint - 06.pptx

Microsoft PowerPoint - 06.pptx アルゴリズムとデータ構造第 6 回 : 探索問題に対応するデータ構造 (2) 担当 : 上原隆平 (uehara) 2015/04/22 内容 スタック (stack): 最後に追加されたデータが最初に取り出される 待ち行列 / キュー (queue): 最初に追加されたデータが最初に取り出される ヒープ (heap): 蓄えられたデータのうち小さいものから順に取り出される 配列による実装 連結リストによる実装

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 5 回 繰り返し (while ループ ) 授業開始前に ログオン後 不要なファイルを削除し て待機してください Java 1 第 5 回 2 参考書について 参考書は自分にあったものをぜひ手元において自習してください 授業の WEB 教材は勉強の入り口へみなさんを案内するのが目的でつくられている これで十分という訳ではない 第 1 回に紹介した本以外にも良書がたくさんある

More information

ToDo: 今回のタイトル

ToDo: 今回のタイトル グラフの描画 プログラミング演習 I L03 今週の目標 キャンバスを使って思ったような図 ( 指定された線 = グラフ ) を描いてみる 今週は発展問題が三つあります 2 グラフの準備 値の算出 3 値の表示 これまでは 文字列や値を表示するのには 主に JOptionPane.showMessageDialog() を使っていましたが ちょっとしたものを表示するのには System.out.println()

More information

IT プロジェクト

IT プロジェクト オブジェクト指向設計による卓球 ゲームの試作 (2) 劉少英 情報科学部コンピュータ科学科 Email:sliu@hosei.ac.jp ホームページ : http://cis.k.hosei.ac.jp/~sliu/ 講義内容 1. 卓球ボールをテーブルの上に移動させる 2. 関連しているクラスにメソッドを加える 3. プログラムの文書化技術 1. 卓球ボールをテーブルの上に 移動させる 8 9

More information

Microsoft Word - NonGenList.doc

Microsoft Word - NonGenList.doc ジェネリクスとコンパレータを使用しないリストのプログラム例 1. ポインタによる線形リスト LinkedListNG.java: ポインタによる線形リストのクラス LinkedListNG LinkedListTesterNG.java: LinkedListNG を利用するプログラム例 2. カーソルによる線形リスト AryLinkedListNG.java: カーソルによる線形リストのクラス AryLinkedListNG

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

Prog2_9th

Prog2_9th 2013 年 11 月 21 日 ( 木 ) 実施例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる これまでの教材に登場した例外の中で,IOException はコンパイラがチェックするため, 例外処理を必ず記述しなければコンパイルが出来ないものであるのに対して,ArithmeticException

More information

DVIOUT-exer

DVIOUT-exer プログラム理論と言語 : 期末試験用問題集 Part2 (2009) 演習問題 2-0 オブジェクト指向言語, とりわけ Java に関する用語の設問をもうける. 重要な語句については復習をしておくこと. 1 演習問題 2-1( レジメ記載の問題を具体化した問題 ) 下記は, 整数 (int) を要素とする線形リストのプログラムである. class IntCell { private int value

More information

第2回

第2回 第 4 回基本データ構造 1 明星大学情報学科 2 3 年前期 アルゴリズムとデータ構造 Ⅰ 第 4 回 Page 1 配列 スタック キューとその操作 4-1. 配列とその操作 配列型 同じ型の変数を並べたもの 配列にする型は 基本型 配列型 構造体 ポインタいずれでもよい 要素の並べ方を 次元 という 1 次元配列 ( 直線状 ) 2 次元配列 ( 平面状 ) 3 次元配列 ( 立体状 ) a[5]

More information

1

1 2 章 1 整数を一つ読み込み, その階乗を計算する RAM プログラムを書け f (n) = n! ( n 0) 何でもよい ( n

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

Java言語 第1回

Java言語 第1回 Java 言語 第 8 回ウインドウ部品を用いる (1) 知的情報システム工学科 久保川淳司 kubokawa@me.it-hiroshima.ac.jp 前回の課題 (1) マウスを使って, 前回課題で作成した 6 4 のマスの図形で, \ をマウスクリックによって代わるようにしなさい 前回の課題 (2) import java.applet.applet; import java.awt.*;

More information

1 JAVA APPLET 実習 1. はじめに Java フォルダに applet フォルダを作成する 2. 実習問題の作成 J01.java public class J01 extends Applet{ public void paint(graphics kaku){ kaku.drawstring("hello World from Java!",60,70); j01.html

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 8 回メソッド (2) 授業開始前に自己点検 前回までの必須課題はすべてできていますか 前回までの学習項目であいまいな所はありませんか 理解できたかどうかは自分自身の基準をもとう Java 1 第 8 回 2 前回のテーマ メソッドとは いくつかの命令の列を束ねて 一つの命令として扱えるようにしたもの 今回学ぶメソッドの役割は その他のプログラミング言語では関数またはサブルーチンと呼ばれることがある

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 6 回目継承課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) 新しいクラスを宣言するとき既存のクラスを利用することはできない (2) 新しいクラスが既存のクラスのメンバーを受け継ぐことを継承という (3) クラスの拡張における既存のクラスをサブクラスという (4) サブクラスからスーパークラスの private メンバーをアクセスすることはできない (5)

More information

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),VisualBasic,smaltalk,Simula オブジェクト指向ソフトウエア開発 ( システム開発 ) システム ( プログラム

More information

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先 第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先頭の要素要素から最後までが直線的に直結している構造 Set 同じものは含まないという構造. 要素間につながりはない

More information

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 ( Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 ( 引数 ) x が決まれば F(x) が決まる これを応用して 複雑な処理も 外面的にはひと固まりの処理として扱う

More information

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある   インターネットアドレス Java 独習第 3 版 12.1 インターネットアドレス 12.2 サーバーソケットとソケット 2006 年 7 月 5 日 ( 水 ) 南慶典 12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある www.mycompany.com

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java 第 3 版 13.1 アプレットの概要 13.2 最初の Java アプレット 13.3 アプレットのライフサイクル 13.4 Graphics クラス アプレットの概要 (1/3) Web ページの HTML ソースコードから参照されるプログラム Web サーバーからブラウザに動的にダウンロードされる ダウンロードされたアプレットはブラウザの環境で実行される アプレットビューアなどのツールで実行することもできる

More information

2

2 プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか

More information

Prog1_15th

Prog1_15th 2017 年 7 月 27 日 ( 木 ) 実施 応用プログラム (3) キー検索 コレクションには, ハッシュテーブルと呼ばれるものがある これは, キー (key) と値 (value) とを組として保持しているものである 通常の配列が添字により各要素にアクセス出来るのに比べて, ハッシュテーブルではキーを用いて各値にアクセスすることが出来る キー及びそのキーから連想される値の組を保持していることから,

More information

< F2D E E6A7464>

< F2D E E6A7464> ピタゴラス数 [Java アプレット ] [Java アプリケーション ] 1. はじめに 2 2 2 三平方の定理 a +b =c を満たす3つの自然数の組 ( a, b, c) をピタゴラス数と言います ピタゴラス数の最も簡単な例として (3,4,5) がありますね このピタゴラス数を求めるには ピタゴラスの方法とプラトンの方法の2つの方法があります 2 2 ピタゴラス数 (a,b,c) に対して

More information

メソッドのまとめ

メソッドのまとめ 配列 (2) 2 次元配列, String http://jv2005.cis.k.hosei.c.jp/ 授業の前に自己点検 配列変数に格納される配列の ID と配列の実体の区別ができていますか 配列変数の宣言と配列の実体の生成の区別ができていますか メソッドの引数に配列が渡されるとき 実際に渡されるものは何ですか このことの重要な帰結は何ですか 引数の値渡しと参照渡しということばを例を挙げて説明できますか

More information

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - OOP.pptx 第 5 回 第 3 章継承 91 継承 ( インヘリタンス ): ウインドウシステムを例に説明 図 3.1: ウインドウの中にラベル, ボタン, リストの部品 各部品の属性と操作共通の属性と操作 ウインドウ内の左上を原点として (x, y) で場所指定 : 属性 (width, height) でサイズ指定 : 属性 識別のための名前 (name): 属性 置く位置の指定 (setlocation,

More information

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は 配列 2 前回には 配列の基本的な使い方と拡張 for 文について学んだ 本日は配列に付いての追加の説明として 配列のコピー 文字列配列 ガーベジコレクション 多次元配列について学んでいく 配列のコピー配列を用意し その全ての要素を別の配列にコピーすることを考える まず 以下に間違った例を示していく プログラム例 1 public class Prog07_01 int[] a = 1, 2, 3,,

More information

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説

Javaセキュアコーディングセミナー東京 第2回 数値データの取扱いと入力値の検証 演習解説 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, email=office@jpcert.or.jp, o=japan Computer

More information

情報処理Ⅰ演習

情報処理Ⅰ演習 C プログラミング Ⅱ の基礎 アドレス 変数のために用意されたメモリ領域の位置 アドレス 0x1000 0x1001 0x100 0x1003 0x1004 0x100 0x1006 0x1007 0x1008 0x1009 0x100A 0x100B メモリ 整数型の変数を宣言 int ; アドレス 0x1000 0x1001 0x100 0x1003 0x1004 0x100 0x1006 0x1007

More information

デジタル表現論・第6回

デジタル表現論・第6回 デジタル表現論 第 6 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 16 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 1 / 16 本日の目標 Java プログラミングの基礎配列 ( 復習 関数の値を配列に格納する ) 文字列ファイルの書き込み 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 7 回目オーバーライド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) スーパークラスのメソッドと同じ名前 戻り値 引数の個数と型をもつメソッドをサブクラスで宣言すると これらのメソッドはオーバーライドの関係になる (2) メソッドのオーバーライドとは スーパークラスのメソッドに代わってサブクラスのメソッドが実行される機能のことである (3) スーパークラス型の変数にサブクラスのオブジェクトは代入できない

More information

<4D F736F F F696E74202D AC C8899E D834F E >

<4D F736F F F696E74202D AC C8899E D834F E > Java 簡単な応用プログラム ( その 2) Java は すでにある部品群を上手く使ってプログラムを組み立てます 前回と同様に Frame を使って ウインドウを表示するプログラムを作りましょう. Frameは ウインドウを作るための部品で フレーム ( 枠 ) とタイトルおよび, 決められた仕組みが入っています. java.awt パッケージは, ウインドウ関連の部品が多くあります. javax.swing

More information

問題1 以下に示すプログラムは、次の処理をするプログラムである

問題1 以下に示すプログラムは、次の処理をするプログラムである 問題 1 次のプログラムの出力結果を a~d の中から選べ public class Problem1 { int i=2; int j=3; System.out.println("i"+j); a) 23,b) 5,c) i3,d) ij 問題 2 次のプログラムの出力結果を a~d の中から選べ public class Problem2 { int a=6; if((a>=2)&&(a

More information

JAVA入門

JAVA入門 JAVA 入門 3 配列とコレクション 配列 1. 配列とは? 簡単 JAVA 説明 11 配列 同じ型の値を複数まとめて記憶する という機能を持つもの ということですが イメージとしては 同じ型の入れ物を複数用意する というイメージです int int int 簡単 JAVA 説明 11 配列の準備 2. 配列の準備 行うことは次の 2 つです 1 配列の宣言 2 配列要素の確保 簡単 JAVA

More information

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy オブジェクト指向プログラミング演習 2010/10/27 演習課題 スレッド ( その 2) 同期処理 結果不正 デッドロック 前回のスレッドの演習では 複数のスレッドを実行し 一つのプログラムの中の違う処理を同時に実行し た ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする )

More information

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378> 公益財団法人全国商業高等学校協会主催 [2 級 Java 選択者のための問題 ] 平成 26 年度 ( 第 52 回 ) ( 平成 27 年 1 月 18 日実施 ) 情報処理検定試験 2 級プログラミング部門 Java 選択者のための問題 7 問 1 概要 誕生日を入力し 12 星座名を表示させる問題である 星座日と星座名を配列に各データを格納し 各配列の関連性 格納された星座日からどのようにして星座名を探索

More information

情報実習Ⅱ

情報実習Ⅱ 情報実習 Ⅱ 第 7 回 ( これまでの復習 ) 課題資料 Java のクラスの概形 クラス フィールドコンストラクタメソッド main メソッドローカル変数宣言オブジェクト生成オブジェクトへのメッセージ ( メソッド呼び出し ) 変数 : 基本型, 参照型 これまでの 習得事項 まだ初歩的な内容だけだが これらを利用するだけでも多くの実用的なプログラムが記述できる キーボード入力 : Scanner

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

グラフの探索 JAVA での実装

グラフの探索 JAVA での実装 グラフの探索 JAVA での実装 二つの探索手法 深さ優先探索 :DFS (Depth-First Search) 幅優先探索 :BFS (Breadth-First Search) 共通部分 元のグラフを指定して 極大木を得る 探索アルゴリズムの利用の観点から 利用する側からみると 取り替えられる部品 どちらの方法が良いかはグラフに依存 操作性が同じでなければ 共通のクラスの派生で作ると便利 共通化を考える

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 6 回目 if 文と if else 文 今日の講義で学ぶ内容 関係演算子 if 文と if~else 文 if 文の入れ子 関係演算子 関係演算子 ==,!=, >, >=,

More information

ガイダンス

ガイダンス プログラムの 1 行目に以下のように自分の入れること // vm12345 杉崎えり子 情報科学 B 第 10 回 GUI 情報科学 B Info2/3 info10 今日のフォルダー作成 Example10_1.java 1 今日やること Windows などで見られるウィンドウを作 成して (GUI プログラム ) そこに実行結 果を表示させる 2 ウィンドウの作成 Java を使用してウィンドウの作成をしたい

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

ガイダンス

ガイダンス プログラムの 1 行目に以下を入れること // vm12345 杉崎えり子 情報科学 B 第 10 回 GUI 情報科学 B Info2/3 info10 今日のフォルダー作成 Example10_1.java 1 今日やること Windows などで見られるウィンドウを作 成して (GUI プログラム ) そこに実行結 果を表示させる 2 ウィンドウの作成 Java を使用してウィンドウの作成をしたい

More information

Javaによるアルゴリズムとデータ構造

Javaによるアルゴリズムとデータ構造 1 algorithm List 1-1 a, b, c List 1-1 // import java.util.scanner; class Max3 { public static void main(string[] args) { Scanner stdin = new Scanner(System.in); int a, b, c; int max; // Chap01/Max3.java

More information

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1 Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の までを処理し どれにも一致しない場合 default; から直後の までを処理する 但し 式や値 1 値 2は整数または文字である switch( 式 ) case 値 1: // コロン : です セミコロン ; と間違えないように!!

More information

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文 Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文字 0x0000 ~ 0xffff byte 1バイト整数 - 2 8 ~ 2 8-1 short 2バイト整数

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

文字列操作と正規表現

文字列操作と正規表現 文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性

More information

Microsoft Word - problem3.doc

Microsoft Word - problem3.doc コンパイラ演習 : 作成問題 3 ( 担当 : 佐々木晃 ) 次のような言語のコンパイラを作成することが目的である 目的機械は hsm 仮想機械とする 昨年度までの講義資料 ( 中田先生 開先生による ) も参考にすること 演習問題 B3 問題番号 : B3 課題名 : コンパイラの作成 3 (1) 記号表の実装 (2) JavaCC プログラム課題 3 (1) 記号表の実装 記号表を実現するクラス

More information