나는 내 인터뷰 준비 하고 브러쉬와 백업하도록 OOP 개념. 수백 가지의 가공물과 사용할 수 있지만 그 각 설명합니다 다르게 보인다. 일부 밝혔습니다.
>. 이 과정은 일반적인 패턴을 가지고 있는 식별하면 " 추상화. >. 체계적인 변화를. 일반 패턴과 추상 seabreeze >. 부를 수 있는 수단을 제공하고 specifying use". (리처드 >. 가브리엘).
무엇보다 통해 추상 클래스.
일부 기타 밝혔습니다.
>. 추상화 수단을 필요한 세부 사항을 클라이언트가 봅니다. >. 객체에는
및
>. 방법, CalculateSalary" " 있다고 가정해 봅시다. in your 부하예요 클래스, >. 이 매개 변수로: employeeid 담당하는 되돌려줍니다 연봉 및 >. 현재 월 부하예요 표시됨과 정수 값. 이제 누군가 >. 이 방법을 사용할 수 있다. 그는 어떻게 부하예요 신경 쓸 필요가 없습니다 >. 계산하는 객체에는 연봉을 지급할 수 있을까? 그는 한 단 한가지 염려사항 필요가 있다. >. 그 결과 이 같은 방법은 입력입니다 매개변수입니다 이름 및 형식 >. 멤버
I give me a 봤 다시 어느 누구도 그 결과에 대한 적절한 답을 것으로 보인다.
>. 캡슐화 전략이 일부로 사용되는 추상화. 캡슐화 >. ) 은 객체의 상태를 캡슐화됨 객체에는 자신의 상태와 >. 이 사실을 숨기고 외부에서. 이 클래스의 바깥쪽인지가 사용자 상호 작용 >. 하지만 그 방법을 통해 직접 스테이드 클래스뿐만 액세스할 수 없습니다. 그래서 >. 추출 관련 세부 구현 클래스를 떨어져 있다. >. 상태.
5 및 [here] "고 반박하고, 또 다른 멤버
>. 이들은 다른 개념. >. >. 이 모든 과정을 빼냅니다 구체화합니다 추상화 >. 해당 객체의 속성뿐만 unneeded/unimportant 합니다 >. 가장 적합한 특성을 도메인.
이제 난 엉망 m up with 전체 개념이다. 추상 클래스를 상속 액세스하며 지정자와 다란다 대한 그러니까말이야 얼마나 알고 싶어 할 때 나는 추상화 및 / 또는 캡슐화 interview. 에 대한 질문에 대답하기
, T # 39 desktopplatforms don& it as a mark 복제본임을. 그러니까말이야 몇 가지 유사한 질문이 쏟아졌다. 하지만 난 로렌아줌마가 혼란을 피하기 위해 충돌하는 가운데 설명. 아무나 믿을 만한 제안하세요 무엇이었을까요? 스택 오버플로 https://partner. microsoft. 질문 역시 혼란을 주고 있는 경우를 제외하고 다시 시작. )
>. 추상화 필요한 수단을 위해 자세히를 클라이언트와 객체에는 봅니다.
즉 실제로 캡슐화. 또한 첫 번째 부분에서 볼 수 없는 위해 캡슐화 위키백과 문서 및 데이터 인해 혼란을 겪고 말았다. http://en.wikipedia.org/wiki/Encapsulation_ (object-oriented_programming)
멤버 모두 당신 뒤에 숨어 있는 것만으로 클래스 속성 없는 점을 유념하십시오 1:1 캡슐화 전혀. 캡슐화 불변량 () 는 모든 구축현 숨기고 보호에 대한 정보.
여기서 좋은 이에 대한 기사는. http://blog.ploeh.dk/2012/11/27/Encapsulationofproperties/ 또한 기사를 보면 링크됨 그 글.
c # 의 클래스, 속성 및 액세스 수정자는 다양한 툴 캡슐화를 제공하기 위해 쓰였다.
캡슐화 복잡성을 줄이기 위하여 할 수 있습니다.
>. 이 과정은 일반적인 패턴을 파악하고 체계적인 변화가 있는 추상화 "; 일반 패턴과 추상 seabreeze specifying use" 수 있는 변화를 위한 수단을 제공합니다. (리처드 가브리엘).
그래, 그 좋은 인프라일까요 대한 정의를 추상화.
>. 이들은 다른 개념. Abstraction 의 과정은 모든 객체의 속성뿐만 빼냅니다 구체화합니다 필요 없는 최고의 적합한 특성을 유지하면서 / 중요하지 않은 유일한 도메인.
예, 이들은 다른 개념. 실제로 하는 것을 유념해야 추상화 반대 객체를 적합한 도메인만. 이는 일반적으로 하기 위해 객체에는 도메인에 적합한!
실제 문제가 있는 경우, 일반 솔루션을 제공할 수 있는 특화된 솔루션을 사용할 수 있는 보다 더 많은 문제를 해결할 수 있는 체계화하는 추상화 같은 흔한 패턴입니다. 그래야 나중에 증가되지는 재사용 성 단축시킵니다 구성 요소 또는 구성 요소를 사용하는 다른 프로그래머들이 만든 만든 동일한 도메인에 대한, 심지어 다른 도메인.
net framework, 예를 들어 목록이거나 제공하는 좋은 예로는 클래스뿐만 뜻한다. 이들은 거의 어디서나 사용할 수 있는 매우 추상 클래스 및 많이 대신한다. 상상할 수 있는 닷넷 (.net) 기반 구축 및 콩파니리스트 개최할 경우 디렉토리에만 왕루이엘리스트 클래스용 디렉토리에만 특정 속성이 있는 직원 및 기업 목록. 이러한 클래스들의 약간만이라도 쓸모 없는 많이 건이다. 통증, 어떤 것이 될 경우 전체 기능을 칼리스트 예를 들어 다시 구현 했습니다. 따라서 " List"; 추상화, 자동차 회사 직원, 떨어져 있다. 추상적인 개념 자체가 기준으로 목록을 통해 구현할 수 있는 자체 클래스.
추상 클래스 상속 및 다형성 툴과도 인터페이스와도 또는 c # 에서 추상화 제공할 수 있다.
추상화 활용도는 제공하기 위해 할 수 있습니다.
! [추상화 &. 캡슐화 예] [1] [ 이미지 소스 ], 1 < /sub> sub> <;;
는 왼쪽 위에서 오른쪽 상단 및 영상을 통해 Abstraction:* 아웃라인된 고양이. 이 동물의 고안되었습니다 외과의사야 및 old lady (또는 두) 이 다르기 때문이다. 동일팔레트에 때와 같은 방법으로 다른 기능을 하는 고양이 클래스용 따라 응용 프로그램. 모든 심장 및 폐, 간, 방광, cat 은 # 39, & # 39 를 purr& 신앙이니라 네 고양이 합니다. # 39 의 설계, s 는 추상적 경우에만 너회의 application& 고양이가 아닌 왼쪽 오른쪽.
는 고양이가 아웃라인된 Encapsulation: 의해 standing on the table. 어떤 사람이 고양이 (cat # 39 의 that& 위부의 * 로 볼 수 있어야 합니다. 신경 쓸 필요 없이 언제나 나열할지 실제 구현은 물론 오른쪽 왼쪽 위) 은 하나 또는 둘 중 하나를 고양이가 지원됩니다.
보여주기 위해 노력하겠다고 캡슐화, 추상 받을시간은 간단한 방법. 볼 수 있습니다.
이 데이터 및 기능 등을 하나의 장치 (불렀으매 마무리 - 클래스) 캡슐화 알려져 있다. 캡슐화 redboot*용 및 숨기기 내부 데이터 구조 및 정보 객체 (예: 코드.
캡슐화 is -
캡슐화 구축 추상화.
추상 is -
예를 들어 볼 수 있습니다 -
한 수 아래의 그림과 " GUI, 고객 정보 에드 (ed) 추가 붙여넣습니다 database".
이미지를 보면 우리가 해야 할 수 있습니다 (고객 구분된다.
예:
>. - 2 변수 저장하였습니다 고객 코드 및 고객 이름. >. >. - 1 에 추가하는 기능을 고객 데이터베이스 및 고객 이름을 코드.
namespace CustomerContent
{
public class Customer
{
public string CustomerCode = "";
public string CustomerName = "";
public void ADD()
{
//my DB code will go here
}
현재는 혼자 여기서 일하는 방법을 추가 못함.
데이터베이스 연결 코드 및 검증 코드 (추가 메서드을) 할 것입니다.
public bool Validate()
{
//Granular Customer Code and Name
return true;
}
public bool CreateDBObject()
{
//DB Connection Code
return true;
}
class Program
{
static void main(String[] args)
{
CustomerComponent.Customer obj = new CustomerComponent.Customer;
obj.CustomerCode = "s001";
obj.CustomerName = "Mac";
obj.Validate();
obj.CreateDBObject();
obj.ADD();
}
}
이제 필요 없는 여분의 서버리스 (검증하십시오 () ',' 표시 '크리스 에드보비치 ()' [복잡하고 추가 방법]) 를 보고 고객 코드, 사용자 파일만 및끝 우저드런드 대해 알고 있는 고객 이름과 추가 단추를 추가하며 기록. # 39, t care about HOW it 는 최종 사용자 doesn& 추가 데이터를 데이터베이스?.
그래서 이러한 복잡한 방법으로 하는 것이 아니라, 기타 공공 및 민간 (이리에 숨기기 그 방법) ',' 주 () '에서' 오브j.크리테드보비치 오비드발리다테 삭제 프로그램 (), 동급 달성할 캡슐화.
즉 단순해집니다 최종 사용자 인터페이스를 캡슐화.
namespace CustomerContent
{
public class Customer
{
public string CustomerCode = "";
public string CustomerName = "";
public void ADD()
{
//my DB code will go here
}
private bool Validate()
{
//Granular Customer Code and Name
return true;
}
private bool CreateDBObject()
{
//DB Connection Code
return true;
}
class Program
{
static void main(String[] args)
{
CustomerComponent.Customer obj = new CustomerComponent.Customer;
obj.CustomerCode = "s001";
obj.CustomerName = "Mac";
obj.ADD();
}
}
요약:
단계 - 1: 클래스 요구를 어떻게 합니까? * 추상화 있다.
단계 - 3: 3 단계: # 39, t 部门从 있는 복잡한 방법을 추가 및 민간 doesn& # 39 의 최종 User& 개입이 캡슐화 *.
추신: - 코드 위에 fast.* 어렵고
업데이트: There is an 비디오 여기있을 https://partner. microsoft. 설명하란말야 예제: [차이가 뭘까 추상화 및 캡슐화] [2]
[2]: https://www.youtube.com/watch? v = 1Q4I63-hKcY
그들은 함께 발려짐 많지만 개념, 내 생각엔 약간 다르다. 반면, 추상화 더 구축현 숨기기 위한 기술이다 요청자에게 캡슐화 대한 상세 정보를 수집하는 등 디자인 철학을 잘 이해를 돕기 위해 / 프로세스 객체 생성 객체에는 비슷하다. 캡슐화 추상 만드는 데 사용할 수 있는 여러 가지 방법을 중 하나일 뿐입니다.
예를 들어, 시행하십시오 windows" ";). 그들은 전통적인 감지에서 정사각형, 그들은 단지 그래픽 화면에서 windows 꼭 그렇지는 않습니다. 그러나 it& # 39 에 유용한 windows 생각하시면 됩니다. # 39 의 that& 추상.
&Quot 경우, windows API". 텍스트나 그래픽 물리적으로 렌더링됩니다 감춰집니다 방법은 창, that& # 39 에 캡슐화 경계 내에 있다.
아래는 몇 단락은 디스틸링된 학기 롱 코스.
하지만 실제로 객체중심형 분석 및 설계 (로이드) 는 칙을 아니라 따라 2. 그 내용은 다음과 같습니다.
당) 의 원리를 추상화 너회의 엔티티에는 오버클로킹된 abstraction 뭐한테 이들은 실제. 이렇게 하면 은행 계좌 아래로 추상 디자인 수준은 필요한 것은 해당 응용 프로그램에서.
관련 데이터 및 메서드을 함께 있다. 그리고,
만 것과 관련된 기능을 통해 외부 데이터 및 메서드을 냥이라구 엔티티에는.
다른 답이 간편화된 here.
,,, < sup> < sup> 을 † < /sup> " 로이드 는 추상적 OOP" 결과, 특정한 사람이 주장한다 키워드, 즉 incorrect.< 제공합니다. 잘 /sup>;
<, sup>, 예: 한 대학에서 설계할 때 사용하여 응용 프로그램 객체 지향 원칙, 넌 그저 " 설계할 abstraction"; 이 대학의. 보통 한 경우에도 현금 분배 (atm) 에 # 39 의 경우 거의 모든 대학이 할 수 없는 사실을 병합합니다 it& 응용 프로그램을 필요하지 않습니다. 이제 당신은 디렉토리에만 표시되어도 고안되었습니다 추상 대학,, /kbd> abstract< kbd> < 동일팔레트에 필요는 없습니다. 클래스에 선언. 네 추상 클래스 디자인 대학, 일반 사용자의 application.< /sup> 될 것이다.
내 2c
이를 통해 사용자는 구현 세부 정보를 해당 클래스의 경우 내부적으로 캡슐화 것으로 보고 있다 예를 들어 a 클래스에 다음 항목 표준용량 목록 계속 표준용량 벡터입니다 결정하게 될 것 "이라며" 더 효과적일 수 없이 이 돌보는 사용자가 변경할 수 있습니다. 즉, the way you 상호 작용할 수 있다., 두 벡터 인컨텍스트 stl 컨테이너입니다 추상화 목록의 예를 들어 이동되는 이와 비슷한 방법을 사용하여 동일한 방식으로 (iterator).
캡슐화: 구현 세부 정보를 숨기는 (참고: 현명하게 것만 같은 데이터 및 / 또는 메서드을) 에서 사용 가능한 모든 데이터를 읽기 / 쓰기 가능 / externals 액세스됩니다 그들에게 아무도요 " untouchable"; 직접.
추상화: 가끔 는 특히 이 유형에 대한 인스턴스화되지 수 없는 및 제공하는 템플리트를 수 있는 다른 유형의 통해 일반적으로 하위 클래스화. 더 일반적으로 " abstraction"; 이 때문에 상대적으로 덜 상세하고 구체적으로 총괄적 생각하신거야 /) 는 다음을 가리킨다.
하지만 는 몇 가지 개념 간의 유사도를 중첩됩니다 너희에게베풀어진 것이 가장 좋은 방법은 다음과 같습니다. 대한 더 자세한 숨어 있는 반면, 추상화 캡슐화 더 일반화 대한 정보.
추상화 및 캡슐화 혼란스러운 약관 및 서로 의존하고 있다.
public class Person
{
private int Id { get; set; }
private string Name { get; set; }
private string CustomName()
{
return "Name:- " + Name + " and Id is:- " + Id;
}
}
사람이 클래스, 속성 및 기능을 함께 만들 때 쓰는 방식으로 재발했지 캡슐화 (Id, 이름, 쿠스토무나미). 추상 클래스를 통해 client 를 수행할 때 이
Person p = new Person();
p.CustomName();
이제 마지막 이름으로 방해하지 않고 잘 알고 싶어하는 고객 경우, 함수 호출. 이런 사람이 하나 더 추가하여 클래스 속성 에 캡슐화 할 수 있습니다.
public class Person
{
private int Id { get; set; }
private string Name { get; set; }
private string LastName {get; set;}
public string CustomName()
{
return "Name:- " + Name + " and Id is:- " + Id + "last name:- " + LastName;
}
}
I think of it this way, 캡슐화 감춰져 어떤 공격이 운행에서어떠한 수행되. 이 하나 이상의 작업을 할 수 있다.
추상화, why" " 관련이 있다. 나는 이 연구비를 1 위를 차지했다.
나는 기본적으로 " 너회가 don& # 39, t need to know 클라이언트뿐 말하고, 내가 어떻게 처리할 계산하십시오 대한 많은 결제 및 배송, etc. 난 그냥 # 39, & # 39 Checkout& 말해보게나 할 수 있습니다. and I will take care of 대한 정보를 you.".
나는 이렇게 자세히 캡슐화됩니다 일반화 (추출) 를 통해 체크아웃합니다 요청.
같이 가지 추출 및 캡슐화 하는 생각합니다.
As I 노윗 감춰져 있는 데이터를 접근할 수 있도록 스스로 클래스뿐만, 캡슐화, 단 세터 / 게터 통해 바깥 세계 에서, 만약 그들이 액세스되어야 함.
추상화 는 클래스 디자인 있다는 판단 때문이다.
만드는 방법에 따라서 클래스 메소드를 트리에서만 있다, 이는 일반 수준들과 상속됩니다 무시됨 수 있는 있는 민간 차원의 에서만 속성은 어떻게 하면, 또는 금지되었는지 구축하십시오 up Your 클래스 상속 트리에서만 사용하고 있는가, 최종 클래스뿐만 압트라스 클래스, 인터페이스입니다 구축상의.
한편, 이 또한 추상화 더 배치된 oo 설계 단계입니까 데브로프마넨스 단계입니까 에 캡슐화 등록한다.
추상화
자바 가상 머신 (jvm) 에 대한 정보, 추상화 고말은 숨기기 실제. 이를 통해 이 같은 당 사이의 계약서요 떠날려하면 "에 대한 서비스를 사용하려면 어떻게 해야 하나."
같이 미디어만을 추상화 API 개발, 세계 정보 서비스가 아니라 실제 구현 것으로 밝혀졌다. 자바 가상 머신 (jvm) 에 이 개념을 잘 았겠습니다 인터페이스입니다 달성하는 데 도움이 될 것입니다.
예를 들어, 계약 당사자 사이의 인터페이스를 통해 생산자와 소비자. 프로듀서 상품을 생산하는 제품을 어떻게 알 수 없는 지경에 이른 광고소비자 거론되고 있는 것이다. 그러나 모든 소비자 제품 구입할 수 있는 작품을 통해 인터페이스입니다 알아 보자. 생산자 제품 시장 추상화, 그들의 도움으로 수 있게 됐다.
캡슐화:
캡슐화 수준 아래로 추상화 중 하나다. 이 같은 제품을 잇달아 시도하시겠습니까 서로 정보를 생산 그룹이다. 예를 들어, 와인, 초콜릿, 각 제품을 생산할 수 없는 회사의 정보를 서로 어떻게 캡슐화 차폐 거론되고 있는 것이다.