Как мне «потребовать» соседний класс в Java? - PullRequest
2 голосов
/ 21 октября 2008

В Ruby я часто писал несколько небольших классов, и основной класс организовывал маленьких ребят для выполнения работы. Я делаю это, написав

require "converter.rb"
require "screenFixer.rb"
.
.
.

на вершине основного класса. Как мне сделать это на Java? Это "импорт"?

Кроме того, может кто-нибудь придумать лучший заголовок для этого вопроса?

Ответы [ 6 ]

6 голосов
/ 21 октября 2008

Если вы имеете в виду, что собираетесь написать код, который будет использовать другой класс. Да, вам нужно будет импортировать эти классы с помощью оператора import.

т.е.

package com.boo;

import com.foo.Bar;

public class StackOverflow {

private Bar myBar;

}
1 голос
/ 21 октября 2008

Если все написанные вами классы находятся в одном пакете, вам не нужно делать ничего особенного, чтобы использовать их. Если класс A хочет обслуживание класса B, то в классе A вы можете просто создать экземпляр объекта B и вызвать нужные вам методы B.

Однако, если классы находятся в разных пакетах или если вы используете классы от третьих лиц, вам понадобится оператор импорта

import package.ClasName;

вверху файла, в котором вы ссылаетесь на класс.

1 голос
/ 21 октября 2008

Вы должны действительно прочитать немного об объектно-ориентированном программировании.

Вы не организовываете маленьких парней в больших парнях, делайте работу.

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

Кстати, вы должны явно создать экземпляр класса, чтобы использовать его, то есть вызвать метод конструктора класса

package com.foo;
import com.foo.Bar;

public class StackOverflow {

private Bar myBar;
    public StackOverflow() { //this is a constructor of StackOverflow class
        myBar = new Bar(); //i'm invoking constructor of Bar class
    }
}
1 голос
/ 21 октября 2008

Если эти другие классы будут использоваться только вашим 'основным' классом, есть пара вариантов, которые не нужно импортировать:

  • Вы можете сделать их закрытыми статическими вложенными классами внутри вашего основного класса.
  • Вы можете сделать их «пакетным доступом» (по умолчанию - без модификатора доступа)

Однако, если они являются публичными классами где-то еще, вам действительно потребуется импорт (или их полная квалификация везде, но это ужасно).

1 голос
/ 21 октября 2008

Вы не импортируете свои * .java файлы в java. Вместо этого вы делаете это так.

javac file1.java file2.java file3.java
java file1
0 голосов
/ 21 октября 2008

public class Example {
   public Example(IConverter converter, IScreenFixer screenFixer) {

   }
}

http://en.wikipedia.org/wiki/Facade_pattern?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...