- 세터를 제공한다는 건 해당 필드가 변경될 수 있다는 것을 뜻함
- 객체 생성시 변경할 필요가 없으면 해당 값을 설정할 수 있는 생성자를 만들고 세터를 제거해서 변경 가능성을 제거
public class Person {
private String name;
private int id;
public Person(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
}
- 생성자를 통해 생성하여 필요한 값을 집어넣고, get으로 가져올수만있다. id같은경우는 변경할수 없게 만들어놔 보안에 더 안정성이있다.
class PersonTest {
@Test
void person() {
Person person = new Person(10);
person.setName("keesun");
assertEquals(10, person.getId());
assertEquals("keesun", person.getName());
person.setName("whiteship");
assertEquals("whiteship", person.getName());
}
}