Imprimindo Vetores

Boa tarde,

Tenho uma dúvida quanto a impressão do construtor Vet, quando uso o System.out.printf(vet[i]), ele não imprime os dados digitados, alguém pode auxiliar ?

Posso usar um toString ?

package Exercicios;

import EntidadesPensao.Pensao;
import java.util.Locale;
import java.util.Scanner;

public class Programa {

@SuppressWarnings("null")
public static void main(String[] args){
    
    Scanner sc = new Scanner(System.in);
    Locale.setDefault(Locale.US);
    // LEITURA DE QUANTOS QUARTOS SERAM ALUGADOS PARA O "FOR"
    System.out.printf("Quantos quartos serão alugados ? : ");
    int n  = sc.nextInt();
    
    Pensao[] vet = new Pensao[10];
    //CONSTRUTOR DOS VETORES - COM NOME , EMAIL E QUAL O QUARTO
    for (int i=0;i<n;i++){
        
    System.out.printf("Pedido: "+ (i+1) + "\n");
    System.out.printf("NOME do Hospede : ");
    String nome = sc.next();
    sc.nextLine();
    System.out.printf("e-mail do Hospede : ");
    String email = sc.next();
    sc.nextLine();
    System.out.printf("Quarto desejado : ");
    Integer  quarto = sc.nextInt();
    
    vet[i]  = new Pensao(nome, email, quarto);

    }
       for ( int i=0;i<n;i++){
         System.out.printf(vet[i]);

    }    
      
}

}

 System.out.printf("NOME do Hospede : ");
    vet[i].nome = sc.next();
    sc.nextLine();
    System.out.printf("e-mail do Hospede : ");
    vet[i].email = sc.next();
    sc.nextLine();
    System.out.printf("Quarto desejado : ");
    vet[i].quarto = sc.nextInt();

Tenta isso.

A classe “PENSAO” onde foi usado de construtor está privada.
Por esse meio de " vet[i].email = sc.next();" Não encontra

Posta o código da classe Pensao, por favor.

Sim, um .toString() pode resolver se for o problema que estou pensando.

CLASSE PENSAO - ONDE ESTÃO OS CONSTRUTORES E VARIAVEIS

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package EntidadesPensao;

public class Pensao {

String nome;
String email;
int quarto;

 public Pensao(String nome, String email, int quarto) {
    this.nome = nome;
    this.email = email;
    this.quarto = quarto;
}

public int getQuarto() {
    return quarto;
}

public void setQuarto(int quarto) {
    this.quarto = quarto;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

}

O toString de um vetor ([]) só retorna o hash do mesmo.
Você precisa iterar sobre os elementos do vetor.

Sabe usar laçõs de repetição?

Então usei um o laço : for ( int i=0;i<n;i++){
System.out.printf(vet[i]);

}   

porém na impressão do laço, as informações vem todas estranhas EX : EntidadesPensao.Pensao@154617cEntidadesPensao.Pensao@a14482

Isso ocorre pelo simples fato de você não ter criado um método toString dentro da classe Pensao

public String toString() {
    return "Blablabla";
}

No caso acima, vai apresentar, para cada posição do vetor, a palavra Blablabla.

Sim ! Mas só é possível realizar esse tipo de impressão com o ToString ?

Você testou? Está usando alguma IDE (eclipse, netbeans, intellij)? Se sim, a própria IDE oferece recursos para criar um toString específico;
Mas, você sempre pode fazer

E assim por diante, para cada atributo do tal objeto.