>Java >Java베이스 >캡슐화된 자바란 무엇인가

캡슐화된 자바란 무엇인가

angryTom
angryTom원래의
2019-11-11 09:47:283956검색

캡슐화된 자바란 무엇인가

캡슐화란 무엇입니까 java

객체 지향 프로그래밍 방식에서 캡슐화(영어: Encapsulation)는 추상적인 기능적 인터페이스의 구현 세부 사항을 부분적으로 패키징하고 숨기는 방법을 말합니다.

캡슐화는 외부 클래스에서 정의한 코드가 클래스의 코드와 데이터에 무작위로 액세스하는 것을 방지하는 보호 장벽으로 생각할 수 있습니다.

이 클래스의 코드와 데이터에 액세스하려면 엄격한 인터페이스 제어를 통과해야 합니다.

캡슐화의 주요 기능은 코드를 호출하는 프로그램 조각을 수정하지 않고도 자체 구현 코드를 수정할 수 있다는 것입니다.

올바른 캡슐화는 프로그램 코드를 더 쉽게 이해하고 유지 관리할 수 있도록 하며 프로그램 코드의 보안도 강화할 수 있습니다. (추천 튜토리얼: java 튜토리얼)

캡슐화의 장점

1. 캡슐화를 잘하면 커플링을 줄일 수 있습니다.

2. 수업 내부 구조는 자유롭게 수정 가능합니다.

3. 멤버 변수를 더욱 정밀하게 제어할 수 있습니다.

4. 정보를 숨기고 세부정보를 구현합니다.

Java 캡슐화는 직설적으로 말하면 몇 가지 일반적인 구현 로직을 상자(클래스)에 넣는 것이며, 입구와 출구는 이 상자에 있습니다. 사용하고 싶으면 이 상자를 입구와 출구에 연결하고 사용하면 됩니다. 사용하지 않으면 그냥 버려도 됩니다. 코드에 아무런 영향을 주지 않습니다. .

프로그래머의 경우 캡슐화를 사용하는 목적은 다음과 같습니다.

1. 게으르고 한 번 열심히 작업하면 나중에 많은 코드를 절약할 수 있어 코드의 재사용성이 향상됩니다.

2 코드를 단순화하고 만듭니다. 더 쉽게 이해하세요

3. 핵심 구현 로직 코드를 숨기고, 외부 로직을 단순화하고, 다른 사람이 수정하는 것을 방지하세요.

4. 일대일, 하나의 기능만 사용하면 됩니다. The last mess is a mess

예:

public class EncapTest{
 
   private String name;
   private String idNum;
   private int age;
 
   public int getAge(){
      return age;
   }
 
   public String getName(){
      return name;
   }
 
   public String getIdNum(){
      return idNum;
   }
 
   public void setAge( int newAge){
      age = newAge;
   }
 
   public void setName(String newName){
      name = newName;
   }
 
   public void setIdNum( String newId){
      idNum = newId;
   }
}

위의 예에서 공개 메소드는 외부 클래스가 클래스의 멤버 변수에 액세스하는 입구입니다.

일반적으로 이러한 메서드를 getter 및 setter 메서드라고 합니다.

따라서 클래스의 비공개 멤버 변수에 액세스하려는 모든 클래스는 이러한 getter 및 setter 메서드를 거쳐야 합니다.

다음 예제에서는 EncapTest 클래스의 변수에 액세스하는 방법을 보여줍니다.

public class RunEncap{
   public static void main(String args[]){
      EncapTest encap = new EncapTest();
      encap.setName("James");
      encap.setAge(20);
      encap.setIdNum("12343ms");
 
      System.out.print("Name : " + encap.getName()+ " Age : "+ encap.getAge());
    }
}

위 코드를 컴파일하고 실행하면 결과는 다음과 같습니다.

Name : James Age : 2

위 내용은 캡슐화된 자바란 무엇인가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.