3
I’m trying to give a System.out.println
on an object I have (even with the toString()
in class)
I’m getting:
Predio [name=LS, aptos=[[Lmodel.Apartamento;@7ba4f24f, [Lmodel.Apartment;@3b9a45b3, [Lmodel.Apartment;@7699a589, [Lmodel.Apartment;@58372a00, [Lmodel.Apartment;@4dd8dc3]]
Mine models:
Building:
package model;
import java.util.Arrays;
public class Predio {
private String nome;
private Apartamento[][] aptos;
public Predio(int qtdAndares, int aptosPorAndar, String nome) {
this.aptos = new Apartamento[qtdAndares][aptosPorAndar];
this.nome = nome;
}
public void adicionarApto(int andar, Apartamento apto) {
if (andar >= this.aptos.length) {
throw new IllegalArgumentException("O prédio só tem " + this.aptos.length + " andares");
}
// encontra a primeira posição não preenchida
int i = 0;
while (i < this.aptos[andar].length && this.aptos[andar][i] != null)
i++;
if (i >= this.aptos[andar].length) {
throw new IllegalArgumentException("Andar " + andar + " já está com todos os apartamentos cadastrados");
}
this.aptos[andar][i] = apto;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String toString() {
return "Predio [nome=" + nome + ", aptos=" + Arrays.toString(aptos) + "]";
}
}
Apartment:
package model;
public class Apartamento {
private Integer qtdQuarto, qtdBanheiro, qtdCozinha, qtdSala, numeroApt;
public Apartamento(Integer numeroApt) {
this.numeroApt = numeroApt;
}
public Integer getNumeroApt() {
return numeroApt;
}
public void setNumeroApt(Integer numeroApt) {
this.numeroApt = numeroApt;
}
public Integer getQtdQuarto() {
return qtdQuarto;
}
public void setQtdQuarto(Integer qtdQuarto) {
this.qtdQuarto = qtdQuarto;
}
public Integer getQtdBanheiro() {
return qtdBanheiro;
}
public void setQtdBanheiro(Integer qtdBanheiro) {
this.qtdBanheiro = qtdBanheiro;
}
public Integer getQtdCozinha() {
return qtdCozinha;
}
public void setQtdCozinha(Integer qtdCozinha) {
this.qtdCozinha = qtdCozinha;
}
public Integer getQtdSala() {
return qtdSala;
}
public void setQtdSala(Integer qtdSala) {
this.qtdSala = qtdSala;
}
@Override
public String toString() {
return "Apartamento [qtdQuarto=" + qtdQuarto + ", qtdBanheiro=" + qtdBanheiro + ", qtdCozinha=" + qtdCozinha
+ ", qtdSala=" + qtdSala + "]";
}
}
my main:
package main;
import java.util.Scanner;
import model.Apartamento;
import model.Predio;
public class app {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite o nome do Predio: ");
String nomePredio = scanner.next();
System.out.println("Digite a quantidade de Andares do Predio: ");
int qtdAndares = scanner.nextInt();
System.out.println("Digite a quantidade de Apartamentos por andar: ");
int aptosPorAndar = scanner.nextInt();
System.out.println("Digite o prefixo de numeração dos Apartamentos: ");
int prefApt = scanner.nextInt();
Predio predio = new Predio(qtdAndares, aptosPorAndar,nomePredio);
for (int andar = 0; andar < qtdAndares; andar++) {
for (int apto = 0; apto < aptosPorAndar; apto++) {
int numero = andar * prefApt + apto;
// leia todos os dados que um apartamento precisa e passe todos para o construtor
predio.adicionarApto(andar, new Apartamento(numero));
}
}
System.out.println(predio);
}
}
Thank you I am trying to modify the code with your hints and removed toString, but with that I entered another problem, I think I will have to ask a new question.
– Joao Spirit
You can do it, we’re there for it.
– Maniero