Javaの作成の前に

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

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

JavaプログラミングⅠ

PowerPoint プレゼンテーション

Java言語 第1回

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint ppt

GEC-Java

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

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

Microsoft PowerPoint - chap10_OOP.ppt

JavaプログラミングⅠ

Microsoft PowerPoint pptx

JavaプログラミングⅠ

PowerPoint プレゼンテーション

JavaプログラミングⅠ

基本情報STEP UP演習Java対策

JavaプログラミングⅠ

Microsoft PowerPoint - prog04.ppt

PowerPoint プレゼンテーション

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

プログラミング入門1

PowerPoint プレゼンテーション

Prog2_12th

JavaプログラミングⅠ

2

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

Prog2_9th

Prog1_6th

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Microsoft PowerPoint - lec06 [互換モード]

PowerPoint プレゼンテーション

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

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

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

GEC-Java

Javaプログラムの実行手順

ガイダンス

JAVA入門

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

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

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

Microsoft Word - 商業-3

メディプロ1 Javaサーブレット補足資料.ppt

Java知識テスト問題

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

2

Prog1_10th

Make the Future Java FY13 PPT Template

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

デジタル表現論・第6回

Microsoft PowerPoint - prog09.ppt

ガイダンス

第2回講義

Microsoft Word - C言語研修 C++編 3.doc

Microsoft PowerPoint - prog09.ppt

PowerPoint プレゼンテーション

メソッドのまとめ

Prog2_9th

K227 Java 2

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

GEC-Java

情報技術 Java の特徴 Java は現在 事務処理計算用プログラミング言語として開発された COBOL に取って代わり C 言語や C++ と並んで 現在最も使われているプログラミング言語の一つである Java は Write Once, Run Anywhere( プログラムを一度作成したらど

Java講座

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

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

プログラミング入門1

ガイダンス

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

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

PowerPoint プレゼンテーション

DVIOUT-exer

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

プログラミング入門1

kantan_C_1_iro3.indd

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

4-1- 基 Java に関する知識 1 独立行政法人情報処理推進機構

Prog1_15th

ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

プログラミング入門1

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

oop1

Microsoft PowerPoint - object.ppt

: : : TSTank 2

JAVA とテンプレート

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

第 1 章 Java 言語について ( オブジェクト指向, 変数の扱い方, 繰り返し条件と条件分岐 ) Java 言語の概要とオブジェクト指向, 変数の扱い方, 繰り返し条件と条件分岐について理解し, プログラム作成を行う 1.1 Java 言語の概要 JAVA は Sun Microsystems

デジタル表現論・第4回

PowerPoint Presentation

Microsoft PowerPoint - prog08.ppt

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

スライド 1

プログラミング基礎

Microsoft PowerPoint - HITobject.ppt

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

文字列操作と正規表現

Prog2_10th

Transcription:

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

はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?

人間の言葉に近い言葉を翻訳してコンピュータに伝える プログラミング言語人間の言葉に近い言葉でコンピュータに作業内容を伝える言語 コンパイラ インタプリタプログラミング言語で書かれた作業内容を機械語に翻訳するソフトウェア

Java とは プログラミング言語の一種 Java コンパイラと Java インタプリタを利用して機械語に翻訳する 特徴 機種依存の少ない言語 ( マルチプラットフォーム ) 動作環境 (OS) を選ばない Java 仮想マシンを内蔵している様々な機器で動作 オブジェクト指向 ネットワークでの利用を想定した仕様

Javaの範囲 広い範囲において開発に利用 携帯電話のゲーム機能もJavaで作成 WebサービスもJavaで提供されている 家電用の組込機器向けプログラミング言語 近年 インターネットに接続できる電子レンジまで発売

Java と JavaScript Java の記述方法と若干似ている箇所があるけど 全くの別モノです Java プログラミング言語の一種 サーブレット (Java Servlet) Java を用いて ウェブページのための HTML 文書などを動的に生 成するサーバ上で動くプログラム またはその仕様 当初はクライアント側でのアプリケーション作成だったが この Servlet 登場以降 Java がサーバアプリケーションとして注目される JavaScript スクリプト言語 主に Web スクリプトとして利用される サーバサイド Java と呼ばれている Netscape 社が Web スクリプト言語として開発したのが名前の由来 Java とは全くの互換性がないので注意すること

Java の実行環境 Hello の出力を行う Java のソフト実行環境 ( ファイル名 :Hello.java) Java コンパイラ Java インタプリンタ Hello.java クラスライブラリ Java 仮想マシン OS ハードウェア 各自が作成 JDK コンピュータ Java コンパイラと Java インタプリタを利用して機械語に翻訳する

Java 仮想マシンによって OS 非依存のソフトウェアの作成が可能 ( 移植が簡単 ) Hello.java コンパイルしてソフトウェアの作成 Hello.class クラスライブラリ Java 仮想マシン Windows OS ハードウェア Aさんのコンピュータ Hello.class クラスライブラリ Java 仮想マシン Windows 以外のOS ハードウェア Bさんのコンピュータ

Java を用いたプログラミングの流れ 1. ソースコード ( プログラム ) ~~.java の作成 2. Java コンパイラでバイトコードを作成 Javaコンパイラを用いて~~.javaを翻訳しバイトコード~~.classを作成 Javaコンパイラ人間が書いたプログラムを バイトコードに翻訳するソフトウェア 3. Java インタプリタを用いて実行 Javaインタプリタを用いて バイトコード~~.classファイルを実行 Javaインタプリタバイトコードを機械語に翻訳しながら実行させていくソフトウェア

オブジェクト指向モノのあり方に着目して 現実の世界をモデル化する考え方 ソフトウェア開発などで, 操作の対象となるものを重視した考え方 車 :::: エンジン ハンドル タイヤなどの部品 ( フィールド ) をどのように利用するか ( メソッド ) を取りまとめた設計書 オブジェクト指向の考え方のポイント クラス オブジェクト ( インスタンス ) コンストラクタ オーバーロード 継承 修飾子 はじめにクラスを設計して メモリ上にオブジェクトを設定する クラス オブジェクトの設計図 オブジェクト 設計されたクラスに基づいて作成された実質上のデータ

クラスについて クラス Java コードは class が先頭についたブロックで成立する このブロックを クラス という class の次に書かれる文字列を クラス名 と呼ぶ Java のコードには最低 1 つ以上のクラスが存在 クラス名は自由でよい ( できるだけわかりやすい名前にすること ) クラス ( クラス名 :Sample) class Sample クラス名 public static void main (String args[]) Mainメソッドクラス.

クラスを利用するということは オブジェクトの作成 実際に一つのモノを作る オブジェクトまたはインスタンス コード上で作成されるモノ一つ一つのこと どのような性質をもっているかをクラスとして設計する class Car int num; ナンバー double gas; ガソリン量 Car クラス ( 設計図 ) 車には ナンバー ガソリン量 ガソリン量の決定 ナンバーの決定 ガソリン ナンバー表示 Car クラスオブジェクト 1 ナンバー 1234 ガソリン量 20.5 Car クラスオブジェクト 2 ナンバー 5678 ガソリン量 21.5

オブジェクトの作成 クラスを宣言する (declaration) モノの性質や機能をまとめたクラスを記述すること class クラス名フィールド クラスの 性質 を示す型名フィールド名 ; コード上では変数を用いて示す 戻り値の型メソッド名 ( 引数リスト ) 文 1; メソッド ; return 式 ; クラスの機能を示す ; フィールドとメソッドをあわせてメンバという メンバを用いて処理することをアクセスという

クラスを利用する 実際に作成したクラスをどのように取り扱うか class Car int num; double gus; String color; フィールド クラスの 性質 を示す コード上では変数を用いて示す メソッド void setcar(int n, double g, String c) num = n; double = g; color = c; void ShowInfo() System.out.println( 車の番号は + num+ です ); System.out.println( 車のガソリンは + gus+ です ); System.out.println( 車の色は + color+ です ); class Sample public static void main(string args[]) Car car1 = new Car(); car1.setcar(1234, 20.4, blue ); car1.showinfo(); クラスの機能を示す car1 のメソッド ShowInfo メソッドへアクセス アクセスの際.( ドット ) を の に置き換える Car クラスを用いた新しい Car オブジェクト car1 の作成 car1 のメソッド setcar を用いて各フィールドの設定 ( 各フィールドと setcar のメソッドへアクセス )

2 つ以上のオブジェクトを作成する オブジェクトはいくつでも作成することが可能 Car car1 ; car1 = new Car; car1.num = 1234; car1.gas = 20.5; Car car2 ; car2 = new Car; car2.num = 5678; car2.gas = 30.5; 1つ目のオブジェクトの作成 1 台目の車のナンバーとガソリンの代入 2つ目のオブジェクトの作成 2 台目の車のナンバーとガソリンの代入 1234 5678 num num Car1 20.5 gas Car2 30.5 gas

オーバーロードの仕組みを知る メソッドのオーバーロード 同じ名前の複数のメソッドを同じクラス内に定義しておくことができる public void setcar(int n) public void setcar(double g) public void setcar(int n, double g) メソッドをオーバーロードするときには各メソッドの引数の型 個数が異なるようにしなければならない 引数の型 個数が異なっていれば 同じ名前を持つメソッドだとしてもそれぞれ違うメソッドとして扱うことができる

カプセル化の仕組みを知る ( 修飾子 ) クラスを設計する人が メンバを適切に private メンバと public メンバに分類しておけば あとから他の人間がそのクラスを利用したときに 誤りのおきにくいプログラムを作成できる カプセル化 クラスの中のデータ ( フィールド ) と機能 ( メソッド ) をひとまとめにし 保護したいメンバに private をつけて 勝手にアクセスできなくする機能 フィールド メソッド private メンバ public メンバ このような指定のカプセル化がよく行われている

メンバへのアクセスを制限する クラスの外から勝手にアクセスできないようなメンバとしておく private メンバ class Car private int num; private double gas; private メンバにすると クラスの外から勝手にアクセスできなくなる class Sample1 public static void main(string args[]) Car car1 = new Car(); car1.num = 1234; car1.gas = -10.0; car1.show(); private はフィールドでよく用いられる

public メンバを作る public メンバはクラスの外からアクセスできる class Car public void setnumgas(int n, double g) public void show( ) class Sample1 public static void main( car1.setnumgas(1234, 20.5; car1.show(); 修飾子 : クラスのメンバにアクセス制限を与えるもの public : クラスの外からアクセスできる private: クラスの外からアクセスできない

コンストラクタの役割を知る コンストラクタは そのクラスのオブジェクトが作成されたときに 定義しておいたコンストラクタ内の処理が自動的に行われる メソッドと違って コンストラクタを自由に呼び出すことはできない コンストラクタは オブジェクトのメンバに自動的に初期値を設定する などの役割を書いておくのが普通

コンストラクタの基本 class Car private int num; private double gas; public Car() num = 0; gas = 0.0; System.out.println(" 車を作成しました "); public void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は " + gas + " です "); class Sample4 実行結果 public static void main(string args[]) Car car1 = new Car(); car1.show(); コンストラクタ メソッド 車を作成しました 車のナンバーは 0 です ガソリン量は 0.0 です

コンストラクタのオーバーロード コンストラクタでも メソッドと同じように 引数の数 型が異なっていれば同じようにオーバーロードすることができる 複数のコンストラクタを定義することができる コンストラクタのオーバーロードという public Car() // 引数なしのコンストラクタ num = 0; gas = 0.0; System.out.println(" 車を作成しました "); public Car(int n, double g) // 引数を 2 つ持つコンストラクタ num = n; gas = g; System.out.println(" ナンバー " + num + " ガソリン量 " + gas + " の車を作成しました ");

継承とはあるクラスの持つ機能をそっくり引き継いで さらに機能を付け加えた新しいクラスを作る機能 車のクラスを引き継いで レーシングカークラス 乗用車クラスを作成基本的なクラス 応用的なクラス ( スーパークラス ) ( サブクラス ) 車クラス レーシングカークラス レースコースで走るピットでガソリンを入れる 道路を走るガソリンを入れる 乗用車クラス 公道で走るガソリンスタンドでガソリンを入れる

//kuruma クラス class Car protected int num; protected double gas; public Car() num = 0; gas = 0.0; System.out.println(" 車を作成しました "); // レーシングカークラス ( 車クラスを継承したクラス ) class RacingCar extends Car 継承 private int course; extends の後ろのクラスを継承している public RacingCar() course = 0; System.out.println(" レーシングカーを作成しました "); class Sample9 public static void main(string args[]) Car cars[]; cars = new Car[2]; cars[0] = new Car(); cars[1] = new RacingCar(); for(int i=0; i<cars.length; i++) class cl = cars[i].getclass(); System.out.println((i+1) + 番目のオブジェクトのクラスは " + cl + " です "); 何のクラスで定義されているかを調べるメソッド 車クラスを更に拡張した部分

抽象クラス 共通の機能を表現し 個々が持つ独自の機能はそれぞれのサブクラスで実装したい場合に使用 抽象クラスのルール 抽象クラスのオブジェクトを生成できない 抽象メソッドがあるクラスは必ず抽象クラスとして宣言 抽象メソッドがない 抽象クラスを宣言することもできる

抽象クラス 抽象クラス // のりものクラス abstract class Vehicle protected int speed; public void setspeed(int s) speed = s; System.out.println(" 速度を " + speed + " にしました "); abstract void show(); main メソッドを含むクラス class Sample1 public static void main(string args[]) Vehicle vc[]; vc = new Vehicle[2]; vc[0] = new Car(1234, 20.5); vc[0].setspeed(60); 抽象クラスの定義の修飾子は abstract vc[1] = new Plane(232); vc[1].setspeed(500); for(int i=0; i<vc.length; i++) vc[i].show();

抽象クラスを継承したクラス // 車クラス class Car extends Vehicle private int num; private double gas; public Car(int n, double g) num = n; gas = g; System.out.println(" ナンバー " + num + " ガソリン量 " + gas+ " の車を作成しました "); public void show() System.out.println(" 車のナンバーは " + num + " です "); System.out.println(" ガソリン量は + gas + " です "); System.out.println(" 速度は " + speed + " です "); // 飛行機クラス class Plane extends Vehicle private int flight; public Plane(int f) flight = f; System.out.println(" 便 " + flight + " の飛行機を作成しました "); public void show() System.out.println(" 飛行機の便は " + flight + " です "); System.out.println(" 速度は " + speed + " です ");