#java
#java
Вопрос:
Я новичок в Java и пытался запрограммировать файл, который вызывает из другого файла. Допустим, у меня есть файл A.java и у него есть метод observer
…
//in Item.java
public class Item{
private String name;
//parametrized cons
public Item(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
И допустим, в файле B.java Я хочу напечатать все Item.names, я думал, что это будет что-то вроде этого
//in Bag.java
public class Bag {
private int size;
public void print(){
// this does not work
System.out.println(Item.getName());
}
}
Но это не сработало. Я вообще не могу изменить метод (имя) печати. Есть ли другой способ, которым это можно сделать?
Цель: Извините, если я не совсем ясно выражаюсь, цель состоит в том, чтобы напечатать имя элемента. Предполагая, что мы передали элемент в Item.java класс уже, как бы вы напечатали этот элемент?
Комментарии:
1. Пожалуйста, покажите полное содержимое обоих файлов. Как написано, «Наблюдатель» не отображается
2. Обновлено @OneCricketeer
3. @Progman Извините, все еще выясняю определения языка. Я обновил его снова, цель состоит в том, чтобы напечатать элемент, который был передан в Item.java из Bag.java
4. Вам нужен пакет для хранения некоторого элемента. Как вы планируете это делать? Другими словами,
.getName()
это метод экземпляра. Вам нужен экземплярnew Item()
. Где в вашем коде вы это делаете?
Ответ №1:
Не ясно, как B узнает об A в вашем данном коде, но вы можете передать его при создании new B()
через конструктор
public class B {
private A a;
public B(A a) {
this.a = a;
}
public void print() {
System.out.println(this.a.getName());
}
}
Или вы можете определить статический метод в B, который принимает экземпляр A.
public static void print(A a) {
System.out.println(a.getName());
}
И вызвать B.print(a_instance)
Ответ №2:
//in B.java
public void print(){
System.out.println(new A().getName());
}
Комментарии:
1. Итак, в моем файле A у меня есть параметризованный конструктор A (ввод, input, input), когда я выполняю new A().getName(), он просит меня повторно ввести 3 ввода
2. таким образом, вы можете передать их следующим образом
new A("some string value", 12, true)
, просто убедитесь, что вы передаете значение в соответствии с типом данных, спасибо.