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

Similar documents
JavaプログラミングⅠ

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

Javaの作成の前に

Javaプログラムの実行手順

Prog1_6th

PowerPoint プレゼンテーション

JavaプログラミングⅠ

PowerPoint プレゼンテーション

GEC-Java

メソッドのまとめ

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint ppt

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

デジタル表現論・第4回

JavaプログラミングⅠ

基本情報STEP UP演習Java対策

Microsoft PowerPoint - chap10_OOP.ppt

GEC-Java

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

プログラミング入門1

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

Microsoft PowerPoint - prog04.ppt

JavaプログラミングⅠ

JavaプログラミングⅠ

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

Prog1_10th

Prog2_12th

Microsoft PowerPoint - prog09.ppt

oop1

プログラミング入門1

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft PowerPoint - prog09.ppt

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

K227 Java 2

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Java講座

GEC-Java

JAVA入門

Prog2_9th

ガイダンス

PowerPoint プレゼンテーション

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

ガイダンス

Java言語 第1回

Microsoft PowerPoint - lec06 [互換モード]

プログラミング実習I

スライド 1

Prog1_15th

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

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

JavaプログラミングⅠ

Prog1_3rd

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

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

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

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - ruby_instruction.ppt

ガイダンス

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

情報実習Ⅱ

JavaプログラミングⅠ

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

2

ガイダンス

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

プログラミング入門1

情報処理Ⅰ演習

PowerPoint プレゼンテーション

r1.dvi

JavaプログラミングⅠ

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

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

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft Word - no11.docx

デジタル表現論・第6回

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

DVIOUT-exer

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て

第二回独習 Java ゼミ 第二章クラスとメソッド 2.1 メソッドの構造 2.2 静的メソッドと静的変数の概要 2.3 インスタンスメソッドとインスタンス変数の概要 2.4 Integerクラス 2006/04/19 神津健太

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の

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

JavaプログラミングⅠ


Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答

Microsoft PowerPoint - prog07.ppt

人工知能入門

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

文字列操作と正規表現

Program Design (プログラム設計)

Prog1_2nd

Microsoft Word - VBA基礎(6).docx

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

Microsoft Word - problem3.doc

Prog2_10th

Microsoft Word - no13.docx

基礎計算機演習 実習課題No6

Transcription:

山元進

クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値

変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全 簡単にできる プログラミング基礎 II で学習

プログラムコードの中で クラスを定義する部分をクラスの宣言 (declaration) と呼ぶ クラス中にはメンバがある メンバにはフィールドとメソッドがある フィールドは 対象の性質を表す変数 メソッドは 対象の機能を表すコード クラスの宣言は各メンバの宣言の集まり クラス内でクラスを宣言することも可能

class クラス名 型名フィールド名 ; 戻り値の型メソッド名 ( 引数リスト ) 文 ; return 式 ;

class Car int num; double gas; この例は フィールドだけをもつクラスの宣言

クラスの宣言は プログラムで使う部品のひな形 ( 仕様書と思っても良い ) 実際に使うためには 部品を製造する必要あり 作った部品 = オブジェクト, インスタンス オブジェクト作成の方法変数 = new クラス名 (); 例 Car car1; // car1 は Car クラスのオブジェクト car1 = new Car(); // car1 : 固有名詞のようなもの

フィールドにアクセス オブジェクトと結びつけられた変数名. フィールド名例 car1.num, car1.gas フィールドは変数なので 前にオブジェクト名がついても やはり変数として扱われる 代入などができる ( 教科書 p.224, 図 8-5 参照 )

// 車クラス class Car int num; double gas; class Sample1 public static void main(string args[]) Car car1; // 同じファイルで定義したクラスは (import せずに ) 使っても良い car1 = new Car(); car1.num = 1234; car1.gas = 20.5; System.out.println(" 車のナンバーは " + car1.num + " です "); System.out.println(" ガソリン量は " + car1.gas + " です ");

2 つ以上オブジェクトを作成しても良い Car car1; car1 = new Car(); // Car object を作って car1 と命名 car1.num = 1234; car1.gas = 20.5; Car car2; car2 = new Car(); car2.num = 2345; car2.gas = 30.5;

メソッド : クラスのメンバの一種 オブジェクトに作用して様々な機能を実現する 引数をとり 何か値を返すのが基本 例戻り値の型メソッド名 ( 引数リスト ) // ここの引数リストに書かれるのは仮引数 文 ; return 式 ; // 呼び出し元に返す値を指定する

void n. 空間 ; 空所, 割れ目 ; 空虚 ( 感 ). 三省堂提供 EXCEED 英和辞典 より メンバが値を返さない時は void 型にする void メソッド名 ( 引数リスト ) 文 ;

// 車クラス class Car int num; double gas; void show() // 車オブジェクトのナンバーとガソリンの量を標準出力に印字する System.out.println(" 車のナンバーは " + num + " です "); // クラス内でメンバを利用する時は メンバ名だけで System.out.println(" ガソリン量は " + gas + " です "); // アクセスできる class Sample2 public static void main(string args[]) Car car1; car1 = new Car(); car1.num = 1234; car1.gas = 20.5; car1.show(); car1.show();

// 車クラスの中で車クラスのメソッドを呼び出す class Car int num; double gas; void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は " + gas + " です "); void showcar() System.out.println(" これから車の情報を表示します "); show(); class Sample3 public static void main(string args[]) Car car1; car1 = new Car(); car1.num = 1234; car1.gas = 20.5; car1.showcar();

例えば ナンバーを設定するメソッドでは 設定すべき番号を伝えてやる必要がある 必要な情報をメソッドに渡してやるのが引数 メソッドの定義に使うのは仮引数 実際にどんなものが渡されるかは分からないが 名前がないと呼ぶのに困るので 仮名をつける メソッドを呼出し時に実際に渡すのが実引数

// 車クラス class Car int num; double gas; void setnum(int n) // n は仮引数 num = n; System.out.println(" ナンバーを " + num + " にしました "); void setgas(double g) gas = g; System.out.println(" ガソリン量を " + gas + " にしました "); void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は " + gas + " です "); class Sample4 public static void main(string args[]) Car car1 = new Car(); car1.setnum(1234); // 1234 は実引数 必要に応じてどんな値にしても良いし 変数にしても良い car1.setgas(20.5);

変数を実引数にする場合に 仮引数と名前が違っても良い ただし 型が同じである必要がある 例 class Sample4 public static void main(string args[]) int number = 1234; double gasoline = 20.5; Car car1 = new Car(); car1.setnum(number); car1.setgas(gasoline);

クラスの宣言の中では メンバの前に何も指定しなくてもアクセスできる そのメンバがフィールドでもメソッドでも メソッドの定義中 呼び出される際のオブジェクト名の代わりに this というキーワードが使える例 Sample4.java の setgas() の定義を以下の様にしても良い void setgas(double gas) this.gas = gas; System.out.println(" ガソリン量を " + this.gas + " にしました ");

// 車クラス class Car int num; double gas; void setnumgas(int n, double g) num = n; gas = g; System.out.println(" 車のナンバーを " + num + " にガソリン量を " + gas + " にしました "); void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は " + gas + " です "); class Sample5 public static void main(string args[]) Car car1 = new Car(); int number = 1234; double gasoline = 20.5; car1.setnumgas(number, gasoline);

メソッドの呼び出し元に戻す ( 返す ) 情報 エラー発生の通知 演算の結果 などなど 例えば車のナンバーを取得するメソッド ナンバーは int 型だから int 型の値を返すようにするのが自然に思える サンプルコードは次項

// 車クラス class Car int num; double gas; int getnum() // int 型のナンバーを返すという宣言 System.out.println(" ナンバーを調べました "); return num; // 返す値を決める double getgas() System.out.println(" ガソリン量を調べました "); return gas; void setnumgas(int n, double g) num = n; gas = g; System.out.println(" 車のナンバーを " + num + " にガソリン量を " + gas + " にしました "); void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は " + gas + " です "); class Sample6 public static void main(string args[]) Car car1 = new Car(); car1.setnumgas(1234, 20.5); int number = car1.getnum(); double gasoline = car1.getgas(); System.out.println(" サンプルから車を調べたところ "); System.out.println(" ナンバーは " + number + " ガソリン量は " + gasoline + " でした ");

戻り値は一つしか無い 呼び出し元では 戻り値を使わないで無視することもできる 使う場合 int number = car1.getnum(); // number に戻り値を保存 使わない car1.getnum(); // 戻り値は無視 何処にも保存されない

プログラムを設計するのに 扱う対象を分析して記述するとうまく行くようだ Object 指向 対象の性質 : コンピュータ上ではデータ 対象が持つ機能 : データに対する操作両者を合わせて定義するものがクラス 車のデータベースの例 ( 教科書 p216, 図 8-1) ナンバー ガソリン量 データ ( フィールド ) ナンバー設定 ガソリン増減 操作 ( メソッド )

main メソッドを持つ class Report1 中に int num を仮引数とし int 型の戻り値として num の桁数を返すメソッド ketasuu を実装せよ また main メソッドでは キーボードから 0 以上の整数を読み取り int inum に代入せよ さらに inum を実引数として ketasuu を呼び出し 戻り値を画面上に印字せよ ただし ketasuu は static である必要があるので static int ketasuu(int num) と宣言せよ

main メソッドを持つ class Report2 中に int num を仮引数とし boolean 型の戻り値として num が素数であるかどうかを返すメソッド sosuu を実装せよ また main メソッドで 101 から 110 の整数を実引数として sosuu メソッドを呼び出し それぞれの整数が素数であるか否かを書き出せ ただし sosuuは static である必要があるので static boolean sosuu(int num) と宣言せよ

main メソッドを持つ Report3 クラスと同じファイル中に 次の仕様を満たす Student クラスを作成せよ 以下の各フィールドを持つ String name; String id; int mark; // mark : 点数のこと 以下のメソッドを持つ boolean passed() mark >= 80 で true, それ以外で false String info() name, id, mark をタブで区切った文字列を返す

main メソッド中に Student クラスの変数 student を作成し name に自分の名前 id に自分の学籍番号 mark に中間試験の予想点数 ( 各人が勝手に決めて良い ) を入れよ main メソッド中で student.info(), student.passed() の戻り値を画面に印字せよ