Вывод в консоль информации
Всем привет. СОздал классы, затем объекты, добавил инфу, затем массив, как мне теперь вывести информацию о кроватях в консоль?
package com.company;
import java.util.Scanner;
/*
комментарий
*/
public class Main {
public static void main(String[] args) {
ChildrensBeds ChildrensBeds = new ChildrensBeds();
ChildrensBeds.name = "BTS";
ChildrensBeds.price = 18.899f;
ChildrensBeds.color = "White";
ChildrensBeds.bodyMaterial = "ЛДПС";
SingleBeds singleBeds = new SingleBeds();
singleBeds.name = "Hoff";
singleBeds.price = 21.435f;
singleBeds.color = "Black";
singleBeds.boxForLinen = true;
DoubleBed doubleBed = new DoubleBed ();
doubleBed.name = "ESTA";
doubleBed.price = 39.000f;
doubleBed.color = "Blue";
doubleBed.countryOfOrigin = "Хорватия";
Bed [] beds = new Bed [] {ChildrensBeds, singleBeds, doubleBed };
for (Bed t: beds){
System.out.println(t + " " + t + " " + t + " ");
}
// write your code here
}
}
class Bed
{
String name;
Float price;
String color;
}
class ChildrensBeds extends Bed
{
String bodyMaterial;
}
class SingleBeds extends Bed
{
boolean boxForLinen;
}
class DoubleBed extends Bed
{
String countryOfOrigin;
}
В данный момент выводит следующее: com.company.ChildrensBeds@60addb54 com.company.ChildrensBeds@60addb54 com.company.ChildrensBeds@60addb54 com.company.SingleBeds@3f2a3a5 com.company.SingleBeds@3f2a3a5 com.company.SingleBeds@3f2a3a5 com.company.DoubleBed@4cb2c100 com.company.DoubleBed@4cb2c100 com.company.DoubleBed@4cb2c100
Ответы (3 шт):
Вам необходимо переопределить метод toString() для вашего класса, если вы работаете в intellij idea, то можете нажать alt+insert -> toString()
Если не хотите переопределять toString(), что неправильно, то можно лениво всё вывести.
Вместо:
System.out.println(t + " " + t + " " + t + " ")
Написать:
System.out.printf("Name: %s price:%f color: %s country: %s\n",
t.name, t.price, t.color, t.countryOfOrigin);
UPD Но лучше переопределить в классах метод toString, т.к поля у вас разные. В родителе сделать так:
return String.format("Name: %s price:%f color: %s", t.name, t.price, t.color);
В наследниках (на примере ChildrensBeds):
return super.toString() + "bodyMaterial: " + bodyMaterial;
Можно создать гетары:
class Bed
{
String name;
Float price;
String color;
}
class ChildrensBeds extends Bed
{
String bodyMaterial;
public Strind getData() {
return name+" " +prise+" "+color+" " +dodyMaterial;
}
}
class SingleBeds extends Bed
{
boolean boxForLinen;
public Strind getData() {
return name+" " +prise+" "+color+" " +boxForLinen;
}
}
class DoubleBed extends Bed
{
String countryOfOrigin;
public Strind getData() {
return name+" " +prise+" "+color+" " +countryOfOrigin;
}
}