OOP 개념에 대해 공부하고 있습니다. 읽은 문서에서 알 수 있듯이 OOP의 캡슐화 개념에 대한 예제 프로그램을 작성했습니다. 나는 아래 코드를 붙여 넣었다. 캡슐화에 대한 제 개념이 맞습니까?OOP의 캡슐화
Default.aspx를
<asp:Button ID="showBtn" Text="Show employee details." runat="server"/>
하여 default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
Employee emp;
protected void Page_Load(object sender, EventArgs e)
{
emp = new Employee();
emp.SetEmployeeID(001);
emp.SetEmployeeSalary(5000);
emp.EmployeeName = "Rob";
emp.EmployeeAge = 26;
showBtn.Click += new EventHandler(showBtn_Click);
}
void showBtn_Click(object sender, EventArgs e)
{
emp.ShowEmployeeDetails();
}
}
클래스 직원이
class Employee
{
private int empId;
private int empSalary;
private string empName;
private int empAge;
public void SetEmployeeID(int id)
{
empId = id; //Mutator
}
public void SetEmployeeSalary(int sal)
{
empSalary = sal; //Mutator
}
public int GetEmployeeID()
{
return empId; //Accessor
}
public int GetEmployeeSalary()
{
return empSalary; //Accessor
}
public string EmployeeName
{
get { return empName; } //Accessor
set { empName = value; } //Mutator
}
public int EmployeeAge
{
get { return empAge; } //Accessor
set { empAge = value; } //Mutator
}
private void ShowDetails()
{
HttpContext.Current.Response.Write(this.GetEmployeeID() + " : " + this.EmployeeName + " : " + this.EmployeeAge + " : " + this.GetEmployeeSalary());
}
public void ShowEmployeeDetails()
{
ShowDetails();
}
}
내 주요 의심은 내가 Employee에서 ShowDetails() 메서드를 호출하는 방법에 관한 것입니다. 이 방법은 ShowDetails() 메서드를 숨기는 좋은 방법입니까?
캡슐화는 메소드 숨기기가 아니라이 질문에 대한 답변을 고려하십시오. http://stackoverflow.com/questions/18300953/why-encapsulation-is-important-feature-of-oop-languages/ – BartoszKP