Skip to content

Classes e Objetos

Definições

  • Classe = um molde, um blueprint, que define as propriedades (atributos) e comportamentos (métodos) que os objetos criados a partir dela terão.
    • é a definição, a estrutura genérica
    • Como um conceito abstrato
    • exemplo - planta arquitetônica de uma casa
  • Objeto = uma instância de uma classe
    • como instância de classe, o objeto é algo tangível que ocupa espaço na memória
    • quando se cria um objeto, se está criando uma "cópia" baseada na classe, com seus próprios valores para os atributos
    • Exemplo - construir uma casa baseada na planta arquitetônica
// Classe Carro
public class Carro {
    // Atributos = propriedades
    String marca;
    String modelo;
    int ano;

    // Métodos = comportamnetos
    void exibirInformacoes() {
        System.out.println("Marca: " + marca);
        System.out.println("Modelo: " + modelo);
        System.out.println("Ano: " + ano);
    }
}
public class Main {
    public static void main(String[] args) {
        // Criando um objeto do tipo Carro
        Carro meuCarro = new Carro();

        // Atribuindo valores aos atributos do objeto
        meuCarro.marca = "Toyota";
        meuCarro.modelo = "Corolla";
        meuCarro.ano = 2020;

        // Chamando o método do objeto
        meuCarro.exibirInformacoes();
        // Saída esperada
        // Marca: Toyota
        // Modelo: Corolla
        // Ano: 2020
    }
}

Classes - componentes principais

  • Atributos = variáveis que definem as características do objeto
    • Na classe Carro, os atributos são marca, modelo e ano
  • Métodos = funções definidas dentro de uma classe que descrevem os comportamentos do objeto
    • No exemplo, o método exibirInformacoes exibe as informações do carro

Objetos - criação e uso

  • Criar objeto = palavra-chave new + nome da classe
  • instanciar uma classe
Carro meuCarro = new Carro();
  • acessar os atributos e métodos do objeto = operador de ponto .
    meuCarro.marca = "Ford";
    meuCarro.exibirInformacoes();

Classes x Objetos

Aspecto Classe Objeto
Definição Um molde, ou blueprint, que define a estrutura e o comportamento Uma instância específica de uma classe
Propósito Descrever as propriedades (atributos) e os comportamentos (métodos) comuns de um grupo de objetos Representar uma entidade específica com valores concretos dos atributos
Exemplo Carro (classe que descreve um veículo genérico) meuCarro (um objeto específico da classe Carro)
Declaração Feita usando a palavra-chave class (e.g., class Carro) Criado com a palavra-chave new (e.g., new Carro())
Atributos São definidos na classe como variáveis São armazenados no objeto com valores específicos
Métodos Definidos na classe para descrever o comportamento Chamados em um objeto para realizar ações
Espaço na Memória Não ocupa espaço na memória, apenas define a estrutura Ocupa espaço na memória, armazenando dados específicos
Acesso Não acessível diretamente, apenas usada para criar objetos Acessível diretamente após a criação
Natureza Conceito abstrato Instância concreta e tangível

Exercícios

Questões

  1. Um objeto é uma instância de uma classe.
  2. Uma classe define a estrutura e comportamento de um tipo de dado, enquanto um objeto representa uma implementação específica dessa estrutura.
  3. Os atributos de uma classe devem sempre ser públicos para que possam ser acessados diretamente.
  4. Métodos em uma classe são usados para definir o comportamento de objetos dessa classe.
  5. Objetos diferentes de uma mesma classe podem ter valores diferentes para os mesmos atributos.
  6. Uma classe pode existir sem objetos, mas um objeto não pode existir sem uma classe.
  7. Construtores são métodos utilizados para criar novos métodos dentro de uma classe.
  8. O uso do modificador de acesso private em um atributo impede que ele seja acessado diretamente fora da classe, promovendo o encapsulamento.
  9. Métodos de uma classe podem acessar diretamente os atributos privados da própria classe.
  10. Se uma classe não tiver um construtor definido, o compilador Java criará automaticamente um construtor padrão sem parâmetros.
  11. Um método sobrecarregado é um método que altera o comportamento de um método existente da classe pai.
  12. Um construtor parametrizado é um tipo de construtor que aceita argumentos para inicializar os atributos da classe durante a criação do objeto.
  13. Objetos são automaticamente destruídos em Java quando não há mais referências a eles, liberando memória através do processo de Garbage Collection.
  14. A sobrecarga de construtores é um exemplo de polimorfismo dinâmico.
  15. Uma classe pode ter múltiplos construtores, cada um com diferentes números e tipos de parâmetros.

Gabarito

  1. Verdadeiro: um objeto é uma instância de uma classe, ou seja, ele é um exemplo concreto dessa classe.
  2. Verdadeiro: a classe define o "molde" (estrutura e comportamento), enquanto o objeto é uma implementação específica.
  3. Falso: os atributos podem ser privados para proteger os dados, sendo acessados e modificados apenas por métodos da classe (getters e setters).
  4. Verdadeiro: métodos definem comportamentos que os objetos da classe podem executar.
  5. Verdadeiro: cada objeto pode ter valores específicos para seus atributos, mesmo que venham da mesma classe.
  6. Verdadeiro: uma classe pode existir sem objetos, mas objetos são instâncias que necessitam de uma classe para serem criados.
  7. Falso: construtores não criam métodos; eles são usados para inicializar objetos.
  8. Verdadeiro: o modificador private impede o acesso direto, promovendo o encapsulamento.
  9. Verdadeiro: métodos de uma classe têm acesso direto aos seus próprios atributos privados.
  10. Verdadeiro: se não houver um construtor definido, o Java cria um construtor padrão vazio.
  11. Falso: a descrição se refere à sobrescrita, enquanto sobrecarga é criar métodos com o mesmo nome mas parâmetros diferentes na mesma classe.
  12. Verdadeiro: construtores parametrizados permitem inicializar atributos diretamente durante a criação do objeto.
  13. Verdadeiro: o Garbage Collector cuida da memória, eliminando objetos sem referências.
  14. Falso: a sobrecarga de construtores é um exemplo de polimorfismo estático (em tempo de compilação).
  15. Verdadeiro: uma classe pode ter múltiplos construtores, facilitando a criação de objetos de maneiras diferentes.