Article image
Francisco Júnior
Francisco Júnior14/05/2026 09:59
Compartilhe

Java: Encapsulamento + CRUD

    O encapsulamento é um dos pilares da Programação Orientada a Objetos em Java. Ele consiste em proteger os dados de uma classe, permitindo acesso apenas por métodos específicos. Essa prática aumenta a segurança, organização e manutenção do código.

    No encapsulamento, os atributos geralmente são definidos como private, impedindo acesso direto externo. Para manipular esses dados, utilizam-se métodos get e set, responsáveis por leitura e alteração controlada das informações.

    Aplicar encapsulamento torna o sistema mais confiável e modular. Além disso, facilita futuras alterações sem comprometer outras partes da aplicação, tornando o código mais profissional e reutilizável.

    Agora é a sua vez:

    Pratique criando classes encapsuladas e implemente operações CRUD em Java.

    Quanto mais você exercitar esse conceito, mais preparado estará para desenvolver aplicações robustas e seguras.

    // Importa a classe ArrayList para armazenar objetos dinamicamente
    import java.util.ArrayList;
    
    
    // Importa a classe Scanner para leitura de dados do usuário
    import java.util.Scanner;
    
    
    // Classe que representa o objeto Pessoa
    class Pessoa {
    
    
      // Atributo privado para aplicar encapsulamento
      private String nome;
    
    
      // Atributo privado para armazenar a idade
      private int idade;
    
    
      // Método GET para retornar o nome
      public String getNome() {
          return nome;
      }
    
    
      // Método SET para definir o nome
      public void setNome(String nome) {
          this.nome = nome;
      }
    
    
      // Método GET para retornar a idade
      public int getIdade() {
          return idade;
      }
    
    
      // Método SET para definir a idade
      public void setIdade(int idade) {
          this.idade = idade;
      }
    }
    
    
    // Classe principal do sistema
    public class Main {
    
    
      // Método principal do programa
      public static void main(String[] args) {
    
    
          // Cria um Scanner para entrada de dados
          Scanner scanner = new Scanner(System.in);
    
    
          // Cria uma lista para armazenar pessoas
          ArrayList<Pessoa> lista = new ArrayList<>();
    
    
          // Variável de controle do menu
          int opcao;
    
    
          // Estrutura de repetição do sistema
          do {
    
    
              // Exibe o menu do CRUD
              System.out.println("\n1 - Cadastrar");
              System.out.println("2 - Listar");
              System.out.println("3 - Atualizar");
              System.out.println("4 - Remover");
              System.out.println("0 - Sair");
    
    
              // Lê a opção escolhida
              opcao = scanner.nextInt();
    
    
              // Limpa o buffer do Scanner
              scanner.nextLine();
    
    
              // Verifica a opção escolhida
              switch(opcao) {
    
    
                  // CREATE - Cadastro
                  case 1:
    
    
                      // Cria um novo objeto Pessoa
                      Pessoa p = new Pessoa();
    
    
                      // Solicita o nome
                      System.out.println("Digite o nome:");
    
    
                      // Define o nome usando encapsulamento
                      p.setNome(scanner.nextLine());
    
    
                      // Solicita a idade
                      System.out.println("Digite a idade:");
    
    
                      // Define a idade usando encapsulamento
                      p.setIdade(scanner.nextInt());
    
    
                      // Limpa buffer
                      scanner.nextLine();
    
    
                      // Adiciona a pessoa na lista
                      lista.add(p);
    
    
                      // Mensagem de sucesso
                      System.out.println("Pessoa cadastrada!");
    
    
                      break;
    
    
                  // READ - Listagem
                  case 2:
    
    
                      // Percorre toda a lista
                      for(int i = 0; i < lista.size(); i++) {
    
    
                          // Exibe os dados da pessoa
                          System.out.println(
                              i + " - " +
                              lista.get(i).getNome() +
                              " | " +
                              lista.get(i).getIdade()
                          );
                      }
    
    
                      break;
    
    
                  // UPDATE - Atualização
                  case 3:
    
    
                      // Solicita o índice
                      System.out.println("Digite o índice:");
    
    
                      // Lê o índice
                      int indiceAtualizar = scanner.nextInt();
    
    
                      // Limpa buffer
                      scanner.nextLine();
    
    
                      // Verifica se o índice existe
                      if(indiceAtualizar < lista.size()) {
    
    
                          // Solicita novo nome
                          System.out.println("Novo nome:");
    
    
                          // Atualiza o nome
                          lista.get(indiceAtualizar)
                               .setNome(scanner.nextLine());
    
    
                          // Solicita nova idade
                          System.out.println("Nova idade:");
    
    
                          // Atualiza a idade
                          lista.get(indiceAtualizar)
                               .setIdade(scanner.nextInt());
    
    
                          // Limpa buffer
                          scanner.nextLine();
    
    
                          // Mensagem de sucesso
                          System.out.println("Pessoa atualizada!");
                      }
    
    
                      break;
    
    
                  // DELETE - Remoção
                  case 4:
    
    
                      // Solicita o índice
                      System.out.println("Digite o índice:");
    
    
                      // Lê o índice
                      int indiceRemover = scanner.nextInt();
    
    
                      // Limpa buffer
                      scanner.nextLine();
    
    
                      // Verifica se o índice existe
                      if(indiceRemover < lista.size()) {
    
    
                          // Remove a pessoa da lista
                          lista.remove(indiceRemover);
    
    
                          // Mensagem de sucesso
                          System.out.println("Pessoa removida!");
                      }
    
    
                      break;
    
    
                  // Encerramento do sistema
                  case 0:
    
    
                      // Exibe mensagem de saída
                      System.out.println("Sistema encerrado!");
    
    
                      break;
    
    
                  // Caso a opção seja inválida
                  default:
    
    
                      // Exibe mensagem de erro
                      System.out.println("Opção inválida!");
              }
    
    
          // Continua enquanto a opção for diferente de 0
          } while(opcao != 0);
    
    
          // Fecha o Scanner
          scanner.close();
      }
    }
    
    Compartilhe
    Comentários (0)