Java Java vs C# (Package와 Namespace, 그리고 Import와 Using) - 2부
페이지 정보
본문
Java의 Package와 C#의 Namespace는 같은 역할을 합니다. 이 둘의 역할은 클래스들의 묶음으로 수 많은 클래스를 관리하기 위해 생겨난 개념입니다. 윈도우의 폴더를 생각하면 이해하기 쉬운데요. 예를 들면 귀천도애(歸天道哀, 김민종)처럼 영화도 있고 음악도 있는 경우입니다. 내 취미 폴더에 파일명이 같은 영화와 음악을 동시에 저장할 수 없죠. 따라서 내 취미 폴더에 영화와 음악 폴더를 만들고 각각 파일을 저장하게 됩니다.
절차지향 프로그래밍에서 객체지향 프로그래밍으로 넘어 오면서 수 많은 객체들을 효율적으로 관리하기 위해 만들어진 개념입니다. 개발을 하다보면 Java와 C#에서 기본 제공하고 있는 클래스와 같은 이름으로 사용자 클래스를 만들일이 종종 생기는데요. 이 때 자신만의 패키지나 네임스페이스를 설정해서 잘 구분해 놓는게 좋겠죠^^
Java
package javax.sql.database.master;
// 다른 패키지 안에 있는 클래스를 가져올 때
import javax.sql.database.ng.Connector;
// 다른 패키지 안에 있는 모든 클래스를 가져올 때
import javax.sql.database.ng.*;
C#
namespace System.Sql.Database.Master
{
...
}
// 또는 아래와 같이 블록으로 설정해도 됩니다.
namespace System
{
namespace Sql
{
namespace Database
{
namespace Master
{
...
}
}
}
}
// 다른 라이브러리 안에 있는 클래스를 가져오고 별칭을 지정할 때
using NGConnector = System.Sql.Database.NG.Connector;
// 다른 라이브러리 안에 네임 스페이스에 속한 모든 클래스를 가져올 때
using System.Sql.Database.NG;
Java는 소스 코드의 첫 줄에 package를 선언하고, C#은 namespace를 사용하여 블록으로 감싸야 합니다. 이전에 C#에서는 하나의 파일에 여러개의 클래스를 정의할 수 있다고 했었죠? 네임 스페이스도 여러개를 정의할 수 있습니다. 또한, namespace 밖에 using을 사용할수도 있고 안에 사용할 수도 있습니다.
다음 시간에...
추천0 비추천0
- 이전글Java vs C# (주석과 문서화, Comment Documentation) - 3부 20.08.13
- 다음글Java vs C# (프로그램 구조) - 1부 20.08.11
댓글목록
등록된 댓글이 없습니다.