Download - Poo (1)
![Page 1: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/1.jpg)
PROGRAMAÇÃO ORIENTADA A OBJETO
![Page 2: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/2.jpg)
INTRODUÇÃO A POO
POO???
INTRODUÇÃO A POO:
Ah, PROGRAMAÇÃO
ORIENTADA A OBJETO
MAS COMO ISSO FUNCIONA???
![Page 3: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/3.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/4.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/5.jpg)
CÓDIGO ESTRUTURADO
![Page 6: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/6.jpg)
CÓDIGO ORIENTADO A OBJETO
![Page 7: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/7.jpg)
CLASSE SOMA
![Page 8: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/8.jpg)
CLASSE PRINCIPAL
![Page 9: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/9.jpg)
ALGUMAS LINGUAGENS ORIENTADAS A OBJETOS
![Page 10: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/10.jpg)
CARACTERÍSTICAS DE POO
![Page 11: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/11.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/12.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/13.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/14.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/15.jpg)
RESUMINDO :
![Page 16: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/16.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/17.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/18.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/19.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/20.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/21.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/22.jpg)
CÓDIGO
![Page 23: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/23.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/24.jpg)
TIPOS DE DADOS
• Ad HOC• Paramétrico• Herança
![Page 25: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/25.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/26.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/27.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/28.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/29.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/30.jpg)
HERANÇA DE ATRIBUTOS E MÉTODOS
![Page 31: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/31.jpg)
HERANÇA DE RELACIONAMENTO
![Page 32: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/32.jpg)
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)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/33.jpg)
HERANÇA MÚLTIPLA
Herança múltiplaé a possibilidade de se definir uma
subclasse com mais de uma superclasse.
![Page 34: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/34.jpg)
CÓDIGO
![Page 35: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/35.jpg)
CLASSE FORNECEDORPESSOA
![Page 36: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/36.jpg)
CLASSE FORNECEDOREMPRESA
![Page 37: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/37.jpg)
RESUMINDO:
![Page 38: Poo (1)](https://reader035.vdocuments.site/reader035/viewer/2022062406/558d262cd8b42a27638b460f/html5/thumbnails/38.jpg)
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;