2013-06-06 2 views
3

Java에서 패키지가없는 이유는 무엇입니까? 나는이 문제에 대해 친구들과 많은 토론을했다. 그리고 그들은 패키지를 라이브러리로 간주 할 수 있다고 말하고있었습니다. C++에는 이미 라이브러리 개념이 있었기 때문에 패키지라는 새로운 이름을 만들어야하는 이유가 무엇입니까?Java 패키지와 C++ 라이브러리의 차이점이 있습니까?

P .: 패키지 라이브러리를 호출하면 다른 사람을 고칠 가치가 있습니까?

+2

* 새 이름이라는 패키지를 만들어야합니다. * C++를 만든 개발자의 팀이 자바 개발 팀의 일원이되지 않았기 때문에, 아마이 이유! 나는 패키지와 라이브러리가 다른 것으로 생각한다. – NINCOMPOOP

+1

C++의 코드를 Java와 같은 라이브러리보다 더 많이 포장하는 방법은 무엇입니까? 도서관에서 무엇을 의미합니까? – jazzbassrob

+0

이것은 논리적 인 다른 관점이기 때문에. 왜 C# 네임 스페이스와 라이브러리가 있습니까? –

답변

6

패키지 클래스를 구성하는 데 사용하는 Java 구조입니다. 그들은 제공 :

  • 네임 스페이스가있는 클래스
  • 액세스 (패키지 액세스)의 수준을 배치, 그 필드
  • 을의

를 공유 할 수 패키지의 클래스를 수 있습니다; 구현자가이 조직적인 기능을 사용하는 것은 그들에게 달려 있습니다.

라이브러리 다른 조직 개념이다. 그러나 라이브러리의 의도는 외부 세계에 잘 정의 된 인터페이스와 필요한 경우 실행하기위한 내부 구현을 제공하는 것입니다.

모두 (자바로 구현 된 경우) 조직의 아이디어와 라이브러리는 종종 패키지로 구성되어 있습니다. 그러나 그들은 서로 다른 의도를 가지고 있으므로 서로 다른 이름을 부여하는 것이 현명합니다. 종종 작은 라이브러리가 하나의 패키지에 들어갈 수 있으므로 다른 라이브러리를 의미하기 위해 하나를 사용하는 것이 혼동하지 않는 경우가 많습니다. 그러나 그들은 이 아니고입니다.

자바 세계에서
5

패키지는 실제로 라이브러리가 아닙니다. jar 파일을 별도의 라이브러리로 간주하면 더 가깝습니다. 패키지는 프로젝트에 디렉토리 구조와 같은 논리적 구조를 제공하기 때문에 유용합니다. 또한 Java는 객체에 런타임 정보를 유지하며 패키지 경로는 동일한 이름으로 여러 클래스를 가질 수 있으므로 특정 클래스를 식별하는 고유 한 방법입니다.

C/C++에서 런타임 정보는 제한적으로 만 지원되므로 상황이 다릅니다.

5

패키지 네임 스페이스 있습니다. 사용할 수없는 "Util"클래스가 있지만 정규화 된 이름이 패키지 + 클래스 이름이므로 고유하게 식별 할 수 있습니다.

라이브러리는 기능/기능을 제공하기 위해 동의하는 클래스 집합입니다.

2

패키지와 라이브러리는 다른 개념입니다.

C/C++의 라이브러리는 관련 함수/프로 시저 모음입니다. 라이브러리에는 문자열 조작 함수가 있습니다. 라이브러리는, 객체 지향 설계 원칙을 지원하기 위해 설계된 자바 등 정규 표현식, 처리하는 기능 ...

패키지를 포함 (C는 OO의 출현 이전에왔다). Java 패키지는 관련 클래스의 논리적 모음입니다.이 클래스는 개별 클래스/모듈에 대해 추론하는 것과 같은 방식으로 함께 추론 할 수 있어야합니다.

2

, 논리적으로 라이브러리는 예를 들어, 일반적으로 몇 가지 공통 분모 패키지 이름으로 클래스의 집합입니다org.apache.commons.io은 포장되어 JAR file으로 배포됩니다. 때때로 라이브러리는 여러 개의 JAR로 구성 될 수 있습니다. 프레임 워크, 여기에 적용 물론 common library definition

도구 키트, 플랫폼 .... 폴더 조직과 정규화 된 이름의 일부 -

Java package네임 스페이스의 형태이다. 그래, 실제로 클래스는 패키지 + 단순한 클래스 이름으로 식별됩니다. 기본 패키지은 이름없는 패키지입니다. 패키지 범위, 가져 오기 등과 같은 논리도 있습니다.하지만이 질문에는 너무 많은 부분이 있습니다. Maven repository : 여기

당신이 그들을 이름 어떤 자바 라이브러리, 유물이나의 bigest 저장소입니다.

관련 문제