캡슐화 Java
캡슐화란? Java?
캡슐화 Java 변수(데이터)와 메서드(코드)를 하나의 단위로 묶는 메커니즘입니다. 정보 세부 정보를 숨기고 객체의 데이터와 동작을 보호하는 프로세스입니다. 네 가지 중요한 OOP 개념 중 하나입니다. 캡슐화 클래스는 테스트하기 쉽기 때문에 단위 테스트에도 더 좋습니다.
LINK 비디오에 접근할 수 없는 경우
캡슐화를 배우세요 Java 예와 함께
캡슐화가 무엇인지 자세히 이해하려면 입금 및 잔액 표시 방법이 있는 다음 은행 계좌 클래스를 고려하십시오.
class Account { private int account_number; private int account_balance; public void show Data() { //code to show data } public void deposit(int a) { if (a < 0) { //show error } else account_balance = account_balance + a; } }
해커가 귀하의 은행 계좌 코드에 접근했다고 가정해 보겠습니다. 이제 그는 두 가지 방법으로 귀하의 계좌에 -100을 입금하려고 합니다. 그의 첫 번째 방법 또는 접근 방식을 살펴보겠습니다.
접근법 1 : 그는 코드를 조작하여 귀하의 은행 계좌에 유효하지 않은 금액(예: -100)을 입금하려고 합니다.
이제 질문은 – 그게 가능합니까? 조사해 보겠습니다. 일반적으로 클래스의 변수는 아래와 같이 "private"로 설정됩니다. 클래스에 정의된 메서드로만 액세스할 수 있습니다. 다른 클래스나 객체는 액세스할 수 없습니다.
데이터 멤버가 비공개인 경우, 같은 클래스 내에서만 액세스할 수 있다는 의미입니다. 외부 클래스는 다른 클래스의 비공개 데이터 멤버나 변수에 액세스할 수 없습니다. 따라서 우리의 경우 해커는 귀하의 계정에 -100 금액을 입금할 수 없습니다.
접근법 2: 해커의 첫 번째 접근 방식은 금액을 입금하는 데 실패했습니다. 그 다음, 그는 "입금" 방법을 사용하여 -100 금액을 입금하려고 시도합니다.
그러나 메소드 구현에는 음수 값이 있는지 확인합니다. 따라서 두 번째 접근 방식도 실패합니다.
따라서 데이터를 외부 당사자에게 노출하지 마십시오. 이는 귀하의 애플리케이션을 안전하게 만듭니다.
전체 코드는 캡슐로 생각할 수 있으며, 메시지를 통해서만 통신할 수 있습니다. 따라서 캡슐화라는 이름이 붙었습니다.
데이터 숨김 Java
데이터 숨김 Java 클래스의 변수를 다른 클래스에서 숨기는 것입니다. 현재 클래스의 메서드를 통해서만 액세스할 수 있습니다. 구현 세부 정보를 사용자에게 숨깁니다. 그러나 데이터 숨기기 이상으로 관련 데이터의 더 나은 관리 또는 그룹화를 위한 것입니다. 캡슐화 수준을 낮추려면 Java, "protected" 또는 "public"와 같은 수정자를 사용할 수 있습니다. 캡슐화를 통해 개발자는 다른 부분에 영향을 미치지 않고 코드의 한 부분을 쉽게 변경할 수 있습니다.
게터와 세터 Java
게터와 세터 Java 변수 값을 검색하고 업데이트하는 데 사용되는 두 가지 일반적인 방법입니다. 주로 변수 값을 생성, 수정, 삭제 및 보는 데 사용됩니다. setter 메소드는 값을 업데이트하는 데 사용되고 getter 메소드는 값을 읽거나 검색하는 데 사용됩니다. 이들은 접근자 및 돌연변이자로도 알려져 있습니다.
다음 코드는 getter 및 setter 메서드의 예입니다.
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
위의 예에서 getBalance() 메소드는 account_balance 변수의 값을 읽는 getter 메소드이고, setNumber() 메소드는 account_number 변수의 값을 설정하거나 업데이트하는 setter 메소드입니다.
추상화와 캡슐화
캡슐화를 다음과 같이 오해하는 경우가 많습니다. 추출. 공부하자-
- 캡슐화는 기능을 달성하는 "방법"에 관한 것입니다.
- 추상화는 클래스가 할 수 있는 "무엇"에 관한 것입니다.
이 차이를 이해하는 간단한 예는 모바일 폰입니다. 회로 보드의 복잡한 로직이 터치 스크린에 캡슐화되어 있고, 이를 추상화하기 위한 인터페이스가 제공됩니다.
캡슐화의 장점 Java
- 캡슐화는 데이터를 관련 기능과 바인딩합니다. 여기서 기능은 "방법"을 의미하고 데이터는 "변수"를 의미합니다.
- 그래서 우리는 변수와 메소드를 한 곳에 보관합니다. 그곳은 바로 '클래스'입니다. 클래스는 캡슐화의 기본입니다.
- 와 Java 캡슐화를 통해 코드의 중요한 데이터 멤버를 숨길 수 있어(액세스 제한) 보안이 향상됩니다.
- 앞서 논의했듯이, 데이터 멤버가 "private"로 선언되면 같은 클래스 내에서만 액세스할 수 있습니다. 외부 클래스는 다른 클래스의 데이터 멤버(변수)에 액세스할 수 없습니다.
- 그러나 이러한 변수에 액세스해야 하는 경우 다음을 사용해야 합니다. 공개 "getter" 및 "setter" 방법.