poo (1)

38
PROGRAMAÇÃO ORIENTADA A OBJETO

Upload: willian-sousa

Post on 26-Jun-2015

110 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Poo (1)

PROGRAMAÇÃO ORIENTADA A OBJETO

Page 2: Poo (1)

INTRODUÇÃO A POO

POO???

INTRODUÇÃO A POO:

Ah, PROGRAMAÇÃO

ORIENTADA A OBJETO

MAS COMO ISSO FUNCIONA???

Page 3: Poo (1)

DEFINIÇÃO:

POO É um paradigma para o desenvolvimento desoftware que baseia-se na utilização de componentesindividuais (objetos) que colaboram para construirsistemas mais complexos. A colaboração entre osobjetos é feita através do envio de mensagens.

Page 4: Poo (1)

HISTÓRIAA Programação Orientada ao Objeto (Object-Oriented

Programming) foi concebida há muito tempo atrás (no inicio da década de 70), a sua origem vem da linguagem Simula (Simula Language), concebida na Noruega na década de 60, e como o nome indica, foi criada para fazer simulações; entretanto, seu uso alavancou um conceito que até então passava desapercebido pela maioria dos projetistas: a similaridade com o mundo real.

A primeira linguagem de programação a implementar os conceitos de OOP foi a linguagem SIMULA-68; em seguida surgiu a linguagem Smalltalk; criada pela Xerox, que pode ser considerada a linguagem que popularizou e incentivou o emprego da OOP.

Hoje quando falamos em programação orientada a objeto a primeira linguagem que vem na nossa cabeça e o java da oracle.

Page 5: Poo (1)

CÓDIGO ESTRUTURADO

Page 6: Poo (1)

CÓDIGO ORIENTADO A OBJETO

Page 7: Poo (1)

CLASSE SOMA

Page 8: Poo (1)

CLASSE PRINCIPAL

Page 9: Poo (1)

ALGUMAS LINGUAGENS ORIENTADAS A OBJETOS

Page 10: Poo (1)

CARACTERÍSTICAS DE POO

Page 11: Poo (1)

CLASSE, OBJETOS, ATRIBUTOS E MÉTODOS

CLASSE E OBJETO: # Objetos são “coisas ” que temos no mundo real e abstraímos para o mundo virtual ;

# Todo objeto possui um estado e uma ação;

# Uma classe é uma especificação para um determinado tipo de objeto, isto é, para que o objeto seja de determinada classe ele, obrigatoriamen-te, terá que respeitar a especificação.

Page 12: Poo (1)

ATRIBUTOS E MÉTODOS

ATRIBUTOS: São as características próprias daqueles

objetos a qual a classe refere-se.

MÉTODOS: São as ações próprias daqueles objetos a

qual a classe refere-se. Um método não é nada mais que um procedimento.

Page 13: Poo (1)

CLASSEpublic class Pessoa{

String nome = null ; int idade = 0;

String endereço = null ;

public Pessoa ( String n, int i, String e){ nome = n; idade = i; endereço = e;

} }

Page 14: Poo (1)

public class TestePessoa {

public static void main( String [] args) { String nome = "Joao" ;

int idade = 30; String endereco = "Av Paulista 900" ;

Pessoa Breno = new Pessoa(nome, idade, endereco); System .out.println(Breno.nome); System .out.println(Breno.idade);

System .out.println(Breno.endereco);

} }

PROGRAMA PRINCIPAL

Page 15: Poo (1)

RESUMINDO :

Page 16: Poo (1)

ABSTRAÇÃO

É utilizada para a definição de entidades do mundo real. Sendo onde são criadas as classes.

Essas entidades são consideradas tudo que é real, tendo como consideração as suas características e ações.

Page 17: Poo (1)

ENCAPSULAMENTO• Esconder os detalhes da implementação de um

objeto;

• A capacidade de um objeto possuir uma parte privada, acessível somente através dos métodos definidos na sua interface pública;

• Não se deve permitir acesso direto aos atributos de uma classe;

Page 18: Poo (1)

MÉTODOS PADRÕES

Getters

Setters

Métodos is

São métodos que permitem a leitura de atributos da classe, sendo uma boa prática cria-los para cada atributo que desejarmos encapsular.

São métodos para modificar os valores dos atributos visando protege-los da escrita ou modificação indevida. É possível estabelecer certas normas e controles dentro dos métodos Setters.

São métodos utilizados para leitura de atributos booleanos.

Page 19: Poo (1)

CÓDIGO

public class Data{ private int ano; private byte mes; private byte dia; public int getAno() {

return ano; } public void setAno( int a) {

if (a > 0){ ano = a;

} else System .out.println( "Ano invalido" );

} public byte getDia() {

return dia; } public void setDia( byte d) {

if (d > 0 && d <= 31 ){ dia = d;

}

Page 20: Poo (1)

else System .out.println( "Dia invalido" );

} public byte getMes() { return mes;

} public void ajustarMes( byte m) { if (m > 0 && m <= 12 ){

mes = m; } else

System .out.println( "Mes invalido" ); } public boolean isAnoBissexto(){ if (((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0))

return true ; else

return false ; } }

Page 21: Poo (1)

AGREGAÇÃO

Agregação é um tipo de associação onde o todo está relacionado com suas partes.

É representada com o símbolo de um diamante junto a classe agregadora.

Page 22: Poo (1)

CÓDIGO

Page 23: Poo (1)

POLIFORMISMO

• A palavra polimorfismo vem do grego e significa que pode tomar várias formas. É a capacidade de tipos mais abstratos representarem tipos mais específicos.

• Varias formas de fazer varias coisas.

Page 24: Poo (1)

TIPOS DE DADOS

• Ad HOC• Paramétrico• Herança

Page 25: Poo (1)

CÓDIGOAbstract class Animal{

abstract void som();}Class Gato extends Animal{

void som(0{System.out.println(“miau”);

}}Class Cachorro extends Animal{

void som(){System.out.println(“auauaua”);

}}

Page 26: Poo (1)

PROGRAMA PRINCIPAL

public class Principal{public static void main(String[]args){

Animal a;Cachorro c = new Gato();a = g;a.som(); // imprime o miaua = c;a.som(); // imprime o auau

}}

Page 27: Poo (1)

SOBRECARGA (OVERLOADING) DE MÉTODOS

public class x { public void m1( ) {...} public void m1 ( int p ) {...} }

//Este método é sobrecarregado por que tem nomes iguais mas assinaturas diferentes.

Page 28: Poo (1)

SOBREPOSIÇÃO (OVERRIDING) DE MÉTODOS

public class A { public void m1( ) { System.out.print (“Classe A ”) } } public class B extends A { public void m1( ){ System.out.print (“Classe B ”)

} }

// Dois métodos (de classes diferentes) sobrepõem-se se têm a mesma assinatura e (necessariamente) o mesmo tipo de resultado.

Page 29: Poo (1)

HERANÇA Herança é o mecanismo que possibilita a definição de novas classes a partir de uma já existente, como forma de reutilizar seus atributos e métodos. Isso é possível mesmo quando não se tem acesso ao código fonte da superclasse.

Page 30: Poo (1)

HERANÇA DE ATRIBUTOS E MÉTODOS

Page 31: Poo (1)

HERANÇA DE RELACIONAMENTO

Page 32: Poo (1)

TIPOS DE HERANÇA

HERANÇA ESTRITA

HERANÇA NÃO ESTRITA

as subclasses podem redefinir ou excluir propriedades herdadas da superclasse.

Nesta ele herda mais não pode redefinir nem excluir propriedades.

Page 33: Poo (1)

HERANÇA MÚLTIPLA

Herança múltiplaé a possibilidade de se definir uma

subclasse com mais de uma superclasse.

Page 34: Poo (1)

CÓDIGO

Page 35: Poo (1)

CLASSE FORNECEDORPESSOA

Page 36: Poo (1)

CLASSE FORNECEDOREMPRESA

Page 37: Poo (1)

RESUMINDO:

Page 38: Poo (1)

EXERCÍCIOS

1) Implemente uma classe Estudante com os seguintes atributos: Nome, nt1, nt2, nt3; e com método chamado média onde recebe as três notas como parâmetro e calcula a média.

2) Cria o programa principal para a classe anterior que mande os valores da classe e Mostre o nome do aluno e a sua média;