>  기사  >  Java  >  Java의 캡슐화 구현 단계

Java의 캡슐화 구현 단계

蓝冰凌z
蓝冰凌z원래의
2018-05-04 11:22:213229검색

캡슐화란 객체의 정보를 객체 내부에 숨기고, 외부 프로그램이 객체 내부의 속성과 메소드에 직접 접근하는 것을 금지하는 것입니다.

1. 기본 유형은 값으로만 ​​전달할 수 있으며, 각 기본 유형에 해당하는 캡슐화 클래스는 참조로 전달됩니다.
2. 성능적인 측면에서 보면 자바의 기본 타입은 스택에 생성되고, 모든 객체 타입은 힙에 생성됩니다(객체에 대한 참조는 스택에 생성됩니다). 예를 들어 Integer i=new Integer(10); 여기서 new Integer()는 힙에 생성되고 해당 참조 Integer i는 스택에 있습니다. 캡슐화된 클래스의 출현은 valueOf(), toString() 등과 같은 기본 유형에서 사용할 수 없는 일부 메소드를 보다 편리하게 사용할 수 있도록 하기 위한 것입니다. 또한 값 대신 int 객체에 대한 참조를 전달하려는 경우 래퍼 클래스만 사용할 수 있습니다.
스택에 메모리를 할당하는 호출 효율성은 힙에 메모리를 할당하는 호출 효율성과 많이 다릅니다. 스택에 메모리를 할당하는 것은 효율적이지만 스택에 메모리를 할당하면 메모리 누수 문제가 발생합니다. (보통 프로그래머들은 기본적으로 해결할 수 없는 문제입니다...) Java는 힙에 메모리를 할당하는 효율성을 높이기 위해 매우 천재적인 방법을 사용합니다. 그럼에도 불구하고 Java는 여전히 느립니다. 그는 언젠가 가상 머신이 기계 코드만큼 빨라질 것이라고 약속했지만 C++만큼 빠르지는 않을 것입니다.
JDK5.0은 자동으로 패키징할 수 있습니다. 즉, 기본 데이터 유형의 장점은 빠릅니다(객체 구성 및 재활용이 필요하지 않음). 주로 더 나은 처리를 위한 것입니다. 데이터를 변환하는 방법은 다양하며 사용하기도 쉽습니다.
물론, 캡슐화된 유형의 전송은 참조에 의한 것입니다. 예를 들어

Integer a = new Integer(1);

는 정수 유형 참조 a가 메모리 조각을 참조하고 이 메모리의 데이터는 1이고 a에 저장되는 것은 무엇인지 의미합니다. 이 메모리 조각의 참조(주소). )를 다른 메서드나 개체에 전달할 때 a의 참조가 전달됩니다.
유형 간 변환:

String b = "123456"; 
int c = Integer.parseInt(b);

는 문자열 123456을 정수로 변환하는 것을 의미합니다. 여기서parseInt는 정적 메서드이고 직접 사용할 수 있습니다.
또 다른 요점은 어떤 경우에는 컬렉션 List와 같은 캡슐화 클래스가 필요하다는 것입니다. 여기에는 객체, 즉 Object만 추가할 수 있으므로 숫자를 직접 저장하는 것은 절대 불가능합니다. 숫자를 캡슐화 유형 객체로 캡슐화한 다음 List에 저장해야 합니다. 자동으로 숫자를 캡슐화합니다. 따라서

List list = new ArrayList(); 
list.add(new Integer(1)); 
list.add(new Integer(2)); 
list.add(new Integer(3)); 
list.add(new Integer(4));

로 축약할 수 있습니다. 이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요.

추천 자료:

사용자의 도시와 지리적 위치를 가져오는 JavaScript

JavaScript 호출 모드와 이 키워드 바인딩 간의 관계

JavaScript 호출 모드와 이 키워드 바인딩 간의 관계

위 내용은 Java의 캡슐화 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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