image

Bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Iasmin Santiago
Iasmin Santiago16/10/2025 22:18
Compartilhe

Fundamentos de Java e Programação Orientada a Objetos: como aprendi a entender o código de verdade

  • #Java
  • #POO

Quando comecei a programar, meu primeiro contato foi com Python. Eu achava que programar era algo simples: escrever algumas linhas, apertar "run" e ver o resultado. Mas, ao entrar no mundo do Java, percebi que existia muito mais estrutura por trás de cada comando.

No começo, confesso: foi assustador. Tive que entender bem classes, objetos, atributos, métodos, construtores, getters e setters - tudo isso de uma vez, para conseguir criar programas. Eu tenho umas 12 folhas escritas só de teoria e algumas práticas à mão, tentando internalizar cada conceito! Mas, com o tempo, essa abordagem mais detalhista me fez entender melhor a programação, me ensinando a pensar como uma desenvolvedora de verdade.

O objetivo deste artigo é compartilhar o que aprendi sobre os Fundamentos de Java e Programação Orientada a Objetos (POO), mesclando experiência pessoal com conceitos técnicos, para ajudar quem está começando ou quer reforçar esses conceitos! Vamos lá?

🏗️ Fundamentos de Java: entendendo o básico

Aprender Java é diferente de aprender linguagens mais simples ou interpretadas, como o Python. Em Java, cada elemento do código tem uma função clara e específica. Aqui estão alguns conceitos essenciais, apenas para a gente esquentar nosso cérebro:

  • Classe: o molde ou modelo do objeto. Ela descreve quais atributos e métodos o objeto terá.
  • Objeto: uma instância (vem de instance que significa exemplo, em inglês) da classe, criado lá na memória. Um objeto é um exemplo criado de nosso molde / classe. É o que realmente "existe", na memória do computador, quando o programa roda.
  • Atributos: variáveis dentro da classe, que definem o estado do objeto. Você perceberá que ele é bem parecido com o objeto, ambos são ligados a variáveis, de certa forma.
  • Métodos: funções dentro da classe, que determinam o comportamento do objeto.
  • Variável: é um espaço, na memória do computador, que armazena um valor... é como o endereço, a etiqueta de algo, lá na memória do computador. Veremos que objeto e atributo não são variáveis, esta apenas os representará na memória! Quando o programa precisar acessar o valor do objeto, ele irá ao seu endereço, guardado pela variável.

Por exemplo, imagine uma classe Pessoa:

public class Pessoa {
  private String nome;
  private int idade;
}

Aqui, Pessoa é o tipo, nome e idade são os atributos, e a classe ainda não tem métodos, mas eles poderiam definir comportamentos como falar, andar ou apresentar seus dados.

Adendo: Minha confusão entre variável e objeto (e o que aprendi)

No começo, fiquei totalmente confusa quando escrevi:

Pessoa fulano = new Pessoa();

Eu pensei: “Se fulano é uma variável, o que é Pessoa? E o que é new Pessoa()?”

Com o tempo, entendi:

  • Pessoa (à esquerda) indica o tipo da variável, assim comoint ou String, mas nesse caso, é um tipo criado por mim.
  • fulano é a variável que vai apontar para o objeto criado. Olha aqui, o conceito de variável voltando! Ela está apontando, para o computador, seu endereço lá na memória.
  • new Pessoa() cria efetivamente o objeto na memória.

Ou seja, fulano é a "ponte" entre a minha referência no código e o objeto real que existe na memória. Esse foi um momento revelador para mim, porque foi quando comecei a diferenciar claramente tipo, variável e objeto.

⚙️ Construtores, Getters e Setters: quando Java começou a fazer sentido

Depois de entender variáveis e objetos, veio a próxima etapa: os construtores. No começo, pensei que se eu não definisse um construtor, nada funcionaria. Descobri que o Java cria um construtor padrão vazio mesmo se você não declarar nenhum. Mas para inicializar objetos com valores específicos, você precisa criar seu próprio construtor, sim.

public class Pessoa {
  private String nome;
  private int idade;

  public Pessoa() {} // construtor vazio

  public Pessoa(String nome, int idade) { // construtor com parâmetros
      this.nome = nome;
      this.idade = idade;
  }

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

  public int getIdade() { return idade; }
  public void setIdade(int idade) { this.idade = idade; }
}

Os getters e setters são métodos que permitem acessar ou modificar atributos privados de forma segura. Você notou que usamos, lá em cima, a palavra private nos atributos de nome e idade? Para podermos acessá-los / usarmos em nosso código mais para frente, aplicamos agora esses métodos. Você notou que protegemos nossos atributos de acesso? Se não escrevermos os métodos get e set, não poderemos pegar o valor deles (get é obter em inglês) e alterá-los (set é definir em inglês, nesse caso). Parabéns, você acaba de entender o que é encapsulamento!

Antes disso, eu achava que variáveis e atributos eram praticamente a mesma coisa... mas ao ver o encapsulamento, vi que há atributos, variáveis, métodos específicos e muito mais. Daí, entendemos a importância do encapsulamento: proteção e aprendizado contínuo!

🧩 A importância da POO e o que ela mudou no meu jeito de programar

A Programação Orientada a Objetos (POO) começou a fazer sentido aos poucos. Não é algo que entra na cabeça de um dia para o outro. A cada novo exercício e revisão, comecei a perceber:

  • Classes e objetos permitem organizar o código de forma clara.
  • Atributos e métodos tornam o código reutilizável e modular.
  • Construtores, getters e setters garantem segurança e flexibilidade.

Antes, eu via Java como mais difícil. Mas, na verdade, essa complexidade é o que ensina o raciocínio lógico e a disciplina de programar de forma estruturada. A experiência acima, aprendendo termos e encapsulamento, foi só o nosso começo de algo sensacional! Pode ser mais trabalhoso no início, mas no fim, o resultado é muito mais sólido! Até aqui, você já passou a ter noção de mais de 5 conceitos de POO!

☕ Java e seu jeito detalhista de ensinar programação

Continuando nossa conversa, uma coisa que percebi é que Java obriga a pensar. Diferente de Python, onde você pode escrever e rodar algo simples rapidamente, Java exige planejamento do código:

  • Cada variável precisa de um tipo.
  • Cada objeto precisa ser instanciado.
  • Cada atributo privado precisa de acesso controlado (getters e setters).

No começo, isso parece exagerado, mas depois que você internaliza, percebe que o Java ensina a programar de forma correta, fortalecendo o aprendizado em lógica de programação.

E a cada novo conceito que eu aprendia - variável, objeto, construtor, método - mais eu entendia a importância de planejar e estruturar o código antes de digitar qualquer linha.

🌟 Conclusão: meu aprendizado e convite a você, leitor pensante

Aprender Java e Programação Orientada a Objetos tem sido uma jornada cheia de descobertas. Não é apenas sobre escrever código, mas sobre compreender como cada peça do programa funciona.

Não pense que Java é difícil ou inacessível... ele é apenas detalhista e estruturado. É essa característica que faz a diferença na formação de um programador capaz de entender POO e criar sistemas bem organizados.

💬 E você? Qual parte dos Fundamentos de Java te deixou mais confuso no começo? Comenta aqui!

📚 Referências

  • Oracle Academy - Java Fundamentals - https://learn.oracle.com/ols/learning-path/java-fundamentals/55593/55578
  • Meu repositório de projetos Java - https://github.com/iasminsantiago/Java-Programming-Challenges
Compartilhe
Recomendados para você
PcD Tech Bradesco - Java & QA Developer
Riachuelo - Primeiros Passos com Java
GFT Start #7 - Java
Comentários (0)