2016-09-05 3 views
2

패키지를 가져 와서 프로그램을 만들 때 사용할 수있는 많은 코딩 된 클래스에 액세스 할 수 있다는 것을 알고 있습니다. 그러나 여러 기능을 사용할 수 있다면 모든 기능을 가져 오는 것이 가장 좋습니다. 나는 수천 가지 수입품이 있다는 것을 알고 있으며 이렇게하는 것이 흔하지 않다는 것을 안다. (나는 그것을하는 사람은 모르지만 어쩌면 내가 틀렸다는 것을 알고있다.) 그러나 왜 사람들은 모든 것을 수입하지 않는가? 프로그램이 너무 느려 집니까? 아니면 그냥 비효율적입니까? 나는 단지 궁금하다. 감사.모든 가져 오기를 사용하지 않는 이유는 무엇입니까?

+2

[Java 가져 오기 명령문과 함께 와일드 카드를 사용하는 이유는 무엇입니까?] (http://stackoverflow.com/questions/147454/why-is-using-a-wild-card-with-a-java -import-statement-bad) – erolkaya84

+0

이름이 같지만 패키지가 다른 두 개의 클래스가있는 경우를 생각해 보셨습니까? –

답변

2

사전에 모든 것을 가져올 필요가 없습니다; 이 (즉, 동일한 기능의 이름 등 살아 각 패키지 (= 쉽게 접근)

  • 이 같은 네임 스페이스를 사용하고있는 패키지 간의 충돌을 만들에서 오는 등 모든 클래스, 기능을 유지으로
    1. 은 프로그램을 느리게), 또는 적어도 만들 마지막은 가능 하나를로드하고 이전 것들은 당신이 프로그램
    2. 것은 위의 이유로 충돌에 취약 할 수 많은 메모리를 사용을 다시 시작
    3. 많은 시간마다 시간을 마스크 할

    이 목록을 확장 할 수 있습니다. 당신의 intentions.ALWAYS가 표시되지 않습니다 읽는 사람이 기억하기 때문에

  • +0

    임포트는 런타임에 아무 부분도 재생하지 않으며 컴파일 시간에만 프로그램의 속도에 영향을주지 않습니다. 예 : 바이트 코드에서 사용 된 가져 오기를 정확하게 재구성 할 수는 없습니다. –

    +1

    @PeterLawrey 컴파일을 필요로하는 프로그램에 대해서는 사실이지만, 모든 패키지를 임포트하는 것은 R, Python, PHP 등과 같은 해석 언어의 속도에 분명히 영향을 미친다. –

    +0

    그러나 [java]는 태그가 붙어있어서 언급하는 작업이다. –

    5

    내가 생각할 수있는 속도 외에 몇 가지 이유가있다 :

    1. 빨리 누군가 사용하고 어떤 파일을 읽는을 표시 할 수 있습니다 수입의 목록을보고. 모든 것을 가져 오면 그 능력을 잃게됩니다.
    2. 오류를 일으킬 이름 충돌이 있습니다. 예를 들어 this question을 참조하십시오.
    3. 현대의 IDE는 정말 쉽습니다 수요에 패키지를 가져올 수 있도록, 그래서 모든 패키지를 가져 오기
    1

    그것은 코드를 읽을 수 있습니다 : "코드가 두 번 어쩌면,하지만 수백 배는 사람이 읽고, 한 번 작성 예 :.

    에서 안드로이드 SDK에는 같은 이름을 가진 클래스가 있지만 다른 패키지에서 온 것입니다 .GPS 위치 관리자 또는 뭔가라고 생각합니다 .무엇이든지 ... 다른 프로그래머가 어려움을 겪을 수 있습니다. 가져 오기를 생각하거나 수동으로 확인해야하기 때문에 어려울 수 있습니다.

    저는 고급 프로그래머는 아니지만 출력 프로그램이 더 클 수 있다고 생각합니다.

    관련 문제