2012-02-12 4 views

답변

55

은에서 : http://www.javacamp.org/javavscsharp/namespace.html


자바

패키지 유형의 충돌을 방지하기 위해 파일이나 공공 유형을 구성하는 데 사용됩니다. 패키지 구조는 파일 시스템에 매핑 될 수 있습니다.

system.security.cryptography.AsymmetricAlgorithm aa; 

을 대체 할 수있다 :

import system.security.Crypography; 
class xxx { ... 
AsymmetricAlgorithm aa; 

패키지에 대한 별칭이 없습니다. 특정 유형을 언급하려면 import 문이나 완전한 이름을 사용해야합니다.

package n1.n2; 
    class A {} 
    class B {} 

또는

package n1.n2; 
    class A {} 

는 또 다른 소스 파일 :

package n1.n2; 
    class B {} 

패키지는 중첩 될 수 없습니다. 하나의 소스 파일에는 하나의 패키지 명령문 만있을 수 있습니다.

C 번호

네임은 프로그램을 구성하는 데 사용되며, "내부"조직 프로그램에 대한 시스템 및 "외부"조직화 시스템처럼 두. 예를 들어

using myAlias = System.Security.Crypography; 

, 또는

using System.Security.Crypography; 
AsymmetricAlgorithm aa; 

은, 하나는 네임 스페이스에 대한 별칭을 지정할 수 다음

myAlias.AsymmetricAlgorithm 

namespace N1.N2 
{ 
    class A {} 
    class B {} 
} 
으로 클래스를 참조하십시오

System.Security.Cryptography.AsymmetricAlgorithm aa; 

는 대체 될 수있다

또는

namespace N1 
{ 
    namespace N2 
    { 
     class A {} 
     class B {} 
    } 
} 
28

Java에는 "namespace"라는 용어가 없습니다. 은 이름 범위를 제공하기 위해을 Java에서 네임 스페이스로 사용합니다. 또한 접근성 모델의 일부이기도합니다. section 7 of the Java Language Specification에서

은 :

프로그램

은 패키지 세트로 구성되어 있습니다. 각 패키지에는 유형에 대한 자체 이름 집합이 있으므로 이름 충돌을 방지하는 데 도움이됩니다. 최상위 유형은 유형이 공개로 선언 된 경우에만 선언하는 패키지 외부에서 액세스 할 수 있습니다 (§6.6).

편집 : 좋아, 정화 후 : 자바 패키지는 C#을 네임 스페이스에 유사한 입니다 - C에서 # 네임 스페이스 및 접근성이 완전히 직교 반면 그것은, 접근성에 영향을 제외한 것이다.

+1

나는 물론 C#에서 네임 스페이스를 참조하는 의미! – Mazzy

11

C++/C#에서 네임 스페이스는 다른 장소의 변수에 실수로 같은 이름을 사용하여 충돌을 피하기 위해 이름을 분할하는 데 사용됩니다.

Java에서는 패키지가 모듈 이상으로 사용됩니다. 패키지는 모듈 용으로 사용됩니다. 이름 지정은 그 일부에 지나지 않습니다.

36

몇 가지 다른 점이 있습니다.

Java에서 디렉토리 구조는 패키지 구조와 일치해야합니다. 아니 C#에서 이러한 제한.

C#에서는 한 파일에 여러 개의 네임 스페이스를 가질 수 있습니다. Java에서 하나의 파일 은 하나의 패키지에 속합니다 (이전 참조).

Java에는 기본/패키지 접근성이 있습니다. 어셈블리에서 C# 내부 액세스 가능성은 입니다.

VS와 Eclipse를 사용하여 프로젝트를 구조화하면 차이가별로 없을 것입니다.

0

java에서는 패키지에 영향을주는 클래스에 다양한 액세스 지정자를 적용 할 수 있습니다.

보호 : 같은 패키지에 다른 패키지의 서브 클래스에 접근, 기본 : 접근 동일한 패키지에, 공공 : 보편적 접근, 개인 : 동일한 패키지로도 액세스 할 수 없습니다.

액세스 지정자 이러한 유형의 날카로운 C에서 네임 스페이스에 적용되지 않습니다

관련 문제