#java
#java
Вопрос:
import java.util.ArrayList;
public class ClassA {
ArrayList<ClassB> list = new ArrayList<ClassB>();
public static void main(String args[]) {
ClassA y = new ClassA();
int[] v = { 4, 3, 7, 5, 99, 3 };
for (int m : v)
y.list.add(new ClassB(m));
System.out.println(y);
} // end main
} // end class ClassA
class ClassB {
int x;
ClassB(int a) {
x = a;
}
} // end ClassB
Как должны быть написаны методы в ClassA и ClassB, чтобы выдавать указанный результат и использовать преимущества естественного метода toString в ClassB? (Предполагая, что это должен быть ClassA?)
Результат должен быть следующим: 4 3 7 5 99 3
Для класса A я внес следующие изменения.
import java.util.ArrayList;
public class ClassA {
ArrayList<ClassB> list = new ArrayList<ClassB>();
String numberList = "";
public String toString() {
for (ClassB object : list)
numberList = object " ";
return numberList;
}
public static void main(String args[]) {
ClassA y = new ClassA();
int[] v = {4, 3, 7, 5, 99, 3 };
for (int m : v)
y.list.add(new ClassB(m));
System.out.println(y);
} // end main
} // end class ClassA
Для класса B
class ClassB {
int x;
ClassB(int a) {
x = a;
}
public String toString() {
return String.valueOf(x);
}
} // end ClassB
Я, вероятно, сделал это неправильно, но у кого-нибудь есть лучшее представление об этом?
Комментарии:
1. Неясно, в чем на самом деле заключается ваша проблема, поскольку вы не реализовали
toString()
ни для одного класса и не описали, что «не работает» (предполагая, что вы их реализовали).2. @Bohemian отредактировал то, что мне нужно вывести на терминал. Извините за это, спасибо.
3. Пожалуйста, покажите
toString()
реализации метода, с которыми у вас возникли проблемы.
Ответ №1:
Как только вы напишете .toString()
метод в H2ClassB, тогда println в основном методе H2ClassA будет отображаться правильно.
Инструкция: System.out.println (y);
попытается отобразить ArrayList, у которого есть свой собственный toString
метод, и вывод будет выглядеть как [stuff, stuff, stuff, stuff] , но ‘stuff’ будет результатом toString ваших элементов вашего списка, которые являются объектами H2ClassB. Без пользовательского toString
вы видите двоичные ссылки на его месте.