
이름충돌이란 2개 이상의 변수, 함수, 클래스 등이 동일한 이름을 가지고 있어서 프로그램이 어떤 것을 참조해야 할지 모호해지는 상황을 의미한다. 이는 프로그램의 오류를 유발할 수 있다. 즉, 이름충돌이란 같은 이름을 가진 변수, 함수, 클래스 등이 존재하여 발생하는 오류라고 볼 수 있다.
예를 들어, 같은 프로젝트 내에 'Hello'라는 이름의 클래스가 2개 존재한다고 가정해보자. 이 경우 프로그램이 Hello 클래스를 참조할 때, 둘 중 어떤 클래스를 참조해야 하는지 모호해지므로 이름충돌이 발생한다.
이런 일을 방지하기 위해 패키지를 사용한다. 패키지는 고유한 네임스페이스를 제공하여 이름충돌을 방지한다.
예를들어, com.ll.Hello 와 org.ll.Hello는 서로 다른 패키지에 속하므로 이름충돌 없이 동시에 존재할 수 있다.