OOP의 기본적인 것들을 거의 읽지 않고 있습니다. 나는 캡슐화와 추상화에 대해 혼란 스럽다. 필자의 이해대로, 추상화은 몇 가지를 노출하고 거의 숨기지 않는 방법입니다. 캡슐화은 객체의 상태를 캡슐화하여 외부 세계에 액세스 할 수 없도록하고 내부 메소드를 통해 액세스 할 수 있도록 도와줍니다. 따라서 둘 다 상관 관계가 있습니다. 하지만 추상적 인 클래스와 인터페이스를 사용하여 추상화가 이루어지면서 getter와 setter를 사용하여 캡슐화를 구현하는 방법을 여러 번 읽었습니다. 지금은 인터페이스 나 추상 클래스를 사용하지 않은하지만 여전히 나의 이해에 따라 내가 직접 B 클래스의 액세스 변수를 허용하지 않습니다에 의해 여기 추상화를 달성 위의 코드에서 (C#을)OOP에서 캡슐화와 추상화 이해하기
class A
{
private int a;
public void print()
{
Console.WriteLine("Value of a = {0}", a);
}
}
class B
{
static void Main(string[] args)
{
A a = new A();
a.print();
}
}
코드를 다음 사항을 고려. 캡슐화를 구현함으로써 A.의 내부 메소드를 사용하여 액세스 할 수 있는지 확인했습니다. 그래서 혼란을 해결하는 데 도움을 줄 수 있습니까?
가능한 복제 http://stackoverflow.com/questions/742341/difference-between-abstraction-and-encapsulation?rq=1 – opewix
중복 질문. 위 링크의 모든 것을 읽으면 이해할 수 있습니다. –