Skip to content

ryo-ma/newcomer_practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Getting Started

新人向け学習コンテンツ

以下の環境で作成しましたがバージョンによって大きく影響を与えるような課題にはしないつもりです。

Java環境: openjdk version "21.0.1" 2023-10-17

またこのプロジェクトはVSCodeで作成しておりますので.vscodeファイルは配置しております。

利用しているVSCode Extension: Extension Pack for Java

Practice1

事前準備

このプロジェクトをgit cloneしてsrc/practice1/App.javaを実行できることを確認しておいてください。以下の結果が出れば問題ありません。

全ての仕事が完了しました

src/practice1/BackendEngineer.javaおよびsrc/practice1/FrontendEngineer.javaでエラーが発生するのは問題ありません。

演習

以下のクラス図をもとにEngineerクラスを実装し、以下の出力結果を出してください。

手順

  • src/practice1/App.javaのコメントアウトは外してください
  • src/practice1/Engineer.java ファイル作成してください
    • ファイルの最初にpackage practice1;を記載するの忘れずに
  • src/practice1/Engineer.javaの中身を作成してください

ルール

  • BackendEngineer.javaFrontendEngineer.javaApp.javaは編集不可とします

補足説明

  • クラス図はPlantUMLで記載しています
    • イタリック表現はabstractを意味します
    • Aの◯はabstract classです
    • Cの◯はclassです
    • 赤の□はアクセスレベルのprivateです
    • 緑の●はアクセスレベルのpublicです

クラス図

期待する出力結果

田中:仕事を開始します
バックエンドの構成を設計します
Djangoを使って実装します
pytestを使ってテストをします
田中:仕事が完了しました

鈴木:仕事を開始します
画面設計をします
NextJSを使って実装をします
Jestを使ってテストをします
鈴木:仕事が完了しました

全ての仕事が完了しました

Practice2

事前準備

git pullをして最新版を取得してください。

演習

コンストラクタを使わずに子クラス(BackendEngineer、FrontendEngineer)から親クラス(Engineer)へnameを渡せるようにして期待通りの出力結果を出してください。

期待する出力結果

田中:仕事を開始します
バックエンドの構成を設計します
Djangoを使って実装します
pytestを使ってテストをします
田中:仕事が完了しました

鈴木:仕事を開始します
画面設計をします
NextJSを使って実装をします
Jestを使ってテストをします
鈴木:仕事が完了しました

全ての仕事が完了しました

事前手順

  1. src/practice1以下のファイルをsrc/parctice2へコピーする
  2. src/practice2/BackendEngineer.javasrc/practice2/FrontendEngineer.javasrc/practice2/Engineer.javasrc/practice2/App.javaの最初の行package practice1;からpackage practice2;に変更する
  3. src/practice2/Engineer.javaからコンストラクタを消す
  4. src/practice2/Engineer.javaからprivate String name;を消す
  5. 各種ファイルを変更して実装する(App.javaは修正しません)

Practice3

以下の内容をクラス図としてモデリングしてください。

  • コンセプトとしては会社のIT開発部門における「チーム(自社)」と「従業員(正社員)」の関係です
    • チームへの従業員の参加、離脱、業務遂行は表現してください
    • それ以外の部分は各々想像していただいて良いです
  • 今回表現するモデルは「チーム(自社)」と「従業員(正社員)」の2つとします
    • 会社、会社からの辞令、部署、社外、パートナーなどを含めると範囲が広いので今回のケースからは外す
    • 初学者向けのためなるべくシンプルな課題にしているつもりです(シンプルに考えてください)
  • 「チーム(自社)」と「従業員(正社員)」は抽象化を意識してください
    • 抽象化の手段は問いません
  • 抽象化されたクラス、インターフェイスから具象クラスを記述する場合は最低2つの具象クラスを表現してください
    • 具象クラスをたくさん書く必要はありません
  • クラスが持つフィールドやクラス間の関係性などはお任せします
    • クラスが持つフィールドもたくさん書く必要はないので2~5つ程度で
  • Javaでの実装を意識してください
    • Javaの標準の型などは各自調べてください
    • 標準ライブラリ(Collectionなど)も確認しておいてください
  • クラス図の書き方はUMLに沿った記述にしてください
    • 使用する描画ツールなどは問いませんのが、ツール独自の表現は解説できるようにしておいてください

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages