Classes e Objetos em Java: Guia Prático
Classes e Objetos em Java
Descubra como o modelo de classe e objeto do Java transforma conceitos do mundo real em código reutilizável.
Java é fundamentalmente orientado a objetos. Ele divide problemas complexos em entidades gerenciáveis e auto-contidas — objetos — cada um com estado e comportamento.
Um objeto pode ser qualquer coisa que guarde dados (estado) e ofereça ações (comportamento). Por exemplo, uma bicicleta tem:
- Estados: parado, primeira marcha, etc.
- Comportamentos: frear, acelerar, etc.
Antes de mergulharmos em objetos, vamos explorar o modelo que os define: uma classe.
Classe em Java
Uma classe é o modelo a partir do qual objetos são instanciados. Pense nela como uma planta de casa que especifica andares, portas e janelas. Múltiplas casas podem ser construídas da mesma planta, assim como muitos objetos podem ser criados de uma única classe.
Criando uma Classe em Java
Defina uma classe com a palavra-chave class:
class NomeDaClasse {
// campos
// métodos
}
Campos (variáveis) guardam o estado de um objeto, enquanto métodos encapsulam seu comportamento.
- Campos armazenam dados.
- Métodos realizam operações.
Exemplo: uma classe Bicycle.
class Bicycle {
// estado
private int gear = 5;
// comportamento
public void braking() {
System.out.println("Funcionamento do Freio");
}
}
Aqui, Bicycle é um protótipo. Múltiplas instâncias de bicicleta podem ser criadas, cada uma compartilhando a mesma estrutura mas guardando dados independentes.
Nota: private e public são modificadores de acesso que controlam visibilidade. Para mais detalhes, veja modificadores de acesso Java.
Objetos em Java
Um objeto é uma instância de uma classe. Por exemplo, Bicycle é a classe, e MountainBicycle, SportsBicycle, TouringBicycle, etc., são objetos distintos derivados daquela classe.
Criando um Objeto em Java
Instancie um objeto com a palavra-chave new e o construtor da classe:
nomeDaClasse objeto = new nomeDaClasse(); // Para Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
Construtores são métodos especiais que compartilham o nome da classe. Para leitura adicional, explore Construtores Java.
Nomes como sportsBicycle e touringBicycle servem como referências para suas respectivas instâncias.
Múltiplas instâncias da mesma classe podem coexistir sem interferir umas nas outras.
Nota: Campos e métodos de classe são coletivamente conhecidos como membros.
Acessando Membros de uma Classe
Use o operador ponto com uma referência de objeto para alcançar seus membros:
class Bicycle {
int gear = 5;
void braking() {
// ...
}
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();
Aqui, sportsBicycle acessa o campo gear e invoca o método braking().
- sportsBicycle.gear – lê o valor da marcha.
- sportsBicycle.braking() – chama a rotina de freio.
No próximo capítulo, exploraremos métodos Java em profundidade.
Abaixo está um exemplo completo que une esses conceitos.
Exemplo: Classes e Objetos em Java
class Lamp {
// Rastreia se a lâmpada está acesa
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Luz acesa? " + isOn);
}
void turnOff() {
isOn = false;
System.out.println("Luz acesa? " + isOn);
}
}
class Main {
public static void main(String[] args) {
Lamp led = new Lamp();
Lamp halogen = new Lamp();
led.turnOn();
halogen.turnOff();
}
}
Saída:
Luz acesa? true Luz acesa? false
Neste programa, Lamp define uma variável de instância isOn e dois métodos que a manipulam. A classe Main cria dois objetos lâmpada — led e halogen — e invoca seus métodos independentemente.
Cada objeto mantém sua própria cópia de isOn, garantindo que operações em uma lâmpada não afetem a outra.
Exemplo: Criando Objetos Dentro da Mesma Classe
Objetos também podem ser instanciados dentro da mesma classe que os define. Veja como:
class Lamp {
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Luz acesa? " + isOn);
}
public static void main(String[] args) {
Lamp led = new Lamp();
led.turnOn();
}
}
Saída
Luz acesa? true
Este padrão é útil para pequenas demonstrações ou classes utilitárias onde a lógica principal reside dentro da mesma classe.
Java
- Classes e Objetos em C++: Guia Prático de Programação Orientada a Objetos
- Variáveis e Literais em Java: Guia Completo
- Entendendo a Palavra-chave final em Java: Variáveis, Métodos e Classes
- Operador instanceof em Java: Guia Completo
- Classes e Métodos Abstratos em Java: Guia Completo
- Dominando Classes Aninhadas e Internas em Java: Tipos, Exemplos e Boas Práticas
- Entendendo Classes Aninhadas Estáticas em Java: Uso, Diferenças e Exemplos
- Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
- Padrão Singleton em Java Explicado: Como Implementar e Usar com Segurança
- Dominando Reflection em Java: Inspecionando Classes, Métodos e Campos em Tempo de Execução