캡슐화란 데이터와 해당 데이터에 대해 작동하는 함수를 클래스와 같은 단일 단위로 결합하는 것을 의미합니다. ~ 안에 객체 지향 프로그래밍 물건을 정리하고 안전하게 유지하는 데 도움이 됩니다.
- 클래스는 구현 부분을 숨기고 다른 클래스에 필요한 기능만 공개할 수 있습니다. 클래스 데이터와 메서드를 비공개로 만들면 나중에 이 클래스를 사용하는 코드에 영향을 주지 않고 변경할 수 있습니다.
- 유지 관리성, 가독성 및 유용성이 향상되는 데 도움이 됩니다. 또한 변수에 할당된 값에 대한 검증 및 제어를 허용하여 데이터 무결성을 유지하는 데 도움이 됩니다.
캡슐화Java에서 캡슐화 구현
- 데이터를 비공개로 선언합니다. 클래스 외부에서 직접 접근할 수 없도록 클래스 데이터를 숨깁니다.
- getter 및 setter를 사용하십시오. 변수를 비공개로 유지하고 검증을 통해 액세스 제어 및 안전한 수정을 위한 공개 getter 및 setter 메서드를 제공하세요.
- 적절한 액세스 수정자를 적용하십시오. 데이터 숨기기에는 private을 사용하고 액세스를 제공하는 메서드에는 public을 사용합니다.
class Programmer { private String name; // Getter method used to get the data public String getName() { return name; } // Setter method is used to set or modify the data public void setName(String name) { this.name = name; } } public class Geeks { public static void main(String[] args){ Programmer p = new Programmer(); p.setName('Geek'); System.out.println('Name=> ' + p.getName()); } }
산출
Name=> Geek
설명: 위의 예에서는 캡슐화를 사용하고 getter( getName) 그리고 세터( 세트이름) 개인 데이터를 표시하고 수정하는 데 사용되는 메서드입니다. 이 캡슐화 메커니즘은 Programmer 객체의 내부 상태를 보호하고 이름 속성에 액세스하고 수정하는 방법에 대한 더 나은 제어와 유연성을 허용합니다.
캡슐화의 장점
캡슐화의 장점은 다음과 같습니다.
- 데이터 숨기기: 캡슐화는 중요한 데이터를 무단 액세스로부터 보호하는 클래스 변수에 대한 직접 액세스를 제한합니다.
- 향상된 유지 관리성: 클래스를 사용하는 외부 코드에 영향을 주지 않고 내부 구현을 변경할 수 있습니다.
- 강화된 보안: 캡슐화를 사용하면 유효하지 않거나 유해한 값이 설정되는 것을 방지하면서 데이터를 검증하고 제어할 수 있습니다.
- 코드 재사용성: 캡슐화된 클래스는 내부 논리를 노출하지 않고도 다른 프로그램에서 재사용할 수 있습니다.
- 향상된 모듈성: 캡슐화는 클래스 내에서 데이터와 메소드를 함께 유지함으로써 체계적인 모듈식 코드를 촉진합니다.
캡슐화의 단점
캡슐화의 단점은 다음과 같습니다.
- 코드 복잡성 증가: 모든 변수에 대해 getter 및 setter 메소드를 작성하면 코드가 더 길어지고 약간 더 복잡해질 수 있습니다.
- 성능 오버헤드: 직접 액세스하는 대신 메서드를 통해 데이터에 액세스하면 특히 성능이 중요한 애플리케이션에서 약간의 성능 비용이 발생할 수 있습니다.
- 경우에 따라 유연성이 떨어짐: 클래스 멤버에 대한 액세스를 과도하게 제한하면 다른 클래스가 클래스를 효율적으로 확장하거나 사용하는 기능이 제한될 수 있습니다.