3. DEFINIÇÃO:
POO
É um paradigma para o desenvolvimento de
software que baseia-se na utilização de componentes
individuais (objetos) que colaboram para construir
sistemas mais complexos. A colaboração entre os
objetos é feita através do envio de mensagens.
4. HISTÓRIA
A 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.
12. 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.
13. CLASSE
public 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;
}
}
14. 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
16. 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.
17. 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;
18. 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.
19. 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;
}
20. 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 ;
}
}
21. 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.
23. 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.
25. CÓDIGO
Abstract 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”);
}
}
26. PROGRAMA PRINCIPAL
public class Principal{
public static void main(String[]args){
Animal a;
Cachorro c = new Gato();
a = g;
a.som(); // imprime o miau
a = c;
a.som(); // imprime o auau
}
}
27. 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.
28. 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.
29. 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.
32. 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.
38. 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;