2013-02-26 2 views
2

Простой вопрос, но даже при том, что он много горит, я не смог найти ответ.Импорт одного класса в Java

Можно ли импортировать класс за пределы упаковки?

Скажем, у меня есть 2 папки A и B с .java файла в каждом, возможно с помощью предложения import импортировать класс, содержащийся в A? import A.Aclass? или это обязательно, используя синтаксис пакета всякий раз, когда есть ключевое слово import?

+2

Вам даже не нужно импортировать его, если вы этого не хотите, вам просто нужно использовать FQCN. – MikeTheLiar

+0

Зачем вам это нужно? –

+2

Пакет в основном представляет собой папку, содержащую классы. Папки 'A' и' B' * являются * пакетами в вашем примере. – Wyzard

ответ

0

Да, это возможно.

Если у Вас есть следующие:

Пакет: Packa

Класс: ClasA

Do:

импорт PackA.ClassA; // Импорт класс

ИЛИ

импорт Packa *. // Импортируем все классы в пакете

1

Ну, если у класса определено значение package a;, вам необходимо импортировать класс с именем пакета. Если у вас есть два пакета, которые содержат класс с тем же именем, то в вашем классе, который должен вызывать каждый из них, вам нужно будет использовать полностью квалифицированное имя. Например:

import a.Foo; 
import b.Foo; 

public class Bar 
{ 

    public static void main(String[] args) 
    { 
     a.Foo aFoo = new a.Foo(); 
     b.Foo bFoo = new b.Foo(); 
    } 
} 

В качестве альтернативы, если у вас есть два пакета с классами одного и того же имени, вы можете просто пропустить их импорта, а точнее - их использование их полностью квалифицированные имена (FQN-ов).

Если класс не имеет package ...;, а затем просто импортировать его как:

import Foo; 

Однако, если у вас есть два пакета (из разных библиотек), которые содержат классы с одинаковым FQN-х годов, то первый один на пути к классам будет выбран.

Обратите внимание, что соглашение об именах пакетов заключается в использовании строчных букв и для классов - имя должно начинаться с буквы верхнего регистра для каждого слова в имени класса.

+3

Пожалуйста, имейте в виду, что высказывание isn 't' в виду ' – MikeTheLiar

+0

+1: LOL! Должно быть, я ошибся! – carlspring

0

Да, вы должны использовать синтаксис пакета.

  • импорт все класс внутри папка A.

    import com.pack.A.*; 
    
  • импортировать определенный класс внутри папки A.

    import com.pack.ClassName; 
    
0

да можно просто импортировать пакет

Синтаксис

import pck.ClassA or import pck.* 
2

Да можно импортировать класс с оператором импорта. Для лучшего понимания давайте предположим, что у вас есть три папки foldera, folderb и folderc где foldera содержит файл .java с именем «ClassA.java», folderb содержит другой файл .java с именем «ClassB.java» и folderc содержит файл .java с именем «ClassC.java». Теперь, если вы хотите использует данные члены и операции «ClassA.java» в «ClassC.java» вы можете использовать import заявление, как показано ниже:

import foldera.ClassA 

Если вы хотите использовать данные члены & операции «ClassB .java»в„ClassC.java“также возможно с оператором импорта

import folderb.ClassB 

в соответствии с правилом декларации файла исходного Java, если класс является частью пакета, то package заявление должно быть первым строка в файле исходного кода, перед любыми import sta которые могут присутствовать. В этом примере первая строка исходного файла "ClassC.java" должна быть package folderc, так как она находится в folderc. Аналогично, первая строка исходного файла "ClassA.java" должна быть package foldera, а первая строка исходного файла "ClassB.java" должна быть package folderb.

Надеюсь, теперь вы поняли концепцию! Спасибо ...

Смежные вопросы