무수한 시간 나는 클래스의 공공 재산이 주요한 가짜 인 것을 읽었지 만, 왜 데이터가 변환/변환되지 않는지는 알 수 없다.공공 재산의 실생활이 나쁜 것
내가
public class Employee
{
public String firstName;
public String lastName;
private int ssn = 0;
public boolean setSsn(String s)
{
//makes perfect sense why something like an ssn would use a getter setter
//some code to validate ssn
if(!validSsn(s)){
ssn = 0;
return false;
}
ssn = raw;
return true;
}
public String getSsn()
{
return ssn;
}
private boolean validSsn(String s)
{
//validation goes here
retrun val;
}
//I don't understand why I should make firstName private
// and then write
public void setFirstName(String s)
{
firstName = s;
}
public String getFirstName(String s)
{
return firstName;
}
}
이 문제의 원인이 될시겠습니까하는 시나리오를 제공하십시오 쓰기 무언가의 예를 특정하지 "다른 사람이 코드를 사용할 때 문제가 발생하기 때문에"왜? 왜 문제가 발생합니까? 사전에 건설적인 비판과 자세한 답변을 보내 주셔서 감사합니다. D
firstName이 설정되면 오류를 확인 하시겠습니까? 또는 설정 한 후에 잠급니다. 당신은 당신의 예제에서 그런 논리를 필요로하지 않을 것이지만, 어떤 경우에는 그 논리가 필요할 수도 있습니다. –
'employee.firstName = "\ n"; ' –
공개 속성이 나쁘지는 않습니다. 공개 *** 필드 ***는 캡슐화를 중단하고 클래스의 지식없이 데이터를 변경할 수 있도록합니다. 필드 값을 신경 쓰지 않는다면 큰 문제가 아닙니다. 그러나 당신이 거기에 있기 위해 그들에게 의지하거나 다른 방법으로 어떤 가치를 지니고 있다면, 그것을 현장에서 시행 할 방법이 없습니다. – dbugger