Напишите класс Java для использования в другом классе Java - PullRequest
0 голосов
/ 26 октября 2011

Я нуб из Java.

Вот что я пытаюсь сделать:

//File 1
public class Class1
{
   //....does some stuff
}

//File 2
public class Class2
{
   //..also does some stuff including:
   Class1 c = new Class1(); 
}

Файл 1 и Файл 2 находятся в одном каталоге.

Для компиляции я использую команду:

javac Class2.java

Это дает мне ошибки в форме:

Error: Cannot find symbol Class1

Как мне решить эту проблему?

Ответы [ 5 ]

0 голосов
/ 26 октября 2011

не уверен, что я понимаю вопрос - вы пытаетесь использовать внутренний класс (одно определение класса внутри другого определения класса) или эти классы являются отдельными и независимыми?Импорт необходим для определения пакетов / классов, к которым у вас будет доступ, по умолчанию доступны пакеты в том же пакете.Так что, если они находятся в одном пакете, вам не нужно импортировать.Также оба этих класса должны быть видны друг другу.Когда вы говорите, что это не работает, какую ошибку вы получаете?

один из способов использования внутренних классов - это, например, external.new Class1 () (где external - это объект класса, который инкапсулирует Class1).Если это не внутренние классы, они должны быть в отдельных файлах .java.

Кстати, всегда рекомендуется явно указывать модификатор доступа (открытый, закрытый, защищенный).

Полныйлистинг кода с сообщениями об ошибках помог бы мне дать лучший ответ ...

0 голосов
/ 26 октября 2011

по базовому классу,

package ABC;

public class PQR {

// Do stuff

}


import ABC.*;

class XYZ {
 // Use the PQR class method
}
0 голосов
/ 26 октября 2011

Для использования нескольких классов в одном файле ознакомьтесь с этим учебником

Если вы пишете свои классы в двух разных файлах, и они находятся в одном пакете, для их использования не требуется импортировать их. Но если вы компилируете их вручную (используя командную строку), убедитесь, что вы скомпилировали все файлы .java. В противном случае вы получите ошибки.

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

Я предлагаю использовать хорошую IDE (их много :)) для выполнения вашего кода, потому что они помогают вам гораздо больше, чем мы:)

0 голосов
/ 26 октября 2011

Если два файла Class1.java и Class2.java находятся в одном и том же каталоге (и при условии, что вы объявили класс, который вы хотите использовать в качестве), вам вообще не нужно выполнять какой-либо импорт, чтобы использовать один из другой; Java автоматически найдет другой класс.

Так что в Class2.java вы можете просто сделать:

public class Class2 {
    void someMethod() {
        Class1 c = new Class1();
    }
}
0 голосов
/ 26 октября 2011

Предполагая, что они находятся в одной папке, вам не нужно импортировать, если нет, вам нужно указать пакет как import java.util.Scanner;. В Java вы не используете суффикс с расширением.

Что вы используете, чтобы написать свой код?

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