PowerPoint プレゼンテーション

Similar documents
PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog03.ppt

Java言語 第1回

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

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog04.ppt

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

Javaプログラムの実行手順

ガイダンス

Microsoft PowerPoint - chap10_OOP.ppt

JavaプログラミングⅠ

ガイダンス

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

Javaの作成の前に

Prog2_9th

<4D F736F F F696E74202D AC C8899E D834F E >

Microsoft PowerPoint - OOP.pptx

ガイダンス

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

PowerPoint プレゼンテーション

プログラミング入門1

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

GEC-Java

プログラミング入門1

Microsoft PowerPoint - lec06 [互換モード]

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

PowerPoint Presentation

C#の基本

メソッドのまとめ

Microsoft PowerPoint ppt

GEC-Java

スライド 1

ガイダンス

Microsoft PowerPoint - prog09.ppt

GUIプログラムⅣ

Microsoft PowerPoint pptx

Microsoft PowerPoint - prog09.ppt

プログラミング実習I

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

JavaプログラミングⅠ

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

PowerPoint プレゼンテーション

JavaプログラミングⅠ

プログラミング入門1

プログラミング入門1

プログラミング入門1

JavaプログラミングⅠ

Prog1_6th

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

Prog1_10th

Prog2_12th

基本情報STEP UP演習Java対策

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

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

GEC-Java

< F2D B825082CC96E291E82E6A7464>

プログラミング入門1

第1章 ビジュアルプログラミング入門

ガイダンス

プレポスト【問題】

ガイダンス

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

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

更新履歴 変更履歴 版数 リリース日 更新内容 第 1 版 2017/5/15 第 1 版発行 第 2 版 2017/7/13 更新履歴 変更内容を追加 (2ページ) 編集の前に を追加(8 ページ ) ブロックエディタ スマートモード エディタモード の説明を追加 (10~12 ページ ) ブロッ

Prog1_12th

IT プロジェクト

Microsoft PowerPoint - OOP.pptx

3 アドレスバーに URL を入力し ( 移動ボタン ) をタップします 入力した URL のホームページに移動します ネットワークへのログオン 画面が表示された場合は ユーザー名 を確 認し パスワード を入力して OK をタップしてください ホームページがうまく表示されないときは Opera B

Java講座

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

文字列操作と正規表現

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

第2回講義

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

Microsoft PowerPoint - 計算機言語 第7回.ppt

JAVA入門

PowerPoint プレゼンテーション

Si 知識情報処理

◎phpapi.indd

プログラミング入門1

PowerPoint Presentation

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

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

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

データ構造とアルゴリズム論

PowerPoint プレゼンテーション

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

デジタル表現論・第6回

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

Prog2_11th

Prog1_3rd

Prog1_15th

PowerPoint プレゼンテーション

2

Prog1_2nd

教材ドットコムオリジナル教材 0から始めるiアプリ (4) 0 から始める i アプリ (4) i アプリをプログラミングする際に必要なのは Java というプログラミング言語の基礎知識です 独自の命令や駆使してプログラミングをするわけですが Java というベースになっている言語を知らないでプログ

Transcription:

オブジェクト指向 プログラミング演習 第 2 回クラス インスタンス メソッド コンストラクタ

先週の出席確認 Webブラウザはどのようなプログラムでできているかこの問に答える前に Webブラウザとは 何か? 普段使ってますよね? Webブラウザを使ってできることと Webブラウザがやっていることを区別する必要がある 何をすれば Web ブラウザ と言えるのか NHK チコちゃんに叱られる!

Web ブラウザがやっていること Web ページを表示する サーバに接続して Web ページの情報を受け取る 受け取った情報 (HTML など ) を解釈して表示する 表示しているページに対する操作に対応する リンクがクリックされたら リンク先のページを表示する 入力欄のあるページに入力された情報を記憶する TAB で入力欄のフォーカスを移動する submitが押された enterキーが押されたときにサーバに接続して入力された情報を渡す

Web ブラウザがやっていること サーバに接続して Web ページの情報を受け取る サーバに接続するには サーバのアドレスなどを知る必要がある http://sun.ac.jp/prof/yamagu/ プロトコル サーバのアドレス サーバ上の情報の位置 URL を解釈して プロトコル サーバのアドレス 情報の位置を識別 ( 取り出す ) 機能を持っている プロトコルに従ってサーバと通信する http, https など

Web ブラウザがやっていること 受け取った情報 (HTML など ) を解釈して表示する HTML の解釈 表示 CSS の解釈 JavaScript の解釈 実行 画像情報の解釈 ( 解凍 ) 表示 その他 (pdf とか Flash とか ) プラグインを導入できるようにしておく プラグインに情報を渡す プラグインが画像や音声を出力できるようなインタフェースが必要

Web ブラウザがやっていること リンクがクリックされたら リンク先のページを表示する 画面上の位置とHTML 中の位置を対応づける リンク先は URL URLの解釈をする URLが省略されていることもある URLの補完をしている

Web ブラウザがやっていること Webページの閲覧を便利にする機能 閲覧履歴を記録する 履歴の中を前ページを表示する 履歴の中の次ページを表示する 再読込 ブックマーク ( お気に入り ) を記録する 複数タブ / 複数ウィンドウ Cookie の記録 管理

Web ブラウザの部品 ユーザとのインタフェース テキストの入力欄 ボタン Webページを表示する画面 HTMLの Form タグ内で使われる入力の仕組み

Web ブラウザがやっていないこと サーバ名から IP アドレスを得る 検索 これは DNS の仕事 Web ブラウザは DNS への問い合わせをする これは検索エンジンの仕事 Web ブラウザは検索エンジンに検索語を渡し 応答として返ってきた Web ページを表示している HTML や CSS の記述 これは Web ページを作る人の仕事 問は Web ページがどうできているか ではない Web ブラウザは HTML や CSS を解釈して Web ページの表示を行っている ネットワーク上の他のパソコンから接続される これは (Web) サーバの仕事

Web ブラウザがやっていることだが ブックマークの機能だけ述べた回答がありました インタフェースについてだけ述べた回答がありました Webブラウザの中心的な機能はWebページの表示です当たり前のことが意識できていない回答です

整理をし 言葉を選んで 回答すること Web ブラウザの画面は HTML と CSS でできている という回答がありました HTML と CSS で出来ているのは Web ページです Web ブラウザは Web ページを表示する機能を持っていますが それはブラウザの一部です この回答は 整理ができていない または 分かって書いているのなら 言葉が足りない

演習への回答に際しての注意事項 当たり前のことをきちんと書きましょう 本質 ( もっとも重要なこと ) は何かを はっきりさせるため 当たり前のことだけで終わってはダメ 定義を書いただけ 言い換えただけになるので 本質について より深く考えて下さい ブックマークの機能がなくても Web ブラウザとして成立しますよね?

今日のお題 クラス インスタンス メソッド オブジェクトモノの種類 コンストラクタ モノの実体 関数のようなもの モノの機能を表す計算手順 新しいインスタンスを作るときに呼び出される計算手順 本演習の Web ページがあります : http://sun.ac.jp/prof/yamagu/2018oop/

Java の型とクラス (C 言語と同様に ) 変数や返戻値は型を持つ 型には プリミティブ型とクラスがある プリミティブ型 :int, double など プリミティブ型の変数は その型の値を記憶する クラス 最初から用意されているもの 自分で定義したもの 文字列は String クラスで表される クラスを型とする変数は そのクラスのインスタンスを記憶する インスタンスが値として扱われている primitive は原始的な / 単純な / 元々のといった意味

サンプルプログラム Oop2.java というファイルを作り javac Oop2.java でコンパイル java Oop2 で実行 今日は Oop2.java というファイルを書き換えながら演習します java.awt パッケージの下にあるすべてのクラスを利用可能にする java.awt パッケージは GUI を作るのに使えるクラスを提供する import java.awt.*; public class Oop2 { public static void main(string args[]) { Frame f; f = new Frame(); f.setvisible(true); f に記憶されている Frame のインスタンスの setvisible メソッドを呼び出す ウィンドウが見えるようになる Frame クラスのインスタンスを記憶できる変数 f を宣言 新しく Frame クラスのインスタンスを作って f に代入 画面上にウィンドウ ( 枠 ) を出すためのデータを用意している

画面上にウィンドウを表示するプロ グラム このままだと あまりに小さいので Frame のインスタンスを見えるようにする前に大きさを設定する import java.awt.*; public class Oop2 { public static void main(string args[]) { Frame f; f = new Frame(); f.setsize(200,200); f.setvisible(true); f ( に記憶されている Frame のインスタンス ) の大きさを 200 200 にする

サンプルプログラム ためしに もう一つ Frame のインスタンスを作ってみる import java.awt.*; public class Oop2 { public static void main(string args[]) { Frame f; f = new Frame(); f.setsize(200,200); f.setvisible(true); f = new Frame(); f.setsize(100,200); f.setvisible(true); 区別できるように 大きさを変える 新しく Frame クラスのインスタンスを作って f に代入 改めて Frame クラスのインスタンスを作って f に代入 ウィンドウが二つ現れる

ここまでのまとめ Frame クラスのインスタンスを作る new Frame() ウィンドウが作られる Frameクラスは 可視 / 不可視を制御する機能を持つ setvisible メソッドを呼ぶ Frameクラスは 大きさを変える機能を持つ setsize メソッドを呼ぶ

コンストラクタ インスタンスを生成するときに呼ばれる 個々のインスタンスに初期設定をするなど Java の API を参照して Frame クラスに どんなコンストラクタがあるか 調べてみよう : Frame() Frame(GraphicsConfiguration gc) Frame(String title) タイトルを指定できる Frame(String title, GraphicsConfiguration gc)

コンストラクタの利用例 new クラス名に続く括弧内に コンストラクタへの引数を渡す import java.awt.*; public class Oop2 { public static void main(string args[]) { Frame f; f = new Frame("OOP"); f.setsize(200,200); f.setvisible(true); 新しく Frame クラスのインスタンスを作るとき タイトルを指定している

ここまでは 既存のクラスの既存のコンストラクタやメソッドを使った 次は 自分でコンストラクタやメソッドを定義してみよう

Frame を持つクラスを定義してみる import java.awt.*; public class Oop2 { Frame fr; Oop2() { fr = new Frame("Oop2"); fr.setsize(200,200); fr.setvisible(true); public static void main(string args[]) { Oop2 test; test = new Oop2(); Oop2 は Frame を一つ持つ これはフィールド Oop2 のインスタンスを作る ウィンドウが現れる フィールドの宣言には 型フィールド名 ; というパターンを書く public や static などの修飾が付くこともある Oop2 のコンストラクタの定義コンストラクタは クラス名 ( 仮引数列 ){... というパターンで定義する コンストラクタの定義には public などの修飾が付くこともある

メソッドの定義と呼出し メソッドの定義には public や static などの修飾が付くこともある import java.awt.*; public class Oop2 { Frame fr; Oop2() { fr = new Frame("Oop2"); fr.setsize(200,200); fr.setvisible(true); void large() { fr.setsize(400,400); public static void main(string args[]) { Oop2 test; test = new Oop2(); test.large(); メソッドの定義は 返戻値の型メソッド名 ( 仮引数列 ){ というパターンを クラスの定義の中に書く C 言語では引数を持たない関数では 仮引数列に void と書くことを推奨したが Java では仮引数列に void と書くことができない メソッドの呼出し 変数 test( に記憶されているOop2のインスタンス ) の large メソッドを呼んでいる

今日のまとめ クラス class というキーワードを使って定義する その中身には フィールド メソッド コンストラクタを書く インスタンス new というキーワードを使って 生成する メソッド インスタンス i のメソッド m を i.m(...) というパターンで呼び出す クラスの定義の中で メソッドを定義する コンストラクタ new を使うと呼び出される コンストラクタの定義も クラスの定義の中に書く

import java.awt.*; public class Oop2 { おまけ : 絵を描くくらいしたい Frame fr; Oop2() { fr = new Frame("Oop2"); Canvas cv = new Canvas() { ; public void paint(graphics gc) { gc.setcolor(new Color(255,255,255)); gc.fillrect(0,0,200,200); gc.setcolor(new Color(0,0,0)); gc.drawline(50,50,150,150); cv.setsize(200,200); fr.add(cv); fr.pack(); fr.setvisible(true); 絵を描くには Canvas クラスを使う Canvas の大きさを設定する public static void main(string args[]) { new Oop2(); 作ったインスタンスを 受け取る変数が必要なワケではない Canvas のサブクラスを名前を付けずに定義して そのインスタンスを作っている Frame に Canvas を入れる 描画の命令は Graphics クラスのインスタンスを通じて行う 白で 200 200 の領域を塗りつぶす 黒い線を一本描く Frame の大きさを計算する ここでは Canvas に合う大きさになる

次回予告 アクセス制御