2017-02-15 3 views
0

자바 학습 과정에서 &이 컴파일 된이 코드를 성공적으로 실행했습니다. 아무도 왜 컴파일러에서 오류가 발생하지 않았는지에 대한 설명을 제공해 줄 수 있습니까? java.util> Scanner도 포함 된 전체 패키지를 가져 왔으므로 스캐너가 이미 util 패키지에 정의되어 있다는 오류가 없어야합니다. & 여기에 다시 정의하려고합니까? 이것은 완전히 멍청한 놈의 질문 것으로 보인다 그래서 내가 물어 더 나은에 생각이 포럼에 모두 의심의 여지가 없었다 경우 JavaCompiler는 Java 클래스의 재정의시 오류를 catch하지 않았습니다.

import java.util.*; 

class Scanner 
{ 
    public static void main(String... args) 
    { 
     Scanner c = new Scanner(); 
    } 
} 

내 자바 기초

너무 친절 곰 매우 명확하지 않다.

+1

이름 주문형 수입과 수입 무엇보다 우선합니다 : 코드 예제와 가능한 사용 사례와 더 이상 대답을

는, 여기 봐. java.util.Scanner를 명시 적으로 임포트하면 (자) 에러가됩니다. –

+0

java.util.Scanner 가져 오기를 추가하면 사용되지 않은 것으로 표시됩니다. – c0der

+0

예, 컴파일 오류가 발생합니다. 난 단지 왜 전체 패키지를 가져 오는 동안 그것을하지 않는지 알고 싶었어요. – WhiteSword

답변

-1

클래스는 이름으로 정의 될뿐만 아니라 패키지로도 정의됩니다. 귀하의 경우에는

두 개의 다른 클래스가 있습니다

  • java.util.Scanner
  • your.package.Scanner을
(죄송합니다, 패키지 라인은 코드의 일부가 아닙니다)

컴파일러의 경우 이러한 클래스가 다르므로 컴파일 오류가 나타나지 않는 이유입니다. 현재 컴파일 단위에서 Importing two classes with same name. How to handle?