산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

예제가 있는 Java OOP의 캡슐화


자바에서 캡슐화란 무엇입니까?

자바의 캡슐화 변수(데이터)와 메서드(코드)를 하나의 단위로 묶는 메커니즘입니다. 정보 세부 정보를 숨기고 데이터와 개체의 동작을 보호하는 프로세스입니다. 이것은 네 가지 중요한 OOP 개념 중 하나입니다. 캡슐화 클래스는 테스트하기 쉽기 때문에 단위 테스트에도 좋습니다.

이 튜토리얼에서는 배우게 될 것입니다-

동영상에 액세스할 수 없는 경우 여기를 클릭하십시오.

예제로 캡슐화 배우기

캡슐화가 무엇인지 자세히 이해하려면 예금 및 잔액 표시 방법이 있는 다음 은행 계좌 클래스를 고려하십시오.

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에서 캡슐화 수준을 낮추기 위해 "protected" 또는 "public"과 같은 수정자를 사용할 수 있습니다. 캡슐화를 통해 개발자는 다른 부분에 영향을 주지 않고 코드의 한 부분을 쉽게 변경할 수 있습니다.

Java의 Getter 및 Setter

자바의 Getter 및 Setter 변수의 값을 검색하고 업데이트하는 데 사용되는 두 가지 일반적인 방법입니다. 주로 변수 값을 생성, 수정, 삭제 및 확인하는 데 사용됩니다. 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

  1. 자바 캡슐화
  2. 자바 타입 캐스팅
  3. Java의 String Length() 메서드:예제로 찾는 방법
  4. 예제가 있는 Java 문자열 charAt() 메서드
  5. Java 문자열 contains() 메소드 | 예제로 하위 문자열 확인
  6. 예제가 포함된 Java 문자열 endWith() 메서드
  7. Java BufferedReader:예제를 사용하여 Java에서 파일을 읽는 방법
  8. 프로그램 예제가 있는 Java의 삽입 정렬 알고리즘
  9. 예제가 있는 Java 프로그램의 선택 정렬
  10. 자바 - 캡슐화