ネットワークプログラミング
(Network Programing) 第4回 5/13
1 補足とまとめ
Rubyの特徴
Rubyの特徴を知っておこう。別ページにまとめたので参照下さい。
プログラムの実行
前回授業で板書を使って解説した記録も1ページにまとめたので活用ください。
2 ファイルへ/からの読み書き
=> 別ページ
3 補足解説
オブジェクトとクラス
(昨今のプログラミング言語では中核となることが多い)「オブジェクト」の
典型的な使い方の例をこれまでにいくつか見てきた(右図のような形)
オブジェクト
- オブジェクトが持っている「メソッド」を呼び出すことでプログラムが進行していく。
- オブジェクトは「クラス」(総称のようなもの)として分類整理されていて、
そのクラスに属する個々のオブジェクト実体(インスタンスとも呼ばれる)は
共通の性質(呼出可能なメソッドや保持しているデータなど)を持つ。
- オブジェクトの分類は右図のように階層構造(木構造)になっている
(それを意識して利用したりドキュメントを探したりするといい)。
- その最上位にあるもの(最も総括的な概念といっていい)ものが Object
クラス
- ただしRubyでは言語実現の便宜上、そのさらに上にBasicObject があるが、
これはあまり気にしなくていい。
- クラス名は大文字ではじまる名前が使われる(それに対してメソッド名や変数名は
小文字から始まる名前)。
今日の主役は、Fileオブジェクト。
Fileオブジェクト(など)を今後使うにあたって知っておくべきこととして…
- 同じ種類の(同じクラスの)オブジェクトはプログラムの実行時に沢山作り出すことができる。
- それらの1つ1つは変数に代入するなどして管理される。
- クラスは、そのオブジェクトを生成するための型紙(設計図)のようなもの。

- クラス名を指定して、new
(という名前が多くのプログラミング言語で使われる)という
指示を与えることでオブジェクトが生成される。
- それぞれの(個々の)オブジェクトを「インスタンス」と呼ぶこともある。

- このとき、
File.new
のような書き方をするが、ピリオドの左側(メソッドの、レシーバ)に相当するオブジェクトは、生成前の状態では存在しない
(一種の「鶏と卵」的な関係)。
- new
などは、何もないところにインスタンスを生み出す(無から有を生む)メソッドであり、プログラミング言語では特別な扱いが必要になる。

- (2章にも記したが)クラスメソッド(Rubyでは特異メソッド)などに分類されるものが必要になる。
- Rubyでは、クラス名が大文字で始まるため、レシーバが大文字で始まっていれば特異メソッド呼び出しであるとわかる。
- 特異メソッドは、 たとえばこのopenメソッドの例
のように、言及するときに ‘#’ をつけて書かれることもある(プログラムには
‘#’ は書かない)。
クラス階層
宿題(予定)
今日紹介した
Fileオブジェクト、を使うプログラムを自分で書いて動作させてみて下さい。
- ファイルから読むプログラムでもファイルに書くプログラムでも(両方でも)、自分で選んで下さい。
- プログラム例のマネっこでも可。
- 上記の例題1でもOKです。
- どんなプログラムを書いて、どんな動作をしたか、ご報告下さい。
4 TCPソケットを使う
=> 別ページ