アプリ開発サークル勉強会① 開催日時 2020年11月14日(土) 20:00-21:00
開発アプリサークル Java講座① 2020-11-14(土)
今回はクラス(model)について
Springフレームワークの依存関係を追加する時にlombockがあると思いますが、
modelを作る上で必要な部分がわからなくなってしまうので学習しました。
Employee(従業員)を作ってみましょう。まずはlombokとの比較からみていきましょう。
lombokとの比較例
@Data public class Employee { // フィールド private int id; private String name; } }
lombockを使うとフィールドに変数を宣言するだけで後はアノテーションがいい感じに処理をしてくれます。
@Getter @Setter @ToString @EqualsAndHashCode @Constructor この5個のアノテーションが付与されます。
@Getter @Setter このふたつが重要なので書いていきます。
public class Employee { // フィールド private int id; private String name; // getter public int getId() { return this.id; } // setter public void setId(int id) { this.id = id; } // getter public String getName() { return this.name; } // setter public void setId(String name) { this.name = name; } }
書くコードがだいぶ増えましたが、
getterとsetterがないとprivateな変数の値を別のクラスで取り出したり、設定したりができなくなるのでかなり重要です。
lombockについてはここでいったん終了し、次はコンストラクターを作っていきます。
コンストラクタを書くことで、インスタンス宣言時にそのクラスにある変数の値を設定することができます。
コンストラクタとは・・・インスタンス生成した時に最初に呼びだされる場所のこと
// コンストラクタ Employee(int id, String name) { this.id = id; this.name = name; }
Employeeクラスにこちらを追加。
Employeeクラスを呼び出してみましょう。
public class Main { public static void main(String[] args) { Employee A = new Employee(1, "A"); System.out.println(A.getId()); System.out.println(A.getName());; } }
コンストラクタでインスタンス生成時に値を設定し、Getterで呼び出しています。
次はCompany(会社)を作ってみます。
public class Company { public String companyName; public Employee customer; Company(String companyName, Employee customer) { this.companyName = companyName; this.customer = customer; } // getter public String getCompanyName() { return this.companyName; } // setter public void setId(String companyName) { this.companyName = companyName; } // getter public Employee getCustomer() { return this.customer; } // setter public void setCustomer(Employee customer) { this.customer = customer; } }
コンストラクターの部分で会社名とEmployee(社員)を設定するようにしてみました。
イメージは会社に属している社員。
実行してみます。
public class Main { public static void main(String[] args) { Employee A = new Employee(1, "A"); Company company = new Company("KAISYA", A); System.out.println(company.getCompanyName()); System.out.println(company.getCustomer().getName()); } }
無事、会社名と会社に属している会社員名が表示されました。