Escolar Documentos
Profissional Documentos
Cultura Documentos
Classes e Objetos
Nós já definimos classes e objetos na aula passada, mas como
podemos dizer em linhas gerais o que são esses dois
componentes?
Slide 2 | Porgramação I
portanto a mesma dá forma e diz o que um objeto terá e como
ele irá funcionar;
Classes e Objetos
Slide 3 | Porgramação I
Quais características as bicicletas tem em comum?
Classes e Objetos
• Rodas;
Slide 4 | Porgramação I
• Tamanho;
• Velocidade (se estiver parada, a velocidade é zero);
• Marchas (ou não);
• Modelo, marca, cor, material, etc.
Classes e Objetos
Slide 5 | Porgramação I
Quais comportamentos elas tem em comum?
Classes e Objetos
Slide 6 | Porgramação I
Quais comportamentos elas tem em comum?
• Aceleram;
Classes e Objetos
Slide 7 | Porgramação I
Quais comportamentos elas tem em comum?
• Aceleram; (essas duas características
• Freiam; afetam a velocidade certo)?
Classes e Objetos
Slide 8 | Porgramação I
Quais comportamentos elas tem em comum?
• Aceleram;
• Freiam;
Logo, as bicicletas também
• Viram a direita e a esquerda; devem ter a característica
“direção” certo?
Classes e Objetos
Slide 9 | Porgramação I
Quais comportamentos elas tem em comum?
• Aceleram;
• Freiam;
• Viram a direita e a esquerda;
Quando possuem a caraterística
• Mudam marcha;
“Marcha”!
• etc.
Classes e Objetos
Slide 10 | Porgramação I
Toda bicicleta terá essas características. Se uma delas faltar, não
será bicicleta.
Classes e Objetos
Slide 11 | Porgramação I
Ou seja, para ser uma bicicleta, é necessário um molde, um
padrão, uma forma de fazer bicicletas. Isso será chamado de
classe.
Cada bicicleta criada a partir deste molde, deste padrão será
chamado de objeto.
São características da Orientação a
Objetos:
Classes e Objetos
• Qualquer coisa é um objeto;
• Objetos realizam tarefas através da
requisição de serviços;
• Cada objeto pertence a uma
determinada classe;
• Uma classe agrupa objetos similares;
• Uma classe possui comportamentos
Slide 12 | Porgramação I
associados ao objeto;
• Classes são organizadas em
hierarquias.
Uma classe é uma estrutura que abstrai um conjunto de objetos
com características similares. Lembre-se da bicicleta: as bmx, as
mountain bikes, as infantis e outras possuem características
similares e podem ser agrupadas em uma estrutura chamada
Classes e Objetos
bicicleta.
Slide 13 | Porgramação I
O objeto é uma instancia da classe. É algo criado a partir da classe
que possui característica e funcionalidades que são descritas na
classe.
Classes e Objetos
Slide 14 | Porgramação I
O objeto é uma instancia da classe. É algo criado a partir da classe
que possui característica e funcionalidades que são descritas na
classe.
Classes e Objetos
Slide 15 | Porgramação I
Vamos para um exemplo de computação.
Classes e Objetos
de arquivo, de impressão, de entrada de dados etc. São exemplos
de objetos.
Slide 16 | Porgramação I
Em Java, para criar uma classe é bem fácil, observe:]
Classes e Objetos
public class Bicicleta {
Slide 17 | Porgramação I
Para criar uma classe em Java, usamos a palavra-chave class
seguida pelo nome da classe que desejamos criar. Observe que a
primeira letra da classe sempre será escrita em maiúscula por
questões de padronização.
Para criar um objeto da classe Bicicleta, a sintaxe é a seguinte:
Classes e Objetos
Exemplo:
Slide 18 | Porgramação I
O objeto é criado por meio do comando new. O exemplo anterior
criou um objeto chamado “mountainBike” da classe Bicicleta.
As classes, em geral, possuem o que chamamos de atributos e
métodos:
Classes e Objetos
Atributos:
Cor
Quantidade de rodas
Quantidade de Vidros
Quantidade de Faróis
Slide 19 | Porgramação I
Tipo de vidro (fumê ou não)
Tipo de motor (1.0 ou
maior)
Etc.
As classes, em geral, possuem o que chamamos de atributos e
métodos:
Classes e Objetos
Métodos:
Abrir porta;
Acelerar;
Frear;
Mudar direção;
Mudar Marcha;
Slide 20 | Porgramação I
Etc.
Nossa bicicleta poderia ficar assim:
public class Bicicleta {
//atributos
Classes e Objetos
String numeroDeSerie;
String lote;
String marca;
String tipo;
String direcao;
float velocidade;
float aceleracao;
int numeroDeMarchas;
int marchaAtual;
//métodos
Slide 21 | Porgramação I
void parar(){
}
void acelerar(float a){
}
void virar(String direcao){
}
void mudarAMarcha(int novaMarcha){
}
Para definir métodos, precisamos:
Classes e Objetos
1. Modifcadores: como public, private e outros.
2. O tipo de retorno: o tipo de dado do valor retornado pelo método
ou void se não há retorno.
Slide 22 | Porgramação I
3. O nome do método.
4. A lista de argumentos entre parênteses: os argumentos são
separados por vírgula, seguido pelo tipo de dados e pelo nome do
argumento. Se não houver parâmetros, usa-se os parênteses sem
parâmetros, como é o caso do método parar() na classe Bicicleta.
5. O corpo do método, entre chaves.
Mãos na massa!
Exercícios
Slide 23 | Porgramação I
Designed by Luiz Francisco
É recomendável que todo método comece por um verbo (com a
primeira letra em minúscula). Veja alguns exemplos:
correr;
Classes e Objetos
correrRapido;
getBackground;
getDados;
compareTo;
setX;
isEmpty.
Slide 24 | Porgramação I
Normalmente um nome de método é único dentro da classe.
Entretanto, um método pode ter o mesmo nome que outros
métodos. Isto é chamado de sobrecarga. Logo iremos ver este
conceito.
Quando um objeto é criado ele automaticamente recebe todos os
atributos e métodos de sua classe. Como exemplo, suponha que
a classe Janela seja definida assim:
public class Janela {
Construtores
//atributos
int posicaoX;
int posicaoY;
int largura;
int altura;
String tipo;
// outros atributos
//métodos
Slide 25 | Porgramação I
void maximizar() {
}
void minimizar() {
}
void mover() {
}
}
Para criar um novo objeto, usamos o comando new.
Construtores
No exemplo da classe Janela, um novo objeto é criado na
posição X = 100, Y=100, com altura e largura igual a 50, do tipo
“formulário”. Ou seja, todo objeto que for criado desta classe terá
inicialmente estes valores. E este é o objetivo do construtor.
Slide 26 | Porgramação I
//construtor
Janela(){
posicaoX = 100;
posicaoY = 100;
largura = 50;
altura = 50;
tipo = "Formulario";
}
Não é uma boa prática criar objetos e deixar suas variáveis de
instâncias sem serem inicializadas. Aliás, também não é uma boa
prática deixar qualquer variável sem um valor inicial.
Construtores
Janela janelaPrincipal = new Janela();
Slide 27 | Porgramação I
Portanto, janelaPrincipal terá os valores definidos conforme o
construtor foi criado.
Toda vez que uma janela é criada no Windows por exemplo, ela
receberá uma posição na tela por padrão, uma altura, uma
largura, tipo etc.
Construtores
objeto é criado e serve principalmente para inserir valores nas
variáveis de instância da classe. Tenha o hábito de sempre criar
pelo menos um construtor para suas classes
Slide 28 | Porgramação I
As declarações de construtores se parecem com declarações de
métodos, exceto que eles têm exatamente o mesmo nome da
classe e não possuem tipos de retorno. Veja novamente a classe
Janela:
public class Janela {
//atributos
Construtores
int posicaoX;
int posicaoY;
int largura;
int altura;
String tipo;
// outros atributos
//constutor
Janela(){
Slide 29 | Porgramação I
posicaoX = 100;
posicaoY = 100;
largura = 50;
altura = 50;
tipo = "Formulario";
}
//métodos
void maximizar() { }
void minimizar() { }
void mover() { }
}
Mãos na massa!
Exercícios
Slide 30 | Porgramação I
Designed by Luiz Francisco
“Encapsulamento é o processo de esconder todos os
detalhes de um objeto que não contribuem para suas
características essenciais.” – Grady Booch
Encapsulamento
Slide 31 | Porgramação I
Encapsulamento
Slide 32 | Porgramação I
Imagine um ciclista durante uma prova.
Encapsulamento
Você acha que ele precisa saber o que ocorre
com os mecanismos, catracas, engrenagens da
bicicleta para que a marcha seja mudada?
Slide 33 | Porgramação I
Imagine um ciclista durante uma prova.
Encapsulamento
Você acha que ele precisa saber o que ocorre
com os mecanismos, catracas, engrenagens da
bicicleta para que a marcha seja mudada?
Slide 34 | Porgramação I
marcha mudada!
Outro exemplo:
Encapsulamento
considere uma Conta Bancária como uma
classe. Quando você vai realizar uma operação
(um saque, depósito) você não precisa, e nem
quer saber, quais são os detalhes internos que
ocorrem no banco, só quer realizar as
Slide 35 | Porgramação I
operações adequadamente. Logo, os
processos são ocultos e encapsulados em um
nome: uma Conta, uma Bicicleta etc.
Alguns benefícios do encapsulamento:
Encapsulamento
• Permitir mudanças internas sem afetar as interfaces
externas;
• Facilidade de manutenção.
Slide 36 | Porgramação I
O usuário não precisa saber quais são as variáveis
de instância de uma classe, basta saber quais são
os métodos que ela possui e quais deles estão
Encapsulamento
disponíveis para uso.
Slide 37 | Porgramação I
componente.
No caso da Bicicleta, teríamos como serviços os
métodos parar, acelerar, virar, mudarAMarcha. No caso
da Janela, maximizar, mover, minimizar. Ou seja,
Encapsulamento
basicamente quem compõe a interface de uma classe
são seus métodos públicos.
Slide 38 | Porgramação I
Modificadores de Acesso são responsáveis por
restringir o acesso a atributos, métodos e até
Modificadores de acesso
mesmo classes.
Modificador público
Slide 39 | Porgramação I
public static void main(String[] args) {
Modificadores de acesso
•public: Pode ser acessado por qualquer classe.
Slide 40 | Porgramação I
É comum e recomendável que os campos de
uma classe sejam private. Isso signifca que eles
somente podem ser acessados diretamente por
Encapsulamento
sua classe.
Slide 41 | Porgramação I
por meio de métodos públicos que obtém o
valor para nós.
public class Janela {
//Atributos
Encapsulamento
private int altura;
private String tipo;
//outros atributos
//Construtor
Janela(){
posicaoX = 100;
posicaoY = 100;
largura = 50;
Slide 42 | Porgramação I
altura = 50;
tipo = ”Formulario”;
}
// Métodos
public void maximizar(){
//...
}
}
Mão na massa!
Modificadores de acesso
Crie uma classe Ponto, com a capacidade de armazenar a
localização de ponto no plano cartesiano, de modo que ela
possua três construtores:
•Sem parâmetros, que cria um ponto nas coordenadas
(0,0)
•Dois parâmetros de coordenadas X e Y
•Inicializa o ponto através das coordenadas de
Slide 43 | Porgramação I
um outro ponto recebido como parâmetro.
Modificadores de acesso
Implemente uma classe Pessoa que possua como atributos
nome, idade, peso (em quilogramas) e altura (em metros).
Faça com que os dados sejam inicializados através do
construtor da classe. Adicione métodos para ler e alterar
cada um dos atributos em separado, mantendo o
encapsulamento.
Atenção: Validar os dados (idade, peso e altura positivos,
Slide 44 | Porgramação I
etc).
Modificadores de acesso
Crie a classe Carro e adicione a estes os seus principais
atributos e métodos.
Lembre-se de adicionar métodos para ligar, desligar, acelerar
e frear.
Atenção: Este objeto deve ter métodos para mostrar quando
o mesmo está ligado ou desligado, isto também pode ser
feito na própria ação de ligar e desligar.
Slide 45 | Porgramação I
Designed by Luiz Francisco
Mão na massa!
Modificadores de acesso
Altere a classe Pessoa para que o objeto possua um Carro.
Faça com que a pessoa consiga ligar, desligar, acelerar ou
frear o próprio carro.
Atenção: Lembre-se de manter as regras de
encapsulamento.
Slide 46 | Porgramação I
Designed by Luiz Francisco