Intro
OOP
P3
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
Um objeto é uma instância de uma classe.
Uma classe define a estrutura e comportamento de um tipo de dado, enquanto um objeto representa uma implementação específica dessa estrutura.
Os atributos de uma classe devem sempre ser públicos para que possam ser acessados diretamente.
Métodos em uma classe são usados para definir o comportamento de objetos dessa classe.
Objetos diferentes de uma mesma classe podem ter valores diferentes para os mesmos atributos.
Uma classe pode existir sem objetos, mas um objeto não pode existir sem uma classe.
Construtores são métodos utilizados para criar novos métodos dentro de uma classe.
O uso do modificador de acesso private em um atributo impede que ele seja acessado diretamente fora da classe, promovendo o encapsulamento.
Métodos de uma classe podem acessar diretamente os atributos privados da própria classe.
Se uma classe não tiver um construtor definido, o compilador Java criará automaticamente um construtor padrão sem parâmetros.
Um método sobrecarregado é um método que altera o comportamento de um método existente da classe pai.
Um construtor parametrizado é um tipo de construtor que aceita argumentos para inicializar os atributos da classe durante a criação do objeto.
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.
A sobrecarga de construtores é um exemplo de polimorfismo dinâmico.
Uma classe pode ter múltiplos construtores, cada um com diferentes números e tipos de parâmetros.
Gabarito
Verdadeiro : um objeto é uma instância de uma classe, ou seja, ele é um exemplo concreto dessa classe.
Verdadeiro : a classe define o "molde" (estrutura e comportamento), enquanto o objeto é uma implementação específica.
Falso : os atributos podem ser privados para proteger os dados, sendo acessados e modificados apenas por métodos da classe (getters e setters).
Verdadeiro : métodos definem comportamentos que os objetos da classe podem executar.
Verdadeiro : cada objeto pode ter valores específicos para seus atributos, mesmo que venham da mesma classe.
Verdadeiro : uma classe pode existir sem objetos, mas objetos são instâncias que necessitam de uma classe para serem criados.
Falso : construtores não criam métodos; eles são usados para inicializar objetos.
Verdadeiro : o modificador private impede o acesso direto, promovendo o encapsulamento.
Verdadeiro : métodos de uma classe têm acesso direto aos seus próprios atributos privados.
Verdadeiro : se não houver um construtor definido, o Java cria um construtor padrão vazio.
Falso : a descrição se refere à sobrescrita, enquanto sobrecarga é criar métodos com o mesmo nome mas parâmetros diferentes na mesma classe.
Verdadeiro : construtores parametrizados permitem inicializar atributos diretamente durante a criação do objeto.
Verdadeiro : o Garbage Collector cuida da memória, eliminando objetos sem referências.
Falso : a sobrecarga de construtores é um exemplo de polimorfismo estático (em tempo de compilação).
Verdadeiro : uma classe pode ter múltiplos construtores, facilitando a criação de objetos de maneiras diferentes.