Я пытаюсь ссылаться на имя объекта во время выполнения в небольшой консоли Java, но я не могу. Моя консоль продолжает возвращать «VirtualFriend @ 17dfafd1» вместо фактического имени объекта VirtualFriend, который я передаю в параметре. Как преобразовать это в фактическую строку, которая показывает имя объекта вместо его хэш-кода? Вот код для справки:Java - проблема со ссылкой на имя объекта во время выполнения
public class VirtualFriend {
// variables
private String myName;
private int myAge, myFood;
// other variables
private int a, b;
private VirtualFriend other;
// general constructor
public VirtualFriend() {
myName = "Unknown";
myAge = 5;
myFood = 2;
}
// specific constructor
public VirtualFriend(String myName, int myAge) {
this.myName = myName;
this.myAge = myAge;
myFood = 2;
}
// name methods
public void setName(String myName) {
this.myName = myName;
}
public String getName() {
return myName;
}
// integer method
public int add(int a, int b) {
this.a = a;
this.b = b;
return a + b;
}
// void methods
public void printName() {
System.out.println(myName);
}
public void greet(VirtualFriend other) {
this.other = other;
System.out.println("Hi there " + other + ". It's nice "
+ "to meet you. My name is " + myName + ".");
}
// main method
public static void main(String[] args) {
VirtualFriend Liz = new VirtualFriend("Liz", 16);
VirtualFriend Boo = new VirtualFriend("Boo", 16);
Liz.greet(Boo);
}
}
Любой вызов 'getName()' или реализация 'toString()'. – Andreas
@Andreas Как бы реализовать toString()? – Shrey