1. 캡슐화 란 무엇입니까?
캡슐화는 객체의 구현 세부 사항을 숨길 수있는 객체 지향 프로그래밍 (POO)의 기본 원칙 중 하나입니다. 이는 시스템과 상호 작용하는 시스템의 다른 부분에 영향을 미치지 않고 객체의 내부 구현을 변경할 수 있음을 의미합니다. 이 기능은 향후 코드를 유지하는 데있어 모듈성과 용이성을 촉진합니다.
2. 캡슐화를 사용하는 이유는 무엇입니까?
캡슐화를 사용하는 것은 몇 가지 이유로 모범 사례로 간주됩니다.
- 쉽게 수술 유지 보수 : 공개 인터페이스가 동일하게 유지 되므로이 클래스를 사용하는 코드를 수정할 필요없이 클래스 구현의 변경이 가능합니다.
Data Protection - : 객체의 내부 데이터에 직접 액세스하여 객체의 객체의 무결성을 보호합니다.
일관성 및 예측 가능성
: 원치 않는 변경을 피하기 위해 메소드와 속성이 일관되게 사용되도록합니다.
-
3. 어떻게 캡슐화합니까?
캡슐화는
Access Modifiers
에 의해 구현되며, 이는 클래스 속성 및 메소드의 가시성을 제한합니다. 메인 액세스 수정자는 다음과 같습니다.
private
: 속성과 방법은 클래스 자체에서만 액세스 할 수 있습니다.
- 보호 된 : 속성과 메소드는 클래스 자체와 서브 클래스 내에서 액세스 할 수 있습니다.
public - : 속성과 방법은 코드의 어느 부분에서나 액세스 할 수 있습니다.
4. 캡슐화하는 방법?
- 클래스의 속성을 캡슐화하려면 private 로 선언합니다. 예를 들어, 사람 클래스에서 이름 속성은 다음과 같이 캡슐화됩니다.
패키지 예제 .pooo.ex;
공공 계급 사람 {
개인 문자열 이름;
// 이름 속성에 액세스하는 메소드입니다
공개 문자열 getName () {
반환 이름;
}
// 이름 속성을 수정하는 메소드
public void setName (문자열 이름) {
this.name = 이름;
}
}
개인 속성에 대한 액세스
개인 속성은 메소드
getter
및
package exemplos.poo.ex;
public class Pessoa {
private String nome;
// Método para acessar o atributo nome
public String getNome() {
return nome;
}
// Método para modificar o atributo nome
public void setNome(String nome) {
this.nome = nome;
}
}
를 통해 액세스 할 수 있습니다. 이 방법은
private
의 경우와 같이 캡슐화를 존중하는 것처럼이 속성에 대한 다른 클래스 액세스를 제한하는 수정자를 가질 수 있으므로 속성에 액세스하거나 조작하는 방법을 제공합니다.
.
getter : 속성의 값을 반환하는 메소드.
setter
: 속성의 값을 변경할 수있는 메소드.
-
5. 캡슐화를 언제 사용해야합니까?
캡슐화는 여러 가지 이점을 제공하기 때문에 똥으로 가능할 때마다 적용해야합니다.
-
Data Protection
: 객체의 내부 데이터가 직접 액세스되지 않도록합니다.
modifiability
: 시스템의 다른 부분에 영향을 미치지 않으면 서 코드 수정을 용이하게합니다.
코드 재사용
: 다른 맥락에서 재사용 할 수있는 클래스의 생성을 용이하게합니다.
-
testability : 코드의 일부를 분리하여 테스트를보다 간단하고 효과적으로 만듭니다.
- 보안 : 내부 데이터에 대한 원치 않는 조작의 위험을 줄입니다.
결론
-
캡슐화는보다 강력하고 안전하며 유지 관리가 쉬운 객체 지향 프로그래밍에서 필수적인 관행입니다. 액세스 수정 자 및 게터 및 세터 방법을 사용하면 속성에 대한 액세스를 제어하고 객체 간의 더 안전하고 예측 가능한 상호 작용을 촉진 할 수 있습니다.