Prévia do material em texto
Algoritmos e Programação II
(Classes e Objetos)
Prof. Fernando Almeida
Prof. Alexandre Mignon
Classes e Objetos
● Em linguagens de programação orientada a
objetos como Java, os dois conceitos mais
importantes são classes e objetos
● Os objetos armazenam dados e fornecem
os métodos para acessar e modificar esses
dados.
● Uma classe define o tipo do objeto, bem
como os tipos de operações que executa
o Serve como um “modelo” para objetos daquele tipo
● Todo objeto é instância de uma classe
Classes e Objetos
● Os membro críticos de uma classe Java são
os seguintes:
o Dados de objetos Java são armazenados em
atributos (também chamados de variáveis de
instância)
o As operações que podem atuar sobre os dados e
que expressam as “mensagens” às quais os objetos
respondem são chamadas de métodos. Eles
definem o comportamento dos objetos daquela
classe
Objetos
● Objetos possuem:
o Identidade (nome do objeto)
o Características (estado do objeto - atributos)
o Comportamento (funções do objeto)
● Em POO tudo são objetos
● Um programa possui vários objetos
enviando mensagens uns aos outros
● Todo objeto possui um tipo (descreve seus
dados)
Objetos - Propósito
● Representar uma entidade do mundo real
em software
Identidade -
- Bicicleta
Caracterísitcas
- número de marchas
- marcha atual
- cadência do pedal
Comportamento
- acelerar
- frear
- mudar marcha
- reduzir velocidade
Objetos - Propósito
● Representar uma entidade do mundo real
em software
Identidade -
- Cachorro
Caracterísitcas
- nome
- cor
- raça
- tamanho
Comportamento
- latir
- cavar
- cheirar
- comer
Classes
● São especificações para objetos
● Representa um tipo de dados complexo
"É uma abstração que descreve as
propriedades relevantes de uma aplicação em
termos de sua estrutura – DADOS – e seu
comportamento – OPERAÇÕES"
Classes
● Modelo ou especificação para objetos
● Composição
o Variáveis ou atributos
Contém dados
o Funções ou métodos
Controle de acesso aos dados
● Depois de criar uma classe, ela precisa ser
instancia antes de ser utilizada
o Instâncias de classes são chamados objetos
Exemplo - Classe Motor
Atributos
-Potência
-Velocidade
-Consumo
-Tensão
-Litros
-Velocidade
-Temperatura
...
Métodos
-Acelerar
-Ligar
-Desligar
Alterar
Velocidade
-Obter
Temperatura
...
Classes e Objetos
Funcionário
nome
nascimento
salario
...
informar salario
calcular idade
obter nome
...
funcionario1
nome = José
nascimento = 1/1/1965
salario = 4.000
...
informar salario
calcular idade
obter nome
...
funcionario2
nome = Maria
nascimento = 2/2/1975
salario = 5.000
...
informar salario
calcular idade
obter nome
...
Classes
Objetos
Classes - Linguagem Java
● Uma classe pode ser vista como o projeto
de um objeto
"Abstrações utilizadas para representar um
conjunto de objetos com características e
comportamento idênticos"
Classe em Java
Pessoa
-nome
-altura
-sexo
-peso
-idade
Classe
em Java
class Pessoa {
String nome;
float altura;
String sexo
float peso;
int idade;
}
Exemplo de Classe em Java
public class Retangulo {
// atributos
public float base;
public float altura;
// métodos
public float calcularArea () {
return base * altura;
}
}
Classes x Objetos
● A classe Retangulo é um modelo
● Objetos do tipo Retangulo são construídos
de acordo com o modelo
public class Retangulo {
// atributos
public float base, altura;
// métodos
...
}
base
altura
3
5
base
altura
4
2
base
altura
1.25
3.55
Criando Objetos
● Para utilizar um objeto em Java, precisamos
executar dois passos:
o Declarar uma variável que referenciará o objeto:
assim como fazemos com tipos primitivos, é
necessário declarar o objeto
o Instanciar o objeto: alocar o objeto em memória.
Para isso utilizamos o operador new e um método
especial conhecido como construtor
● Exemplo
Retangulo r1; // declara a variável
r1 = new Retangulo(); //instancia o objeto
Criando Objetos
● O operador new retorna o endereço de memória do objeto criado
● Esse endereço é normalmente atribuído a uma variável referência
● Uma variável referência pode ser entendida como sendo um “ponteiro”
para um objeto
Criando Objetos
● Podemos declarar e instanciar o objeto em uma única
linha
Retangulo r1 = new Retangulo ();
● Uma vez criado o objeto, podemos acessar os seus
atributos usando a notação ponto “.”
r1.base = 3;
r1.altura = 5;
● Podemos também chamar os seus métodos usando a
notação ponto
float area = r1.calcularArea();
Criando Objetos
● Vários objetos podem ser instâncias de uma
mesma classe, mas esses objetos são
distintos
● Exemplo
Retangulo r1 = new Retangulo();
Retangulo r2 = new Retangulo();
r1.base = 3;
r1.altura = 5;
r2.base = 4;
r2.altura = 2;
base
altura
3
5
base
altura
4
2
r1
r2
Objetos
● Duas ou mais variáveis podem referenciar o
mesmo objeto
Retangulo r1 = new Retangulo();
r1.base = 3;
r1.altura = 5;
Retangulo r2 = r1;
r1 base
altura
3
5r2
Classes e Objetos - Resumo
● Classes são especificações para objetos
o Representa um tipo de dados complexo
● Classes representam:
o Atributos
Tipos de dados que compõem o objeto
O que podem armazenar...
o Métodos
Procedimentos que o objeto pode executar
O que podem fazer...
Classes e Objetos - Exemplo
Construtores
● Toda classe deve ter pelo menos um
construtor
o Responsável pela criação do objeto
o A chamada do construtor deve ser precedida pela
palavra reservada new
● Se nenhum construtor for declarado o
compilador adiciona automaticamente o
construtor padrão
o Construtor vazio e sem parâmetros
Construtores
● Pode-se definir vários construtores para
uma classe
o Devem ter assinaturas diferentes (parâmetros)
● Se for declarado algum construtor, o vazio
só existe quando declarado
o Construtor vazio só não precisa ser declarado se
não existe outro construtor
Exemplo - Construtor
public class Retangulo {
// atributos
public float base, altura;
// definição de um construtor
public Retangulo (float b, float a) {
base = b;
altura = a;
}
}
public class TestaRetangulo {
public static void main (String [] args) {
Retangulo r = new Retangulo (3, 4);
}
}
Modificadores de Acesso
● Indica como uma classe pode ser utilizada
por outras Classes ou outras Aplicações
Modificadores Significado
public O conteúdo público da classe pode ser utilizado livremente por outras
classes do mesmo pacote ou de outro pacote
package O conteúdo público da classe pode ser utilizado livremente por outras
classes do mesmo pacote
private (privado) Conteúdo privado para as instâncias da classe. Pode ser acessado
pela classe inteira, mas não fora dela
protected (protegidos) Os atributos e métodos são acessíveis nos métodos da própria classe
e suas subclasses
Métodos getters e setters
● Método acessor - get()
o getNomeMetodo()
o Exemplo:
public int getIdade()
● Método modificador - set()
o setNomeMetodo()
o Exemplo:
public void setIdade(int novaIdade)
● Mantenha os dados da classe como
privados (encapsulamento)
Exemplo em Java
public class Retangulo {
// atributos
private float base;
private float altura;
// métodos
public float calcularArea () {
return base * altura;
}
public float getBase () {
return base;
}
public void setBase (float b) {
base = b;
}
Exemplo em Java
public float getAltura () {
return altura;
}
public void setAltura (float a) {
altura = a;
}
}
Exemplo em Java
public class TestaRetangulo {
public static void main (String [] args) {
Retangulo r = new Retangulo();
r.setBase(5);
r.setAltura(2);
float area = r.calcularArea();
System.out.println(“Base: ” + r.getBase());
System.out.println(“Altura: ” + r.getAltura());
System.out.println(“Area: ” + area);
}
}
Representação UML
br.senac.toolbox
Pacote
Classe
Atributos
Métodos
Exercícios
● Todos os exercícios devem ter:
o Classe
o Atributos
o Método Construtoro Métodos acessores e modificadores
o Métodos de operação
Exercício 1
● Crie uma classe Lâmpada que instancie um
objeto e utilize seus métodos
● Imprima o valor do objeto
Exercício 2
● Criar em Java uma classe Contador, que
encapsule um valor usado para a contagem
de itens ou eventos. A classe deve oferecer
métodos que devem:
o Zerar;
o Incrementar;
o Retornar o valor do contador.
Exercício 3
● Um aluno possui um nome e três notas.
Como operações queremos calcular a média
aritmética do aluno e saber a sua situação
que pode ser “Aprovado” ou “Reprovado”.
Um aluno tem situação “Aprovado” se sua
média for maior ou igual a 6.0.
● Criar uma classe em Java para implementar
um aluno
● Criar um programa para testar a classe
criada.