Introdução a Programação Orientada a Objetos

Propaganda
Programação II
Programação Orientada a
Objetos
Disciplina
● Ementa
○ Estudo do paradigma orientado a objetos e
tópicos relacionados. Ambientes de
Desenvolvimento.
● Carga horária
○ 120 horas / 144 aulas
● Máximo de faltas
○ 36
Disciplina
● Contato
○ [email protected]
● Horário de atendimento
○ sextas-feiras: 8:00 às 12:00 horas
● Materiais
○ www.merlin.pro.br
Disciplina
● Conteúdo da disciplina
○ Classes e objetos
○ Atributos e métodos / sobrecarga e sobrescrita
○ Herança
○ Modificadores
○ Interfaces / classes abstratas
○ Programação genérica
○ Exceções
Orientação a Objetos
Orientação a Objetos
● Paradigma de desenvolvimento
● Baseado em classes e objetos
● Vantagens
○ Facilita o reuso
○ Facilita a leitura do código
● Se for Java… consome muita memória
Classes
● Classes são as estruturas que definem os atributos e
comportamentos comuns a um determinado elemento
● Atributos: características dos objetos
● Comportamento: ação executada por um objeto que
pode alterar seu estado interno ou enviar uma
mensagem
● Mensagem: chamada a método
Classes
● Nome da classe deve iniciar com maiúscula
● O arquivo de código fonte deve ter o mesmo nome da
classe com a extensão .java
● Tudo deve estar dentro da classe (exceto declaração de
pacote e importações)
Classes
● Exemplo
public class Carro {
// atributos
// métodos
}
Atributos
● Atributos são variáveis de instância
○ São características que cada objeto terá
● Podem ser tipos primitivos ou classes Java
● Não confundir com variáveis locais
Atributos
● Exemplo
public class Carro {
String marca;
int velocidade;
}
// classe
// tipo primitivo
Métodos
●
●
●
●
Métodos são ações que os objetos podem executar
Podem alterar o estado do objeto
Podem receber parâmetros e retornar valor
Exemplo
void acelerar ( ) {
velocidade++;
}
Métodos
public class Carro {
String marca;
int velocidade;
void acelerar( ) {
velocidade++;
}
}
// classe
// tipo primitivo
Métodos
public class Carro {
String marca;
int velocidade;
void acelerar( ) {
velocidade++;
}
}
// classe
// tipo primitivo
Métodos
● Métodos têm acesso aos atributos da classe
class Carro {
int ano;
int velocidade;
void acelerar(int velocidade ) {
velocidade++;
}
}
Métodos
● Métodos podem receber parâmetros
class Carro {
int ano;
int velocidade;
public Carro(int ano) {
this.ano = ano;
}
}
Construtores
●
●
●
●
São “métodos” que criam objetos da classe
Têm o mesmo nome da classe sem o tipo de retorno
Podem receber parâmetros
Variáveis de instância devem ser inicializadas dentro
dos construtores
Construtores
public class Carro {
String marca;
int velocidade;
// classe
// tipo primitivo
public Carro ( ) {
marca = “ “;
velocidade = 0;
}
}
Instanciando Objetos
● Instanciar significa “criar” um objeto
● Cada objeto é uma instância da classe
● Cria-se objetos chamando-se o construtor
Carro carro = new Carro( );
Instanciando Objetos
Escopo das Variáveis
Ciclo de Vida de Objetos
● Um objeto passa a existir quando ele é criado (operador new)
● Um objeto deixa de existir quando ele é coletado pelo coletor de
lixo (garbage collector)
● Um objeto deixa de ser acessível
○ quando fica fora de escopo
○ quando null for atribuído à variável de referência
○ quando outro objeto for atribuído à variável de referência
Exercício
● Crie uma classe para representar uma lâmpada, com
pelo menos:
○ um atributo que indique se está acesa ou apagada
○ um construtor que inicialize os objetos “apagados”
○ um método para acender a lâmpada
○ um método para apagar a lâmpada
● Crie casos de teste para a lâmpada
Exercício
● Crie uma classe para representar um Livro com os
campos:
○
○
○
○
Título
Ano de publicação
Nome da editora
Autor
● Autor deve ser um objeto com os campos:
○
○
Código
Nome
Exercício
● Crie uma classe para representar uma Biblioteca com,
pelo menos, os métodos
○ adicionar livro
○ remover livro
○ emprestar livro
Download