#java
#java
Вопрос:
Я пытаюсь получить доступ к массиву в объекте «other», но я не могу понять, как получить доступ к переменной. Это то, что у меня есть до сих пор:
public void union(DataSet other)
{
DataSet temp = new newdataexp();
temp = other;
}
Я не смог выяснить, как получить доступ к переменной, даже когда я создаю метод в классе, который возвращает переменную, а затем пытаюсь вызвать его из этого объединения методов.
У меня есть этот метод, и я пытаюсь выполнить: String[][] temp = other.getdata(), но компилятор говорит, что он не может найти symbol: метод getdata().
общедоступная строка[][] getdata() {
возвращает filedata;
}
Комментарии:
1. пожалуйста, прочитайте инструкцию Blocks ans
2. Создание метода, который возвращает это, должно было сработать. Вы должны были опубликовать эту попытку, и тогда мы могли бы объяснить, почему это не сработало.
3. Когда я попытался использовать метод, который вернул переменную, я получил сообщение об ошибке: не удается найти символьный метод data().
4. Опять же, я не понимаю, почему это не сработало бы. Уверен, что это тот же файл? Уверен, что оба раза она написана с заглавной буквы?
Ответ №1:
замените тип данных на String, int и т.д. Для всего, что возвращает метод.
datatype mynewdata = (datatype)other.getMeMyArray();
Ответ №2:
Я не знаю, хорошо ли я понимаю ваш вопрос, но для доступа к переменной в другом объекте того же класса просто попробуйте это:
class MyClass {
private int[] myArray = new int[10];
public void myMethod(MyClass myClass) {
// you can in this way:
// int[] tempArray = myClass.myArray
// but this is better:
int[] tempArray = myClass.getMyArray();
}
public int[] getMyArray() {
return myArray;
}
}
Отредактировано:
Но если вы хотите улучшить объединение, извлеките метод объединения за пределы класса, создайте метод:
public static MyObject union(MyObject myObjectFirst, MyObject myObjectSecond) {
...
}
Комментарии:
1. Это сбивает с толку, потому что вы создаете объект и называете его «MyClass». Новички часто путают классы и объекты, поэтому я бы не стал делать этого в примере кода для начинающих.
2. общедоступная строка[][] data() { возвращает это. filedata; } — это то, что у меня было, я подумал, что это просто вернет переменную из объекта класса, который я хотел. Однако это не работает.
3. @John Я предполагаю, что это потому, что у вас есть метод getdata в классе newdataexp, но у вас есть в методе параметра ссылка на DataSet (обратите внимание: у вас нет такого метода в DataSet).
4. Вот и все, спасибо! Этого не было в интерфейсе, который я использовал.
5. @smas откуда ты это знаешь? Ты сидишь рядом с Джоном?