12行目: 12行目:


==命名規則==
==命名規則==
# プリミティブ型の変数は1文字(String: s, int: i)
# クラスには体を表す命名を。フィールドには属性を表す名詞を、メソッドには動きを表す動詞を付ける
# クラスには体を表す命名を。フィールドには属性を表す名詞を、メソッドには動きを表す動詞を付ける
# メソッドはpublicで外部利用。privateで内部利用。オーバーライドを希望する時はabstractを付ける
# メソッドはpublicで外部利用。privateで内部利用。オーバーライドを希望する時はabstractを付ける

2019年7月2日 (火) 00:02時点における版

  • オブジェクト指向の真髄:コードの徹底した重複排除+クラスの擬人化
  • Javaコードで重複箇所がある → 概念的、機能的にもっと整理整合できる
  • 全て英語。シンプルで美しく脳に正しいイメージを伝える英語を使う

クラスの整理

ファイル

  • フォルダ1 (SuperClass) -> フォルダ2 (SuperClass) -> SubClassファイル群と階層整理ができる
  • 階層整理をすると各クラス群の役割状況、ポリモやメソッド等の使い回し状況などがtree俯瞰できる

メンバ

  • 静的メンバ → フィールド → コンストラクタ → メソッド → 定石オーバーライド/ゲッタセッタ

命名規則

  1. プリミティブ型の変数は1文字(String: s, int: i)
  2. クラスには体を表す命名を。フィールドには属性を表す名詞を、メソッドには動きを表す動詞を付ける
  3. メソッドはpublicで外部利用。privateで内部利用。オーバーライドを希望する時はabstractを付ける
  4. 能動メソッドには「attack」などの動詞を、受動メソッドには「getDammage」のようにgetを付ける
  5. インスタンス変数名は宣言されてる型の方のクラスのイニシャルを利用(PreparedStatement: ps)
  6. イニシャルだと変数名が1文字になってしまう場合に限り子音3文字にする(Connect: cnc)
  7. 2体目のインスタンスから変数名の後に数字をつけ始める(str2)
  8. 配列変数名は複数形(s)にする。配列には複数のデータが格納されているので
  9. その他の変数名はデータの内容を適切に表すものにする

外部リソース

  • ファイルを読み書きするときはバッファリングを併用

オーバーライド

  • toString:自作クラスのインスタンス情報を簡単に参照できるようにするため
  • equals:ArrayListはremoveなどの時にクラスのequalsメソッドを利用するので

チェックリスト

  • 等価判定される自作クラスのequalsは全てオーバーライドされているか?