>  기사  >  Java  >  Java 기본 - 캡슐화

Java 기본 - 캡슐화

巴扎黑
巴扎黑원래의
2017-06-26 11:26:421413검색

최근 Java 객체지향 지식을 배우고 있는데, 이 지식이 정말 헷갈려서 블로그에 업데이트할 시간이 없었습니다. 지식 포인트가 속속 등장했고, 초보자인 저로서는 생성자와 메소드를 구별하는 데 하루 종일 걸렸습니다. 이제 지식 포인트를 다시 살펴보겠습니다.

먼저 개념을 외우세요:

객체 지향 프로그래밍은 데이터를 먼저 두고, 데이터를 조작하는 방법을 고려합니다.

전에 Java의 장점을 배울 때 Java가 객체 지향 프로그래밍 언어라는 것을 배웠습니다. 그렇다면 객체 지향 프로그래밍이란 정확히 무엇입니까? 이를 이해하기 위해 먼저 다른 종류의 프로그래밍을 간략하게 살펴보겠습니다.

1. 프로세스 지향 프로그래밍:

프로세스 지향 프로그래밍은 위에서 아래로 순차적으로 실행되며 프로그램 구조는 기능에 따라 여러 기본 블록으로 나누어지며, 이러한 블록은 트리 구조를 형성합니다. 각 모듈 간의 관계는 가능한 한 간단하고 기능이 상대적으로 독립적입니다. 각 모듈은 내부적으로 순서, 선택 및 순환의 세 가지 기본 구조로 구성됩니다. 모듈화를 실현하는 구체적인 방법은 서브루틴을 사용하는 것입니다. 프로그램 흐름은 프로그램을 작성할 때 결정됩니다.

(객체지향 프로그래밍을 배울 때 인터넷에서 이 개념을 발견했습니다. 백서 한 장에 객체지향 프로그래밍의 개념과 내용을 복사했습니다. 사실 프로세스 지향 프로그래밍이 무엇인지는 몰랐습니다. 하지만 객체지향과 클래스에 대해 배웠을 때 이 개념을 다시 살펴보게 되었을 때 프로세스지향에 대해 배우지 않았다면 감히 말할 것도 없이 유용한 것을 발견했습니다. 객체지향에 대해 방금 배웠다면 감히 많은 언급을 할 수 없을 것입니다. 즉, 프로세스 지향은 모든 작업 흐름을 연동시키는 것과 같으며, 한 단계가 전체에 영향을 미친다는 것은 매우 영리합니다. 대형 기계, 부품 등을 만드는 제조사와 같습니다. 직접 만들 필요는 없지만 최선을 다해 조립할 수 있습니다. (물론 조립할 때는 다른 사람이 정한 규칙을 따라야 합니다.) .이것의 장점은 해당 부분을 변경하려는 경우, 특히 클라이언트 측에서 전체 프로젝트가 영향을 받는 것에 대해 걱정할 필요가 없다는 것입니다.)

2. 객체 지향 프로그래밍:

객체- 지향 프로그래밍은 오늘날 주류 프로그래밍 패러다임으로 1970년대의 "구조화된" 프로그래밍 및 개발 기술을 대체했습니다. 객체 지향은 데이터와 데이터에 대한 작업 방법을 함께 묶어서 상호 의존적인 전체로서 객체라고 부릅니다. 클래스는 유사한 객체의 공통적인 특징을 추상화하여 구성됩니다. 클래스에 있는 대부분의 데이터는 이 클래스의 메서드로만 처리할 수 있습니다. 클래스는 간단한 외부 인터페이스를 통해 외부 세계와 연결되고, 객체는 메시지를 통해 소통합니다. 프로그램 흐름은 사용자에 의해 결정됩니다. Java는 완전히 객체 지향적이므로 Java 프로그램을 작성하려면 OOP에 익숙해야 합니다.

(그림) 객체지향 프로그래밍과 프로세스지향 프로그래밍의 차이점을 보여줍니다.

다음 문장이 매우 중요합니다.

객체지향 프로그램은 객체로 구성되며 각 객체에는 객체지향에 대한 정보가 포함되어 있습니다. user 공개 특정 기능 부분 숨겨진 구현 부분 . (이 문장이 정말 중요합니다. 앞으로 싱글톤, 캡슐화, 추상클래스, 인터페이스 등을 배우시면 이해가 되실 겁니다!)

3. 클래스

Class(클래스)는 객체를 구성하는 템플릿입니다. 아니면 청사진. 클래스에서 객체를 생성하는 과정은 클래스의 인스턴스를 생성하는 과정이 됩니다.

여기서 공부하다 보면 기억해야 할 항목이 너무 많아서 당황스러울 수밖에 없잖아요? 수업을 직접 만들고 싶나요? 당신이 만드는 클래스의 내용이 포괄적일 수 있나요? 내 마음속에는 온갖 의심이 남아있습니다. 실제로 Java로 작성된 대부분의 코드는 클래스 내부에 위치합니다. 표준 Java 라이브러리는 사용자 인터페이스 디자인, 날짜, 달력 및 네트워크 프로그래밍을 위한 수천 개의 클래스를 제공합니다. 그럼에도 불구하고 우리는 자체 프로젝트를 작업할 때 다양한 특정 상황에 따라 추가, 삭제 및 변경도 필요합니다.

4. 캡슐화

캡슐화(데이터 숨기기라고도 함), 비디오 클래스를 보면 캡슐화를 get 및 set 메서드로 설명합니다. 공식적으로 캡슐화는 패키지의 데이터와 동작을 결합하고 개체 사용자에게 데이터 구현을 숨기는 것 이상입니다.

오브젝트에 있는 데이터를 인스턴스 필드라고 하며, 데이터를 조작하는 과정을 메소드라고 합니다. 각 특정 클래스 인스턴스(객체)에 대해 특정 인스턴스 필드 값 세트가 있습니다. 이러한 값의 모음이 개체의 현재 상태입니다.

다음 문장은 매우 중요하므로 기억해두세요.

캡슐화를 달성하는 핵심은 클래스의 메서드가 다른 클래스의 인스턴스 필드에 직접 액세스해서는 안 된다는 것입니다. 프로그램은 해당 메소드를 통해서만 객체의 데이터와 상호 작용합니다.

캡슐화는 객체에 '블랙박스' 특성을 부여하는데, 이는 재사용성과 신뢰성을 향상시키는 데 핵심입니다. 이는 클래스가 데이터를 조작하는 데 동일한 방법을 사용하는 한, 다른 객체가 데이터를 저장하는 방식을 완전히 바꿀 수 있음을 의미합니다. 변경 사항을 알거나 신경 쓰지 않을 것입니다.

// 이 문장은 무엇을 의미합니까? 언젠가 Java 클래스를 정의해야 할 경우 다른 클래스가 방해받을 것을 걱정할 필요가 없다는 의미입니다. 클래스를 확장하여 필요한 새 클래스를 만듭니다. 실제로 Java의 모든 클래스는 Object에서 시작됩니다. 나중에 계속해서 Object.Process를 소개하겠습니다.

1.

2. get/set 메서드를 제공해야 합니다(get/set가 항상 제안되지는 않을 수 있으며 필요에 따라 다릅니다. 다른 사람이 가져오는 것을 원하지 않으면 get을 제공하지 마세요. 다른 사람이 원하지 않으면 get을 제공하지 마세요.) 설정하려면 세트 제공을 거부합니다.)

==== 액세스 기호 권한:

액세스 기호 공용(일반적으로 사용됨) 보호됨기본값비공개(일반적으로 사용됨) 코드 예:
이 카테고리 패키지 내 이 패키지 하위 카테고리 아웃소싱 카테고리 아웃소싱 하위 카테고리
접속 가능 방문 가능 예 액세스됨 액세스 가능 액세스 가능
액세스 가능 액세스 가능 액세스 가능 액세스 불가 예 액세스
액세스 가능 액세스 가능 액세스 가능 액세스 불가 액세스 불가
가능 액세스할 수 없습니다 액세스할 수 없습니다 액세스할 수 없습니다 액세스할 수 없습니다 액세스할 수 없습니다
1 public class XiaoNanHai{2 private int age;3 public void setAge(int age){4 if(age>=15&&age<=35)5 this.age=age;}else{6 System.err.println"你输入的年龄不在指定范围内,请重新输入”);7 }8 }

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

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