Você está na página 1de 25

Introduo Programao

Orientada a Objetos
Prof. Alexandre Siqueira Dias
alexandresd@prof.una.br

Introduo
A abordagem orientada a objetos para
desenvolvimento foi inicialmente proposta no
fim dos anos 1960.
Levou quase 20 anos para que a tecnologia de
objetos se tornasse amplamente usada.
Durante os anos 1990, a engenharia de software
OO tornou-se o paradigma de escolha para
muitos construtores de produtos de software

O que a OO
Orientao a objetos

Abordagem de desenvolvimento de
software que organiza os problemas e
suas solues como um conjunto de
objetos distintos

Por que importante?


Um objeto encapsula tanto os dados
quanto o processamento que aplicados
aos dados. O que leva ao REUSO
Aumento da produtividade, diminuio
do custo de desenvolvimento e
manuteno

Motivao da Orientao a
Objetos
Estabilidade. As classes projetadas para
reutilizao tornam-se estveis
Construo de objetos mais complexos a partir de
outros j existentes, aprovados e testados
(herana)
A tendncia reutilizao faz com que o
desenvolvimento seja acelerado e de melhor
qualidade

Conceitos
Objeto

Qualquer coisa existente no mundo real, em


formato concreto ou abstrato (que exista
fsica ou conceitualmente)
Ex: aluno, mesa, professor, cadeira, caneta, conta

bancria, tela, boto em uma tela etc.

Estrutura computacional que representa um


objeto do mundo real

Conceitos
Classe

Quando identificamos caractersticas e


operaes similares em objetos distintos,
estamos realizando sua classificao, ou
seja, identificando classes
uma descrio de um conjunto de
objetos que compartilham os mesmos
atributos, operaes, relacionamentos e
semntica.

Conceitos
Classe

Descreve uma categoria genrica

Objeto

Instncia de uma classe


Estrutura de dados que representa
um membro especfico da categoria

Conceitos
Membros de uma classe

Atributos
Membros de dados ou campos
Representam as caractersticas que os objetos da

classe possuem
Cada instncia tem seus prprios valores de atributos,

mas compartilha o nome e os comportamentos dos


atributos com as outras instncias da classe
Os valores dos atributos nos ajudam a distinguir os

objetos entre si

Conceitos
Membros de uma classe

Mtodos
Membros de funes ou operaes
Representam o comportamento que os objetos da

classe possuem
Modificam o estado de um objeto ou prestam

servios a outros objetos

Um exemplo simples
Seja o contexto de automao bancria
Podemos identificar as seguintes
classes

cliente
agncia
conta
conta corrente
conta poupana
dentre outras

Um exemplo simples conta


corrente
Atributos

nmero
agncia
saldo

Mtodos

depositar
sacar
consulta saldo

Um exemplo simples conta


corrente
O cdigo a seguir mostra uma possvel
implementao para esta classe em Java
public class ContaCorrente {
private int numero, agencia;
private double saldo;
public void inicializarContaCorrente(int n, int ag) {
numero = n;
agencia = ag;
saldo = 0;
}

Um exemplo simples conta


corrente
public void sacar(double valor){
saldo = saldo - valor;
}
public void depositar(double valor){
saldo = saldo + valor;
}
public double consultarSaldo(){
return (saldo);
}

Um exemplo simples conta


corrente
Em Java, um objeto criado utilizando-se a
palavra reservada new:
ContaCorrente minhaConta;
minhaConta = new ContaCorrente();

A linha 1 cria uma rea de memria que


uma referncia para um objeto da classe
ContaCorrente
A linha 2 cria um objeto da classe
ContaCorrente e o atribui a minhaConta

Mensagens
Programas orientados a objetos so
constitudos por objetos que trocam
mensagens entre si
O envio de uma mensagem a um objeto
corresponde a invocar um mtodo de tal
objeto

Mensagens
Em:

minhaConta.inicializarContaCorrente(100,
1212);
minhaConta.depositar(1000);

os mtodos inicializarContaCorrente e
depositar so invocados
Em outras palavras, so enviadas
mensagens ao objeto minhaConta para
que este realize as operaes
inicializarContaCorrente e depositar.

Programar em OO
O simples fato de programar em
Java no significa que a aplicao
seja orientada a objetos
muito importante entender a
filosofia deste paradigma de
programao para poder obter os
seus benefcios

Exemplo Programa para calcular rea e


permetro de um retngulo
O programa abaixo funciona. Mas isso um programa OO?
import java.util.Scanner;
public class Retangulo {
public static void main(String Args[ ]) {
float altura, largura, area, perimetro;
Scanner input = new Scanner(System.in);
System.out.print("Informe a altura do retngulo: ");
altura = input.nextFloat();
System.out.print("Informe a largura do retngulo: ");
largura = input.nextFloat();
area = altura * largura;
perimetro = 2 * altura + 2 * largura;
System.out.println("A area : " + area);
System.out.println("O perimetro : " + perimetro);
}
}

Exemplo Programa para calcular rea e


permetro de um retngulo
E agora?
public class Retangulo {
private float altura, largura;
public Retangulo(){
altura = 0; largura =
0;
}
public float getAltura(){
return (altura);
}

public float getLargura(){


return (largura);
}
public void setLargura(float larg){
largura = larg;
}
public float calculaArea(){
return altura * largura;
}
public float calculaPerimetro(){
return 2 * altura + 2 *

public void setAltura(float alt){


largura;
altura = alt;
}
}
}

Exemplo Programa para calcular rea e


permetro de um retngulo
import java.util.Scanner;
public class Principal {
public static void main(String Args[ ]) {
Retangulo ret = new Retangulo();
Scanner input = new Scanner(System.in);
System.out.print("Informe a altura do retngulo: ");
ret.setAltura(input.nextFloat());
System.out.print("Informe a largura do retngulo: ");
ret.setLargura(input.nextFloat());
System.out.println("A area : " + ret.calculaArea());
System.out.println("O perimetro : " + ret.calculaPerimetro());
}
}

Programar de forma OO
Programao em OO no foi pensada para se escrever menos
Embora o programa se parea maior e mais complexo, ele representa um Retngulo de uma forma mais limpa e prxima do mundo real
medida que esse cdigo se tornar mais complexo, quem for usar essa classe no vai precisar conhecer detalhes e ser muito melhor de
manter (modificar)

Exerccios
Na classe Retangulo, implemente o mtodo exibe(), que deve retornar as informaes do retngulo:
Altura: altura
Largura: largura
rea: rea
Permetro: permetro.

Documente sua classe e seus mtodos, utilizando o comentrio /** */, reconhecido pela ferramenta javadoc

Exerccios
Implemente o mtodo exibe() na classe ContaCorrente
que retorne os dados da conta:
Agncia: agencia
Conta: conta
Saldo: R$ saldo.

Para testar a implementao dessa classe, solicite


inicialmente ao usurio que informe o nmero e agncia
da conta.
Em seguida, solicite um valor para depsito e logo aps,
um valor para saque.
Por ltimo, imprima os dados da conta utilizando o
mtodo exibe() implementado.
Altere o mtodo sacar(), de modo que no seja possvel
sacar um valor maior que o saldo da conta. Emita uma
mensagem caso o valor do saque seja invlido.

Exerccios
Crie uma classe Funcionario que
possua os seguintes atributos: nome,
idade, cargo, salrio e endereo.
Crie os mtodos gets e sets para os
atributos, bem como uma classe
principal que teste a classe.
Crie um mtodo exibe() para retornar
todas
as
informaes
de
um
funcionrio.

Você também pode gostar