CodeGym /Cursos /JAVA 25 SELF /Conceito de classe e objeto

Conceito de classe e objeto

JAVA 25 SELF
Nível 14 , Lição 1
Disponível

1. O que são classe e objeto

Vamos começar com uma analogia. Imagine o projeto de um carro. No desenho consta que o carro tem quatro rodas, motor, cor, bancos etc. Mas o desenho, por si só, não anda nas ruas, não faz barulho de motor e não consome gasolina. É apenas uma descrição de como o carro é.

Classe em programação é um “molde” (ou modelo) que define quais dados (campos) e ações (métodos) terão suas instâncias.

Objeto é o “carro real” montado a partir desse molde, ou seja, um exemplar concreto. Cada objeto tem seu próprio estado (por exemplo, um carro pode ser vermelho e outro azul) e comportamento: cada objeto pode executar ações definidas na classe (por exemplo, dirigir, frear, buzinar).

Exemplos do dia a dia

  • Classe: Person — descrição de que uma pessoa tem nome, idade, altura e pode falar ou correr.
  • Objetos: Vasya, Petya, Katya — pessoas concretas, cada uma com seu próprio nome e idade.
Classe Objeto 1 Objeto 2
Person
name = "Vasya" 
age = 25
name = "Katya" 
age = 30

Por que as classes são importantes?

  • Agrupar variáveis e métodos relacionados.
  • Criar quantos objetos forem necessários com a mesma estrutura, mas dados diferentes.
  • Descrever facilmente entidades complexas: por exemplo, “Conta bancária”, “Produto”, “Livro”, “Usuário”.

2. Sintaxe de declaração de classe

Em Java, uma classe é declarada com a palavra‑chave class. Em seguida vem o nome da classe (por convenção, com inicial maiúscula) e, depois, chaves, dentro das quais ficam campos e métodos.

Exemplo mais simples

public class Person {
    // Aqui ficarão os campos e os métodos
}

Explicação:

  • public — modificador de acesso.
  • class — diz ao compilador: “estou declarando uma classe”.
  • Person — nome da classe (você escolhe, mas com inicial maiúscula).

Regras importantes de nomenclatura de classes

  • O nome da classe deve começar com letra maiúscula (por exemplo, Car, Account, Book).
  • O nome da classe não pode conter espaços nem caracteres especiais, exceto sublinhado e $ (este último é raro).
  • Se o nome tiver várias palavras, use o estilo CamelCase: BankAccount, BookStore.

Onde escrever as classes?

Uma classe pode ser declarada em um arquivo separado (o mais comum: um arquivo — uma classe) ou dentro de outra classe (falaremos de classes aninhadas mais adiante).

Por exemplo, o arquivo Person.java:


public class Person {
    // campos e métodos
}

3. Campos e métodos da classe (resumo)

Até agora apenas declaramos a classe, mas ela está vazia — como uma caixa sem conteúdo. Vamos adicionar “propriedades” (campos) e “ações” (métodos).

Campos (variáveis dentro da classe)

Os campos descrevem quais dados cada objeto dessa classe terá.


public class Person {
    String name; // nome da pessoa
    int age;     // idade
}

Métodos (funções dentro da classe)

Os métodos descrevem o que o objeto sabe fazer.

public class Person {
    String name;
    int age;

    void sayHello() {
        System.out.println("Olá, meu nome é " + name + "!");
    }
}

Explicação:

  • void — o método não retorna nada (falaremos de valores de retorno depois).
  • sayHello() — nome do método; os parênteses são obrigatórios.
  • Dentro do método, é possível acessar os campos da classe (por exemplo, name).

4. Criação de um objeto

E agora — magia! Como transformar o molde em um “carro real”? Para isso, usa‑se a palavra‑chave new.

Sintaxe de criação de objeto


Person vasya = new Person();
  • Person — tipo da variável (nossa classe).
  • vasya — nome da variável (você pode escolher qualquer um).
  • new Person() — criação de um novo objeto do tipo Person.

Agora temos a variável vasya, que referencia um objeto da classe Person. Esse objeto tem seus próprios campos e métodos.

Acesso a campos e métodos

Acessamos campos e métodos usando o ponto:

vasya.name = "Vasya";
vasya.age = 25;

vasya.sayHello(); // Vai imprimir: Olá, meu nome é Vasya!

É possível criar quantos objetos você quiser

Person petya = new Person();
petya.name = "Petya";
petya.age = 30;

petya.sayHello(); // Olá, meu nome é Petya!

Cada objeto é uma “cópia” independente com seus próprios dados.

5. Conexão com os tópicos anteriores

Até a aula de hoje, declaramos todas as variáveis e métodos diretamente dentro da classe com o método main e não pensávamos em criar tipos próprios. Agora podemos criar nossos próprios “contêineres” de dados e funções.

Isso abre enormes possibilidades! Agora você pode descrever quaisquer entidades que apareçam no seu problema: clientes, produtos, contas, pedidos, animais, carros — tudo o que você imaginar. Os programas se tornam mais estruturados, legíveis e escaláveis.

Exemplo: nossa primeira classe própria

Vamos escrever uma classe simples para nosso mini‑programa — digamos, “ContaBancaria” (BankAccount). Vamos evoluir esse exemplo ao longo do curso.

public class BankAccount {
    String owner;     // titular da conta
    int balance;      // saldo da conta

    void printInfo() {
        System.out.println("Titular: " + owner + ", saldo: " + balance + " euros.");
    }
}

Agora, no método principal main (que ainda é necessário para iniciar o programa), podemos criar objetos dessa classe:

public class Main {
    public static void main(String[] args) {
        BankAccount account1 = new BankAccount();
        account1.owner = "Ivan";
        account1.balance = 1000;
        account1.printInfo(); // Titular: Ivan, saldo: 1000 euros.

        BankAccount account2 = new BankAccount();
        account2.owner = "Maria";
        account2.balance = 2000;
        account2.printInfo(); // Titular: Maria, saldo: 2000 euros.
    }
}

Atenção: cada objeto tem seus próprios valores de campos. Se você alterar o saldo de account1, isso não afetará account2.

Esquema visual: classe e objetos

graph TD
    subgraph Class
        Person["Class Person | name:String | age:int | sayHello()"]
    end

    subgraph Objects
        vasya["vasya : Person | name = 'Vasya' | age = 20"]
        petya["petya : Person | name = 'Petya' | age = 25"]
    end

    vasya --> Person
    petya --> Person

Explicação:

  • Person — é a classe (molde).
  • vasya e petya — são objetos (instâncias) criados a partir desse molde.

6. Erros comuns ao declarar classes e criar objetos

Erro № 1: Nome da classe em minúscula.
Em Java é convenção (o compilador não reclama, mas todos os programadores experientes — sim!) nomear classes com inicial maiúscula. Não escreva class person — escreva class Person.

Erro № 2: Falta de chaves.
Não se esqueça de que o corpo da classe deve sempre estar entre chaves.

public class Person // erro!
    String name;

Correto:

public class Person {
    String name;
}

Erro № 3: Tentar acessar campos e métodos da classe sem criar um objeto.
Se um método ou campo não for declarado como static, só é possível acessá‑lo por meio de um objeto:

Person.sayHello(); // erro!

Correto:

Person vasya = new Person();
vasya.sayHello();

Erro № 4: Nome do arquivo diferente do nome da classe (para uma classe public).
Se a classe for declarada como public, o nome do arquivo deve coincidir com o nome da classe:

// Arquivo Person.java
public class Person { ... }

Se o arquivo tiver outro nome, o compilador emitirá um erro.

Erro № 5: Usar variáveis da classe sem inicializar um objeto.
Os campos da classe (não static) pertencem ao objeto, não à própria classe.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION