Movatterモバイル変換


[0]ホーム

URL:


LoginSignup
60

Go to list of users who liked

63

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【新人教育 資料】第2章 UMLまでの道 〜クラス編〜

Last updated atPosted at 2016-01-30

【新人教育 資料】第2章 UMLまでの道 〜クラス編〜

あらすじ

新人がいっぱい入ってくる。新人のレベルもバラバラ。教育資料も古くなっているので、更新しましょう。
どうせなら、公開しちゃえばいいじゃん。という流れになり、新人教育用の資料を順次更新していくことにしました。

※後々、リクエストに応じて更新することが多いのでストックしておくことをおすすめします。

自分はTEMONA株式会社でCTOをしていますが、頭でっかちに理論ばっかり学習するよりは、イメージがなんとなく掴めるように学習し、実践の中で知識を深めていく方が効率的に学習出来ると考えています。

※他の登壇やインタビュー記事はWantedlyから見てください。

教育スタイルとしては正しい事をきっちりかっちり教えるのではなく、未経験レベルの人がなんとなく掴めるように、資料を構成していきます。

以下のようなシリーズネタで進めます。

No.記事
1【新人教育 資料】第1章 UMLまでの道 〜オブジェクト指向編〜
2【新人教育 資料】第2章 UMLまでの道 〜クラス編〜
3【新人教育 資料】第3章 UMLまでの道 〜図種類紹介とクラス図の解説編〜
4【新人教育 資料】第4章 UMLまでの道 〜クラス図を書いてみよう編〜
5【新人教育 資料】第5章 UMLまでの道 〜ユースケース図の説明&書いてみよう編〜
6【新人教育 資料】第6章 UMLまでの道 〜ステートマシン図の説明&書いてみよう編〜
7【新人教育 資料】第7章 UMLまでの道 〜アクティビティ図の説明&書いてみよう編〜
8【新人教育 資料】第8章 UMLまでの道 〜シーケンス図の説明&書いてみよう編〜

箸休めには以下をどうぞ

【新人教育 資料】ハードウェア編

では、今回もはじめていきましょう!

クラス(Class)

前回の【新人教育 資料】UMLまでの道 〜オブジェクト指向編〜でオブジェクトは属性を持つという事を説明しました。

クラスは同じ属性を持つオブジェクトをまとめて抽象的に表現するものだと考えてください。

より簡略に言うと、「たい焼きの型」みたいなもんだと思ってください。この例えは、読み進めていくとなんとなく理解出来ると思います。

では少しみていきましょう。

クラスは属性と操作を持つ

AさんBさん
名前渋谷太郎新宿花子
性別
身長175cm155cm
体重70kg50kg

上記の表から「Aさん」と「Bさん」の共通する属性と操作(動作)をみると以下のようになります。

  • 属性

  • 名前

  • 性別

  • 身長

  • 体重

  • 操作

  • 食事をする

  • 会話をする

  • 寝る

AさんとBさんというオブジェクトをみると、共通項が見つかり、人という抽象的な概念があることが分かります。これがクラスです。「人」のクラスは「名前」などの属性を持ちますが、値はありません。

クラスの責務は「操作(動作)」です。クラスで各オブジェクト共通な操作をします。

クラスからインスタンス(オブジェクト)を作る

名前
性別
身長
体重

↓ 名前や性別などの属性にして、インスタンスを作る

Aさん
名前渋谷太郎
性別
身長175cm
体重70kg

プログラムをやっていたりすると、クラスとやらインスタンス、オブジェクトという言葉を聞くと混乱しますよね。UMLの世界とプログラムの世界(言語によっても違う)では厳密に言うと取り扱われ方が若干違うのですが、ここでいう、オブジェクトとインスタンスはニアリーイコールだと思ってください。

具体的な「もの」は全てオブジェクトと呼べます。インスタンスは、クラスを基に作られる、オブジェクトだと思ってください。

冒頭に説明したクラスは「たい焼きの型」と言っていたのがなんとなく伝わったでしょうか?

たい焼きの型というクラスに生地、クリームなどの属性をいれて、出来上がるのがクリーム味のたい焼きというインスタンスです。

生地にほうれん草が練りこまれていても、中身があんこだろうとクリームだろうとたい焼きですよね。

可視性(難しい人はSKIPしてください)

可視性は、開発をするようになったら、必ず理解しなければならないものですが、最初のつまづきポイントなので、難しい人はSKIPでよいと思います。前段のところで、クラスは「たい焼きの型」のようなものと紹介しましたが、これはプログラム上ではクラス定義といって、「たい焼きの型」がどのようなものかを定義しています。可視性とはそのクラス定義の外部(他のクラス)から属性または操作にアクセスできるかどうかを示したものです。

可視性表記説明
private-このクラスの内部定義からのみアクセス出来る
protected#このクラス、およびこのクラスを継承するクラスからのみアクセス出来る
package private~このクラスを含むパッケージ内、および明示的に型をインポートする全てのパッケージ内でアクセス出来る
public+他の全てのクラスからアクセス出来る

なんとなく雰囲気だけでも分かるように説明してみましょう。
以下のようなクラスがあります。

可視性
ーー属性ーー
名前package private
性別public
体重package private
自分だけの秘密private
家族しか知らない思い出protected
ーー操作ーー
あいさつをするpublic
名前を教えるpackage private
体重を教えるprivate

可視性をニュアンスで伝えるとしたら

  • private
  • 自分しか知らない。
  • protected
  • 親しか知らない。
  • package private
  • 知り合いは知っている。
  • public
  • 見た目で分かる。知っていても問題ない。

のようなものだと思ってください。
実際に開発する際は、これは可視性は大事なものになるので、しっかりと考えた上で使い分けましょう。

あとがき

この資料は「UMLまでの道」と題して、UMLでも比較的多用するダイアグラムを書けるように、構成していきます。
【新人教育 資料】UMLまでの道 〜オブジェクト指向編〜でオブジェクト指向やオブジェクトについて、今回でクラスやインスタンスについて説明したので、次回はUMLのダイアグラムについて説明したいと思います。UMLのダイアグラムについて説明した後は、PlantUMLを使ってUMLモデリングしていきます。

60

Go to list of users who liked

63
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60

Go to list of users who liked

63

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?


[8]ページ先頭

©2009-2025 Movatter.jp