Vou tentar explicar com códigos, mas se tiver algo errado na sintaxe, me perdoa.
Classe Agenda
public class AgendaTel{
//Atributos da class AgendaTel
private int contador = 0;
private String[][] dadosAgenda;
//método construtor
public AgendaTel() {
}
//setter do atributo dadosAgenda[][]
public void setDadosAgenda(String nome, String telefone) {
dadosAgenda[contador][0] = nome;
dadosAgenda[contador][1] = telefone;
contador++;
}
}
Vamos deixar o getter de fora, por enquanto, e usar outra classe para implementar uma agenda.
public class Teste {
public static void main(String[] args) {
//cria uma nova instância da classe AgendaTel que tem o construtor vazio.
AgendaTel minhaAgenda = new AgendaTel();
//Adiciona novas entrada
minhaAgenda.setDadosAgenda(Alano, 32111111);
minhaAgenda.setDadosAgenda(Beltrano, 32111112);
minhaAgenda.setDadosAgenda(Ciclano, 32111113);
minhaAgenda.setDadosAgenda(Deltrano, 32111114);
}
}
Bom, eu fiz esse código aqui mesmo e não testei, não sei se ele vai funcionar da forma como está escrito, e ele ainda responde somente a primeira pergunta.
Quanto a segunda pergunta, não sei responder diretamente, é necessário testar isso.