Dificuldade em Java, código não compila

Olá, meu código não esta compilando, alguém pode me ajudar?? Vou deixa o problema e o código.

1 - O cadastro de apoio referente à Pessoa, com dados sendo inseridos e recuperados do banco de dados ou da memória principal (vetores ou matrizes). Deve ser possível Cadastrar, Editar, Excluir e Listar os dados das pessoas. O uso da base de dados é facultativo.
2 - validação de dados de entrada. Para isso, validar nomes vazios ou sem sobrenomes, além dos demais campos que possuem a restrição Not Null no Banco de Dados (campos obrigatórios). Mesmo que não seja utilizado acesso a banco de dados, o usuário deve informar algum valor para campos obrigatórios;
3 - uma listagem de dados de algum dos cadastros. Exemplo: listar todas as informações das Pessoas cadastradas uma abaixo da outra;
4 - uma opção, no menu, que totalize um dos cadastros. Exemplo: no cadastro de pessoas, seria possível mostrar quantas pessoas estão cadastradas no banco de dados.

NO CASO SERIA UM MENU EM JAVA.

CÓDIGO:

public class CadastroPessoa {

public static void main(String[] args) {
boolean continuar = true;
String pessoas;
String a = “”;
int id = 0;
while (continuar) {

    int opcao = Entrada.leiaInt("Opcão: ");
    
    switch (opcao) {
      case 0:
      continuar = false;
      break;
      case 1:
      inserirCadastro();
      break;
      
      case 2:
        if (pessoas.size() == 0) {
        System.out.println("Não existe nenhum cadastro.");
        a = Entrada.leiaString("Enter");
      } else {
        AlterarCadastro();
      }
      break;
      
      case 3:
        if (pessoas.size() == 0) {
        System.out.println("Não existe nenhum cadastro.");
        a = Entrada.leiaString("Enter");
      } else {
        ExcluirCadastro();
      }
      break;
      
      case 4:
        if (pessoas.size() == 0) {
        System.out.println("Não existe nenhum cadastro");
        a = Entrada.leiaString("Enter");
      } else {
        p.consultarPessoas(pessoas);
        a = Entrada.leiaString("Enter");
        
      }
      break;
    }
  }
  System.out.println("Encerando");

}

private static void ExcluirCadastro() {
p.consultarPessoas (pessoas);

id = Entrada.leiaInt("Informe o ID: ");
if(testaPosicao(id)) {
  
  String = pessoaRemovida = pessoa.get(id - 1).Dados();
  pessoas.remove(id - 1);
  System.out.println("Pessoa removida: ");
  System.out.println(pessoaRemovida);
  
  a = Entrada.leiaString("O cadastro foi excluido com sucesso! 'Enter'");
} else {
  System.out.println("");
  System.out.println("ID não existe.");
  System.out.println("");
  
}

}

private static void carregaOpções() {
System.out.println("");
System.out.println("…CADASTRO DE PESSOAS .");
System.out.println("Escolha uma das opcoes abaixo: ");
System.out.println(“1 Cadastrar nova Pessoa”);
System.out.println(“2 - Alterar Cadastro”);
System.out.println(“3 - Excluir Cadastro”);
System.out.println(“4 - Consultar cadastros”);
System.out.println(“e - SAIR”);
}
private static boolean Testaposicao(int x) {
if ((x <= pessoas.size() && x > 0)) {
return true;
} else {
return false;
}
}

private static void InserirCadastro() {

boolean continuar = true;
string nome = "";
String endereco = "";
String email = "";
String telefone = "";
    
  while (continuar) {
  nome = Entrada.leiaString("Nome: ");
  continuar = !p. TestarEntrada("nome", nome);
  if (continuar) {
    System.out.println(p.erro("nome"));
  }
}

continuar = true;

while (continuar) {
  endereco = Entrada.leiaString("endereco: ");
  continuar =!p.TestaEntrada("endereco", endereco);
  if(continuar) {
    System.out.println(p.erro("endereco"));
  }
}

continuar = true;

while (continuar) {
  email = Entrada.leiastring("Email: ");
  continuar = Ip.TestEntrada("email", email);
  if (continuar) {
    System.out.println(p.erro("email"));
  }
}

continuar = true;

while (continuar) {
  telefone = Entrada.leiastring("Telefone: ");
  continuar = Ip.TestEntrada("telefone", telefone);
  if (continuar) {
    System.out.println(p.erro("telefone"));    
  }
}

p = new Pessoa(nome, endereco, email, telefoe);

pessoas.add(p);
p.ConsultarPessoas(pessoas);
a = Entrada.leiaString("O cadastro foi inserido com sucesso! Enter");

}

private static void AlterarCadastro() {

boolean continuar = true;
String nomePessoa = "";
String enderecoPessoa = "";
String telefonePessoa = "";
String emailPessoa = "";
  
para.consultarPessoas(pessoas);

id = Entrada.leiaute("Informe o ID: ");

if (Testaposicao(id)) {
  
  Pessoa antiga = new Pessoa(pessoas.get(id - 1).Nome, pessoas.get(id - 1).Endereco,
                             pessoas.get (id - 1). Email, pessoas.get(id - 1). Telefone);

  system.out.println();
  System.out.println("Para manter os dados atuais do campo, digite 'e' (ZERO)");
  system.out.println();
  
  while (continuar) {

    System.out.println("Nome atual: " + antiga.Nome);
    System.out.print("Nome novo: ");
    nomePessoa = Entrada.leiastring();

    if (nomePessoa.equals("o")){
      nomePessoa = antiga.Nomes;
    }

    continuar = !p.TesteEntrada("nome", nomePessoa);
    if (continuar) {
      System.out.println(p.erro("nome"));
    }
  }
  
  continuar = true;
  
  while (continuar) {
    System.out.println("Endereco atual: " + antigo.endereco);
    System.out.println("endereco novo: ");
    enderecoPessoa = Entrada.leiaString();
    
    if (enderecoPessoa.equals("0")) {
      enderecoPessoa = antigo.Endereco;
    }
    continuar = !p.TestaEntrada("endereco", enderecoPessoa);
    if (continuar) {
      System.out.println(p.erro("endereco"));
    }
    
    continuar = true;
    
    while (continuar) {
      System.out.println("Email atual: " + antigo.email);
      System.out.println("Emailnovo: ");
      emailPessoa = Entrada.leiaString();
      
      if (emailPessoa.equals("0")) {
        emailPessoa = antigo.Email;
      }
      continuar = !p.TesteEntrada("email", emailPessoa);
      if (continuar) {
        System.out.println(p.erro("email"));
      }
    }
    
    continuar = true;
    
    while (continuar) {
      System.out.println("Telefone atual: " + antigo.Telefone);
      System.out.print("Telefone novo: ");
      telefone Pessoa = Entrada.leiastring();
      
      if (telefonePessoa.equals("0")) {
        telefone Pessoa = antiga. Telefone;
      }
      continuar = Ip. TestaEntrada("telefone", telefonePessoa);
      if (continuar) {
        System.out.println(p.erro("telefone"));
      }
    }
    
    pessoas.ger(id - 1).Nome = nomePessoa;
    pessoas.ger(id - 1).Endereco = enderecoPessoa;
    pessoas.ger(id - 1).Email = emailPessoa;
    pessoas.ger(id - 1).Telefone = telefonePessoa;
    
    p.ConsutarPessoas(pessoas);
    a = Entrada.leiaString("Cadastro alterado! Enter");
  }
} else {
    System.out.println("ID nao existe");
  }

}
}

Um exemplo:

1 - Classe Pessoa

public class Pessoa {
	private int idPessoa;
	private String nome;
	private String sobrenome;
	
	/*
	* Métodos acessores e modificadores
	*/
	public void setIdPessoa(int idPessoa){
		this.idPessoa = idPessoa;
	}
	
	public int getIdPessoa(){
		return idPessoa;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setSobrenome(String sobrenome){
		this.sobrenome = sobrenome;
	}
	
	public String getSobrenome(){
		return sobrenome;
	}
}

2 - Classe Cadastro

import java.util.Scanner;

public class Cadastro {
	private Pessoa[] pessoas = new Pessoa[10];
	
	private void exibirMenu(){
		System.out.println(
			"\n\t01 - Cadastrar\n" +
			"\t02 - Atualizar\n" +
			"\t03 - Pesquisar por ID\n" +
			"\t04 - Pesquisar por nome\n" +
			"\t05 - Pesquisar por sobrenome\n" +
			"\t06 - Excluir\n" + 
			"\t07 - Listar\n" + 
			"\t99 - Sair\n"
		);
	}
	
	private short lerOpcao(){
		Scanner leitor = new Scanner(System.in);
		
		System.out.print("\nOpção escolhida: ");
		short opcao = leitor.nextShort();
		System.out.println("\n");
		
		return opcao;
	}
	
	private Pessoa lerDadosPessoais(int tipo){
		Scanner leitor = new Scanner(System.in);
		Pessoa pessoa = new Pessoa();
		
		if(tipo == 0){
			System.out.print("Informe o Id: ");
			pessoa.setIdPessoa(leitor.nextInt());
			
			leitor.nextLine(); //'Limpa'o scanner
		}
		
		System.out.print("Informe o nome: ");
		pessoa.setNome(leitor.nextLine());
		
		System.out.print("Informe o sobrenome: ");
		pessoa.setSobrenome(leitor.nextLine());
		
		return pessoa;
	}
	
	private int lerId(){
		Scanner leitor = new Scanner(System.in);
		System.out.print("Informe o Id: ");
		
		return leitor.nextInt();
	}
	
	private String lerItemDoNome(int itemNome){
		String item = null;
		Scanner leitor = new Scanner(System.in);
		
		if(itemNome == 4){
			System.out.print("Informe o nome: ");
			item = leitor.nextLine();
			
		}else if(itemNome == 5){
			System.out.print("Informe o sobrenome: ");
			item = leitor.nextLine();
		}
		
		return item;
	}
	
	private void cadastrar(short indice){
		Pessoa novaPessoa = lerDadosPessoais(0);
		pessoas[indice] = novaPessoa;
	}
	
	private void atualizar(short tamanho, int idPessoa){
		Pessoa pessoaAtualizada = lerDadosPessoais(1);
		
		for(short i = 0; i < tamanho; i++){
			if(pessoas[i].getIdPessoa() == idPessoa){
				pessoaAtualizada.setIdPessoa(pessoas[i].getIdPessoa());
				pessoas[i] = pessoaAtualizada;
			}
		}
	}
	
	private Pessoa pesquisar(short tamanho, int idPessoa){
		for(short i = 0; i < tamanho; i++){
			if(pessoas[i].getIdPessoa() == idPessoa)
				return pessoas[i];
		}
		
		return null;
	}
	
	private Pessoa pesquisar(short tamanho, String nomePessoa){
		for(short i = 0; i < tamanho; i++){
			if(pessoas[i].getNome().startsWith(nomePessoa))
				return pessoas[i];
		}
		
		return null;
	}
	
	/*private Pessoa pesquisar(short tamanho, String sobrenomePessoa){
		for(short i = 0; i < tamanho; i++){
			if(pessoa[i].getSobrenome()startsWith(sobrenomePessoa))
				return pessoa[i];
		}
	}*/
	
	private void listar(short tamanho){
		short contagem = 0;
		for(short i = 0; i < tamanho; i++)
			if(pessoas[i] != null)
				contagem++;
		
		System.out.println("\n\tNúmero de registros: " + contagem + "\n");
		
		for(short i = 0; i < tamanho; i++){
			if(pessoas[i] != null){
				System.out.println("\tID: " + pessoas[i].getIdPessoa());
				System.out.println("\tNome: " + pessoas[i].getNome());
				System.out.println("\tSobrenome: " + pessoas[i].getSobrenome() + "\n");
			}
		}
	}
	
	private void exibirPessoa(Pessoa pessoa){
		System.out.println("\n\tID: " + pessoa.getIdPessoa());
		System.out.println("\tNome: " + pessoa.getNome());
		System.out.println("\tSobrenome: " + pessoa.getSobrenome() + "\n");
	}
	
	private void excluir(short tamanho, int idPessoa){
		for(short i = 0; i < tamanho; i++)
			if(pessoas[i].getIdPessoa() == idPessoa)
				pessoas[i] = null;
	}
	
	public static void main(String[] args){
		Pessoa pessoa = new Pessoa();
		Cadastro cadastro = new Cadastro();
		short contador = 0;
		short opcao = 0;
		
		do{
			cadastro.exibirMenu();
			opcao = cadastro.lerOpcao();
			
			switch(opcao){
				case 1:
					cadastro.cadastrar(contador++);
					break;
				case 2:
					cadastro.atualizar(contador, cadastro.lerId());
					break;
				case 3:
					pessoa = cadastro.pesquisar(contador, cadastro.lerId());
					if(pessoa != null)
						cadastro.exibirPessoa(pessoa);
					else
						System.out.println("\n\tNenhuma pessoa encontrada!");
					break;
				case 4:
					pessoa = cadastro.pesquisar(contador, cadastro.lerItemDoNome(opcao));
					if(pessoa != null)
						cadastro.exibirPessoa(pessoa);
					else
						System.out.println("\n\tNenhuma pessoa encontrada!");
					break;
				case 5:
					//pessoa = cadastro.pesquisar(contador, cadastro.lerItemDoNome(opcao));
					if(pessoa != null)
						cadastro.exibirPessoa(pessoa);
					else
						System.out.println("\n\tNenhuma pessoa encontrada!");
					break;
				case 6:
					cadastro.excluir(contador, cadastro.lerId());
					break;
				case 7:
					cadastro.listar(contador);
					break;
				case 99:
					System.out.println("\nSaindo...");
					break;
				default:
					System.out.println("\tOpção inválida! Tente novamente.");
					cadastro.exibirMenu();
					opcao = cadastro.lerOpcao();
			}
		}while(opcao != 99);
	}
}

É funcional, mas é só um norte, já que algumas coisas pedidas no exercício não foram implementadas, bem como, melhorias podem ser feitas. Por exemplo, quando as pesquisas por nome e sobrenome. Elas só retornam a primeira correspondência. Assim, se houver uma pessoa João e uma pessoa Juliana e na pesquisa for por nome (opção 4) for digitado “J”, será retornado só a pessoa João.

Conseguir compreender. Estou tentando fazer um novo código. Ajudo bastante. Muito obrigado!