Wyswietlanie Obiektu w Javie

0

W jaki sposób mogę wyświetlić informację o obiekcie np

Pandas Teo = new Pandas(3, "Teo", "Panda", "Bamboo Leaves");

Aby było "Panda ma 3 lata, ma na imię Teo, rasa to Panda, żywi się Bamboo Leaves"

1

Bez żadnej informacji o Pandas (który wygląda na idiotyczną owijkę tablicy), bez zmieniania w.w. kodu - nie możesz.

0

Obiekt tworzę na podstawie klasy, chcę go po prostu wyświetlić tak jak napisałem w przykładzie w pierwszym poście

class Pandas extends Animals {

	String food;

	Pandas(int ageOfTheAnimals, String nameOfTheAnimals,
			String typeOfTheAnimals, String food) {
		super(ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals);
		this.food = food;
	}

}
1

Mając do dyspozycji tylko w.w. kod wciąż nie można tego zrobić chyba, że masz dostęp do tych informacji poprzez Animals (ps. ta hierarchia dziedziczenia wydaje się być bezsensowną).

0

Wiem, że wydaje się być bezsensowną, niestety takie mamy robić zadanie z programowania

class Animals {

	public static Ponys Ponys;
	String nameOfTheAnimals;
	String typeOfTheAnimals;
	int ageOfTheAnimals;

	Animals(int ageOfTheAnimals, String nameOfTheAnimals,
			String typeOfTheAnimals) {

		this.ageOfTheAnimals = ageOfTheAnimals;
		this.nameOfTheAnimals = nameOfTheAnimals;
		this.typeOfTheAnimals = typeOfTheAnimals;

	}
1
  1. Panda a nie Pandas, Animal a nie Animals. Klasa to na przykład "Krzesło", a nie kilka krzeseł.
  2. Co w tym Animals robi Ponnys?
  3. Stworz wlasna implementacje metody toString() zwracajaca to, co chcesz wyswietlic.
1

Możesz dorzucić do swojego pandas to:

@Override
public String toString() {
	return String.format(
		"Panda ma %d lata, ma na imię %s, rasa to %s, żywi się %s",
		ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals, food
	);
}

Z poprawną odmianą (rok/lata) sobie już chyba poradzisz.

0

Zaimplementuj dla obu klas toString().

  // Pandas
  public String toString() {
     return String.format("[%s, %s]", food, super.toString());
  }

  // Animals
  public String toString() {
     return String.format("[%d, %s, %s]", ageOfTheAnimals, nameOfTheAnimals, typeOfTheAnimals);
  }

  System.out.println(Teo);

Uwaga: nie testowałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1