Anatomia de uma Classe Java

0:00 / 0:00

Depois de entender que a classe é o molde e o objeto é a instância, o próximo passo é aprender a abrir um arquivo Java e reconhecer as peças. Algumas aparecem antes da classe, como package e import. Outras aparecem dentro dela, como atributos, construtores, métodos e modificadores de acesso.

Visão geral

package br.xt.app.departamento.produto;

import java.math.BigDecimal;

public class Produto {
    private String nome;
    private BigDecimal preco;

    public Produto(String nome, BigDecimal preco) {
        this.nome = nome;
        this.preco = preco;
    }

    public String getNome() {
        return nome;
    }

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

Esse arquivo mostra a estrutura básica que aparece em muitas classes: endereço no projeto, dependências, declaração da classe, estado interno, nascimento do objeto e comportamentos públicos.

Package — onde a classe mora

O package informa o caminho lógico da classe dentro do projeto. Ele ajuda o Java a organizar nomes e separar áreas do sistema.

package br.xt.app.departamento.produto;

Na prática, quando você vê esse trecho, leia como: esta classe pertence ao pacote de produto dentro do módulo departamento.

Import — o que vem de fora

O import indica classes que este arquivo usa, mas que foram declaradas em outro pacote.

import java.math.BigDecimal;

Aqui, a classe vai usar BigDecimal, um tipo comum para valores numéricos que precisam de mais cuidado, como preço.

Declaração da classe

A declaração da classe abre o molde:

public class Produto {
    // corpo da classe
}
TrechoO que significa
publicOutras partes do sistema podem acessar essa classe.
classIndica que estamos declarando uma classe.
ProdutoNome da classe. Por convenção, começa com letra maiúscula.

Atributos — estado do objeto

Atributos são os dados guardados dentro do objeto.

private String nome;
private BigDecimal preco;

O private protege o estado interno. Quem está fora da classe não mexe diretamente nesses campos; precisa passar pelos métodos que a classe oferece.

Construtor — como o objeto nasce

O construtor é chamado quando alguém usa new. Ele prepara o objeto no momento em que ele nasce.

public Produto(String nome, BigDecimal preco) {
    this.nome = nome;
    this.preco = preco;
}

O construtor tem o mesmo nome da classe e não declara tipo de retorno. O this aponta para o próprio objeto que está sendo criado.

Métodos — comportamento da classe

Métodos representam ações ou consultas que o objeto sabe fazer.

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}
TrechoLeitura prática
publicO método pode ser chamado de fora da classe.
StringO método devolve um texto.
voidO método executa algo, mas não devolve valor.
return nomeDevolve o valor do atributo nome.
String nomeParâmetro recebido pelo método.

Modificadores de acesso

Modificadores de acesso definem quem consegue enxergar ou usar uma classe, atributo, construtor ou método.

ModificadorLeitura simplesUso comum
publicAberto para outras partes do sistema.Classes principais, métodos de uso externo.
privateVisível apenas dentro da própria classe.Atributos e métodos internos.
protectedVisível no pacote e para classes filhas.Base de herança, quando uma filha precisa reaproveitar algo.
padrãoSem palavra escrita; visível dentro do mesmo pacote.Classes e métodos de uso interno do pacote.

A pergunta prática é: quem precisa acessar isso? Se só a própria classe usa, private costuma fazer mais sentido. Se outras partes precisam chamar, aí o acesso pode ser public.

Como isso aparece no projeto

Quando você abrir uma classe como DepartamentoProdutoBean, DepartamentoHome ou DepartamentoManager, tente ler nessa ordem:

  1. Qual é o package?
  2. Quais imports aparecem?
  3. Qual é o nome da classe?
  4. Quais atributos guardam estado?
  5. Existe construtor?
  6. Quais métodos formam o comportamento?
  7. O que está public, private, protected ou sem modificador?

Lição geral

Uma classe Java não é um bloco único para decorar. Ela tem peças. Primeiro vem a localização, depois as dependências, depois o molde em si, com estado, nascimento e comportamento.

Quando essa anatomia fica clara, os próximos assuntos, como encapsulamento, herança e polimorfismo, ficam bem mais fáceis de enxergar no código real.