情報系大学生のプログラミング

【Python入門】初めてのプログラミング(継承2)雇用管理プログラムの作成

こんにちわ!この記事はPythonの初学者のための内容となっております。

今回は、「継承2」ということで、前回の内容よりもより応用的なコードの記述方法を見ていきます。若干複雑になってきますが、理解できるようになると楽しいですよ!

記事内で示すコードは、オブジェクト指向型プログラミングや継承の書き方を示すものです。直接的に役に立つのではなく、書き方の勉強として参考にしてください。また、プロセス指向のプログラミングとは違う独特の記述方法を学ぶためにも前回の内容もご参照ください!

【Python入門】初めてのプログラミング(継承)

今回の記事は、このような方向けの内容です。

  • 継承についての理解を深めたい
  • 継承の具体的な使い方を知りたい
  • 前回の内容じゃ物足りない

それでは頑張っていこう!

プログラミングスクールに関しては下の記事で詳しく記述しています。

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

【全スクール無料体験あり!】プログラミングを学びたい人におすすめのスクール5選!

継承のおさらい

継承とオーバーライド

継承(Inheritance)とは、同じ性質を再利用することで、楽にプログラムを記述する方法です。また、オーバーライド(override)とは、上乗りという意味で、同じ名前のメソッドを上書きする方法です。

継承の際に、スーパークラスのメソッドを利用するときは、「super()」を書くことで再利用が可能です。これは、コンストラクタなどの特別なメソッドにも利用可能で、メンバ変数が似ているときに有効的です。

コードの例を再確認しよう!

基本構文の確認

今回は、「Hero」クラスのメンバ変数が4つあり、このメンバ変数は、「SuperHero」クラスでも共通です。そのため、「super()」を用いることで楽に記述できました。

また、この例では、オーバーライドも使っています。「attack」メソッドは、2つのクラスで同じ名前ですが、サブクラスのメソッドが優先して実行されます。継承とオーバーライドを理解していきましょう。

継承の応用

雇用管理プログラムの作成

以下、すべてのプログラムをつなげると実行できます。解説の都合上クラス別に紹介していきます。

従業員

クラス「Employee」では、アルバイト、店長、マネージャーのすべての従業員のスーパークラスとなります。従業員は、個人情報に加え、従業員番号や労働時間も管理する必要があります。

また、メソッド「salary」では、各従業員のお給料を計算するメソッドです。メソッド内に、「min_wage」と「add_pay」は、「Employee」クラスのコンストラクタには存在しないですが、別のクラスで定義することになります。それぞれの意味は、最低賃金と能力給です。

アルバイト

アルバイトに関しては、特にメソッドを定義しませんでした。継承をしているため、コンストラクタをスーパークラスのものを用いて楽に記述しています。

アルバイトなので、能力給を示す「add_pay」はデフォルトで0円です。

店長

「Store_manager」クラスでは、店長を示しており、各店長(店舗)には、数人のアルバイトがいるという想定です。そのため、メソッド「add_partner」と「del_partner」を定義しました。「add_partner」には、引数を可変長引数にして、1行で何人も同時に登録できるような工夫を施しています。

追加や削除機能は基本的なプログラミング(CRUD機能)なのでぜひともマスターしたいですね。可変長引数については以下の記事を参考にしてください。

【Python入門】初めてのプログラミング(関数の利用・可変長引数とキーワード引数)

マネージャー

「Manager」クラスでも、各店舗を管理することを想定しているので、「add_store」、「del_store_manager」(※問題で使用)を定義しています。

今までの構造としてはこのようになります。マネージャーは数店舗(数人の店長)を管理しており、各店長は、数人のアルバイトを雇用している状態です。

今思ったのですが、すべてのクラスで、メンバ変数の「add_pay」もスーパークラスのコンストラクタに入れてもいいと思います。ただ、書き方は自由なので問題はないです。

メイン関数

うげぇぇー!長すぎぃぃぃ!

確かに長いですが、すべてのクラス、メソッドの確認をしています。プログラムの実行結果は思惑通りになっていてうまくできていますね。また、お給料が生々しいのも面白いところです笑。

全体のコード

こちらが全体のコードになります。

質問などがあれば、記事内でコメントしたり、お問い合わせしてくれると嬉しいです。

まとめ

今回は、過去一長いプログラムを紹介しました。オブジェクト指向型プログラミングや継承を用いたプログラミングの記述例を参考にしていただけると嬉しいです。

オブジェクト指向型プログラミングでは、現実世界をプログラムで再現することが基本です。今回の例では、雇用管理プログラムということで、「従業員」、「アルバイト」、「店長」、「マネージャー」がそれぞれどのような関係やになっているのかを考える必要がありました。

また、継承に関しては、従業員の基本的なデータ(名前、年齢、労働時間など)をメンバ変数として、定義する方法も今回で学べたと思います。継承を用いれば、いちいちメンバ変数のセッターを準備する必要がなくなり、コードを短く記述することが可能です。

今回で、1通りプログラミングの基本は終わった感じがするので、今後はPythonを使って面白いことを紹介していこうと思っております。

今後もよろしくお願いしますね!!

本日の理解度調査

今日の最後に理解度調査をします!!
どうすれば正しくなるのか考えてみてね!!

Q. 「Manager」クラスのメソッド「del_store_manager」を完成させよ。

※実際には、店舗を削除した場合、そこにいるアルバイトの存在を確認する必要があります。(たぶん)

正解は。。。

わかったかな??正解出来たら今回の項目は完璧だね!!

最後まで記事を読んでいただきありがとうございます!

昔、自分が参考にしていたプログラミングについての書籍を紹介します。
非常にわかりやすい書籍となっていますのでご確認ください。

プログラミングスクールに関しては下の記事で詳しく記述しています。

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

【全スクール無料体験あり!】プログラミングを学びたい人におすすめのスクール5選!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA