Como imprimo métodos void?

Bom, tenho um mesmo método do tipo void implementado à duas classes, esse método retorna uma tabela de arrays. Depois disso preciso imprimir as saídas de cada classe em uma classe Teste e preciso imprimir um método ao lado do outro. Mas já sei que não posso colocar um System.out e \t, então como eu poderia fazer isso? Segue o código:

public class Arr1 implements -- {
  
  public void tabela() {
    String[] [] table = new String[4] [5];
    
    {
      table[0][0] = "Blocos: ";
      table[1][0] = "        ";
      table[2][0] = "        ";
      table[3][0] = "        ";

      table[0][1] = "|b0";
      table[1][1] = "|b1";
      table[2][1] = "|b2";
      table[3][1] = "|b3";

      table[0][2] = "b4";
      table[1][2] = "b5";
      table[2][2] = "b6";
      table[3][2] = "b7";

      table[0][3] = "b8 ";
      table[1][3] = "b9 ";
      table[2][3] = "b10";
      table[3][3] = "b11";

      table[0][4] = "b12|";
      table[1][4] = "b13|";
      table[2][4] = "b14|";
      table[3][4] = "b15|";
      
      for (int i = 0; i < table.length; i++) {
        for (int j = 0; j < table[i].length; j++) {
          System.out.print(table[i] [j] + " ");
        }
        
        System.out.println();
      }
    }
  }
}

public class Arr2 implements -- {
  public void tabela() {
    ...
  }
}

public class Teste {
  ... main {
    Arr1 a1 = new Arr1();
    Arr2 a2 = new Arr2();
    
    a1.tabela(); "   " a2.tabela(); //Aqui eu quero imprimir exatamente assim, um método ao lado do outro, podendo dar o espaçamento necessário entre eles
  }
}

Grato.

Seus métodos tabela() são void e não retornam nada, apenas exibem o conteúdo dos arrays de String. Atente-se à terminologia, pois exibir/imprimir e retornar são conceitos distintos.

Você tem algumas opções de como abordar isso. Uma delas é fazer os métodos realmente retornarem os arrays, e fazer o loop com println fora das classes (no main, por exemplo).

Outra opção é criar um método em cada classe que recebe os índices da linha e da coluna que você quer exibir, e esse método chamar o print em um dos arrays, e println no outro (para quebra de linha).

Em ambos os casos, pode ficar um pouco mais complexo se os arrays forem de tamanhos diferentes (você tem que verificar o tamanho antes de tentar imprimir).

Abraço.

2 curtidas

Pufs, era pra ser um negocinho simples, mas tô vendo que não vai ser rsrs, contudo, muito obrigado @TerraSkilll.

@User_Java1

Siga uma das dicas do @TerraSkilll e apenas faça o método retornar a matriz:

public String[][] tabela() {

Vai facilitar sua vida.

2 curtidas

Ok @Lucas_Camara, obrigado.