SlideShare uma empresa Scribd logo
Programação
Orientada a Objetos
com Java
Introdução a POO
Classe e Objeto
Método
Herança
Encapsulamento
Abstração
Polimorfismo
Interface
Coesão / Acoplamento
INTRODUÇÃO
Programação
Orientada a Objetos?
Programação
Orientada a Objetos?
É UM PARADIGMA
DE PROGRAMAÇÃO
Programação
Orientada a Objetos?
UM ESTILO
DE PROGRAMAÇÃO
Programação
Orientada a Objetos?
EXISTEM
OUTRAS
E muito mais... Orientada a Teste, Escalar, Restritiva, Genérica....
Lógico
Prolog – Popler - QLISP
Imperativo/Procedural
Pascal – Fortran - Basic
Funcional/Descritiva
ML – F# - Haskell
Programação
Orientada a Objetos?
• Mais fácil descrever o mundo
real através dos objetos
• O encapsulamento facilita a
manutenção do código
• Maior facilidade para
reutilização de código
• Complexidade no aprendizado
em comparação com a
programação estruturada
• Seus conceitos são de difícil
compreensão
Programação
Orientada a Objetos?
RESUMO
POO é um paradigma de programação que usa "objetos"
compostos por campos e métodos, justamente com suas
interações - para projetar programas de computadores.
http://en.wikipedia.org/wiki/Object-oriented_programming
POO é uma forma especial de programar, mais próximo de
como expressaríamos as coisas na vida real do que outros
tipos de programação.
http://www.criarweb.com/artigos/215.php
POO é organizar o mundo real como uma coleção de objetos
que incorporam estrutura de dados e um conjunto de
operações que manipulam estes dados e trocam mensagens
entre si. http://www.macoratti.net/oo_conc2.htm
CLASSE
Uma classe é uma estrutura que abstrai um conjunto de
objetos com características similares. É como um projeto, a
partir dela que criamos os objetos utilizados em nossos
programas.
http://en.wikipedia.org/wiki/Object-oriented_programming
Classe:
Atributos
Os Atributos em Programação Orientada a Objetos são os
elementos que definem a estrutura de uma classe, ou seja
suas características.
http://en.wikipedia.org/wiki/Object-oriented_programming
Classe:
Construtores
Um construtor é uma estrutura especial da classe, um
método, que tem como objetivo definir a configuração inicial
de uma classe. É utilizado quando existem atributos da classe
que são essenciais para o funcionamento do objeto, porém,
são atributos de instância, e, assim, variam de acordo com
cada objeto.
http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e-
destrutores
Classe:
Destrutores
Semelhante aos construtores, o destrutor também é uma
estrutura, outro método, da classe, porém este é responsável
por limpar a memória ou atributos utilizados na execução da
classe.
http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e-
destrutores
Classe:
Visibilidade
Quem tem acesso à classe tem acesso também a qualquer membro com
visibilidade public, é raro ter atributos públicos, mas é comum ter
métodos públicos.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
+ Public
O membro private não é acessível fora da classe, a intenção é que apenas
quem escreve a classe possa usar esses membros.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
- Private
O membro protected é acessível à classe e a suas subclasses, a intenção é
dar acesso aos programadores que estenderão sua classe.
http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm
# Protected
Classe:
Objeto
Objetos são instâncias de classes. É através deles que (praticamente) todo
o processamento ocorre em sistemas implementados com linguagens de
programação orientadas a objetos.
Programação orientada a objetos uma abordagem com Java.
No paradigma de orientação a objetos, tudo pode ser potencialmente
representado como um objeto. Sob o ponto de vista da programação
orientada a objetos, um objeto não é muito diferente de uma variável
normal.
Programação orientada a objetos uma abordagem com Java.
Objetos
• Estado
• Atributos e Características
• Comportamento
• Ações
Classe
• Tipo base para objetos, um “Molde”
class Classe {
}
objeto = new Classe()
Classe
class Carro {
}
Carro meuCarro = new Carro();
Estrutura da Classe
Classe
Atributos
Métodos
Atributos
class Carro {
String marca;
String cor;
int ano;
int velocidade = 0;
}
Acesso a Atributos
carro.velocidade = 1;
int velocidade = carro.velocidade;
MÉTODO
Um método é uma subrotina que é executada por um objeto
ao receber uma mensagem. Os métodos determinam o
comportamento dos objetos de uma classe.
http://en.wikipedia.org/wiki/Object-oriented_programming
Métodos
class Carro {
void acelerar() {
velocidade++;
}
}
Método:
Assinatura
Cada método é especificado por uma assinatura, composta
por um identificador para o método (o nome do método), o
tipo para o valor de retorno e sua lista de argumentos, sendo
cada argumento identificado por seu tipo e nome.
Programação orientada a objetos uma abordagem com Java.
[modificador] tipo nome (argumentos)
{
corpo do método
}
Através do mecanismo de sobrecarga (overloading), dois
métodos de uma classe podem ter o mesmo nome, desde
que suas assinaturas de argumentos sejam diferentes.
Programação orientada a objetos uma abordagem com Java.
Método:
Sobrecarga
São métodos que tem o mesmo nome, mas com
argumentos diferentes.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
Lista de Argumentos diferentes
Podem alterar o tipo de retorno
Podem alterar o modificador de acesso
Declarar exceções novas ou mais abrangentes
Características
Método:
Mensagens
Um programa orientado a objetos é composto por um
conjunto de objetos que interagem através de “trocas de
mensagens”. Na prática, essa troca de mensagem traduz-se
na aplicação de métodos a objetos.
Programação orientada a objetos uma abordagem com Java.
Método:
Estáticos
Usualmente, métodos definidos em uma classe são aplicados
a objetos daquela classe. Há no entanto situações nas quais
um método pode fazer uso dos recursos de uma classe para
realizar sua tarefa sem necessariamente estar associado a um
objeto individualmente.
Programação orientada a objetos uma abordagem com Java.
Para lidar com tais situações, define os métodos da classe,
cuja declaração deve conter o modificador static. Um método
estático pode ser aplicado à classe e não necessariamente a
um objeto.
Programação orientada a objetos uma abordagem com Java.
HERANÇA
Herança é um mecanismo que permite que características
comuns a diversas classes sejam fatoradas em uma classe
base, ou superclasse. A partir de uma classe base, outras
classes podem ser especificadas.
Programação orientada a objetos uma abordagem com Java.
Herança:
Sobreposição
A sobreposição refere-se à redefinição de métodos na hierarquia
da herança, de forma que estes métodos implementam
definições diferentes (mais especializadas) nos subtipos.
http://arquiteturaemobilidade.blogspot.com/2008/07/conceitos-da-orientao-objetos-
com-uml_08.html
Herança
class Carro
extends Veiculo, MeioDeTransporte {
}
Herança Múltipla Não Existe
ENCAPSULAMENTO
É o princípio pelo qual cada componente de um programa
deve agregar toda a informação relevante para sua
manipulação como uma unidade (uma cápsula). Aliado ao
conceito de ocultamento de informação.
Programação orientada a objetos uma abordagem com Java.
Encapsulamento
public class Carro {
int velocidade = 0;
}
meuCarro.velocidade = 1000000000;
meuCarro.velocidade = -7;
Métodos de Acesso
• Padrão Java Bean
– Getters, para recuperar valores
– Setters, para definir ou alterar valores
Getter e Setter
public class Carro {
int velocidade = 0;
void setVelocidade(int velocidade) {
this.velocidade = velocidade;
}
int getVelocidade() {
return velocidade;
}
}
Modificadores de Acesso
public class Carro {
private int velocidade = 0;
public void setVelocidade(int velocidade) {
this.velocidade = velocidade;
}
public int getVelocidade() {
return velocidade;
}
}
Modificadores de Acesso
public class Carro {
private int velocidade = 0;
public void setVelocidade(int velocidade) {
if (velocidade >= 0 && velocidade < 160)
this.velocidade = velocidade;
}
}
ABSTRAÇÃO
Abstração é o processo de extrair as características essenciais de um
objeto real. A abstração é necessária para se ter um modelo fiel da
realidade sobre a qual se possa operar.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
O conjunto de características resultante da abstração forma um tipo de
dado abstrato com informações sobre seu estado e comportamento.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
POLIMORFISMO
O polimorfismo permite que referências de tipos de classes
mais abstratas representem o comportamento das classes
concretas que referenciam. Assim, um mesmo método pode
apresentar várias formas, de acordo com o seu contexto.
http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
Polimorfismo
• A capacidade de um mesmo objeto de se
apresentar de várias formas
Papagaio papagaio = new Papagaio();
Voador bichoQueVoa = papagaio;
Falador bichoQueFala = new Papagaio();
Polimorfismo
• Um tipo mais específico sempre pode ser
atribuído a uma variável de tipo mais
genérico, nunca o contrário.
Voador bichoQueVoa = papagaio;
Papagaio papagaio = bichoQueVoa;
Polimorfismo
• Força uma “conversão”
• Não afeta o objeto
• Pode resultar em erro se não for do
mesmo tipo
Papagaio papagaio = (Papagaio) bichoQueVoa;
Cast
Polimorfismo
Verificando o Tipo
if (bichoQueVoa instanceof Papagaio) {
System.out.println("Sim, é um papagaio!");
} else {
System.out.println("Não é um papagaio!");
}
INTERFACE
É um conjunto de métodos que um objeto deve suportar, mas
contendo apenas a especificação da funcionalidade que uma
classe deve conter, sem determinar como essa funcionalidade
deve ser implementadas.
Programação orientada a objetos uma abordagem com Java.
Interfaces
• Contrato de comportamento
• Todos os métodos abstratos
• É uma classe 100% abstrata
Ao resgate!
Interfaces
interface Veiculo {
void acelerar();
void frear();
}
Declarando
Interfaces
interface Veiculo {
void acelerar();
void frear();
}
public Carro implements Veiculo {
public void acelerar() { }
public void frear() { }
}
Implementando
Interfaces
interface Voador {
void voar();
}
interface Corredor {
void correr();
}
interface Falador {
void falar();
}
Interfaces
class Papagaio implements Voador, Falador {
public void voar() { }
public void falar() {
System.out.printlmn("Loro!");
}
}
class Cachorro implements Corredor, Falador {
public void correr() { }
public void falar() {
System.out.println("Au! Au!");
}
}
Implementando várias Interfaces
COESÃO / ACOPLAMENTO
Acoplamento é o grau que uma classe depende, interage com outra classe.
Coesão refere a finalidade que a classe foi criada.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
Quanto menos uma classe depende da outra, menor o acoplamento, e maior a
especialização dela, isso significa alta coesão.
http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
Acoplamento
É a interdependência entre as classes
Coesão
Envolve a divisão de responsabilidades entre as
classes
Acoplamento e Coesão
• Acoplamento forte, baixa coesão
– Ruim
• Acoplamento fraco, alta coesão
– Bom

Mais conteúdo relacionado

Mais procurados

Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Leinylson Fontinele
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
Cris Fidelix
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
Ludimila Monjardim Casagrande
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
Bruno Grange
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
leopp
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
Ludimila Monjardim Casagrande
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
Daniel Brandão
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
Bruno Catão
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
Daniel Brandão
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
Jorge Ávila Miranda
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
Leonardo Soares
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
Ludimila Monjardim Casagrande
 
Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
André Felipe Santos Martins
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Orlando Junior
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
Ludimila Monjardim Casagrande
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
Thiago Freitas
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
Elaine Cecília Gatto
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Igor Takenami
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
Jorge Ávila Miranda
 

Mais procurados (20)

Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 

Semelhante a Aula orientação a objetos

Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
Sedu
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
rafa nonato
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
Ryan Padilha
 
Java7
Java7Java7
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Wanderlei Silva do Carmo
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AurelcioOliveira
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
danielrpgj30
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
Regis Magalhães
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
Juliano Weber
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
Sérgio Souza Costa
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
Gabriel Faustino
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
Antonio Alves
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Professor Samuel Ribeiro
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
Ramon Mayor Martins
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
Wesley R. Bezerra
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
Filipo Mór
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
Leonardo Soares
 
Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basics
Juarez Junior
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
ThiagoFortes8
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
Iury Teixeira
 

Semelhante a Aula orientação a objetos (20)

Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Java7
Java7Java7
Java7
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptxAULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos Java Básico - Módulo 07: Introdução à programação orientada à objetos
Java Básico - Módulo 07: Introdução à programação orientada à objetos
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Java Básico :: Orientação a objetos
Java Básico :: Orientação a objetosJava Básico :: Orientação a objetos
Java Básico :: Orientação a objetos
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basics
 
Estudos Technocorp
Estudos TechnocorpEstudos Technocorp
Estudos Technocorp
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 

Último

APRESENTAÇÃO CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
APRESENTAÇÃO  CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdfAPRESENTAÇÃO  CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
APRESENTAÇÃO CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
portaladministradores
 
Análise dos resultados do desmatamento obtidos pelo SIAD.ppt
Análise dos resultados do desmatamento obtidos pelo SIAD.pptAnálise dos resultados do desmatamento obtidos pelo SIAD.ppt
Análise dos resultados do desmatamento obtidos pelo SIAD.ppt
Falcão Brasil
 
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdfEscola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
Falcão Brasil
 
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdfSistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
Falcão Brasil
 
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdfPlano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
Falcão Brasil
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
Mary Alvarenga
 
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdfAula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
ProfessoraSilmaraArg
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
Manuais Formação
 
P0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdfP0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdf
Ceiça Martins Vital
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Falcão Brasil
 
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdfOs Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Falcão Brasil
 
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdf
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdfPortfólio Estratégico da Força Aérea Brasileira (FAB).pdf
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdf
Falcão Brasil
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
LuizHenriquedeAlmeid6
 
Escola de Especialistas de Aeronáutica (EEAR).pdf
Escola de Especialistas de Aeronáutica (EEAR).pdfEscola de Especialistas de Aeronáutica (EEAR).pdf
Escola de Especialistas de Aeronáutica (EEAR).pdf
Falcão Brasil
 
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
Falcão Brasil
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
Mary Alvarenga
 
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
Manuais Formação
 
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptxSlides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
LuizHenriquedeAlmeid6
 

Último (20)

APRESENTAÇÃO CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
APRESENTAÇÃO  CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdfAPRESENTAÇÃO  CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
APRESENTAÇÃO CURSO FORMAÇÃO EXPERT EM MODERAÇÃO DE FOCUS GROUP.pdf
 
Análise dos resultados do desmatamento obtidos pelo SIAD.ppt
Análise dos resultados do desmatamento obtidos pelo SIAD.pptAnálise dos resultados do desmatamento obtidos pelo SIAD.ppt
Análise dos resultados do desmatamento obtidos pelo SIAD.ppt
 
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdfEscola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
Escola de Comando e Estado-Maior da Aeronáutica (ECEMAR).pdf
 
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdfSistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
Sistema Integrado de Monitoramento de Fronteiras - SISFRON.pdf
 
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdfPlano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
Plano Diretor da Tecnologia da Informação PDTIC 2020 a 2023.pdf
 
Desafio matemático - multiplicação e divisão.
Desafio matemático -  multiplicação e divisão.Desafio matemático -  multiplicação e divisão.
Desafio matemático - multiplicação e divisão.
 
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdfAula 3 CURSO LETRANDO (classes gramaticais).pdf
Aula 3 CURSO LETRANDO (classes gramaticais).pdf
 
UFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdfUFCD_5673_Segurança nos transportes_índice.pdf
UFCD_5673_Segurança nos transportes_índice.pdf
 
P0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdfP0107 do aluno da educação municipal.pdf
P0107 do aluno da educação municipal.pdf
 
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
Aviação de Reconhecimento e Ataque na FAB. A Saga dos Guerreiros Polivalentes...
 
Os Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdfOs Setores Estratégicos da END - O Setor Cibernético.pdf
Os Setores Estratégicos da END - O Setor Cibernético.pdf
 
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdf
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdfPortfólio Estratégico da Força Aérea Brasileira (FAB).pdf
Portfólio Estratégico da Força Aérea Brasileira (FAB).pdf
 
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptxSlides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
Slides Lição 3, CPAD, Rute e Noemi, Entrelaçadas pelo Amor.pptx
 
Escola de Especialistas de Aeronáutica (EEAR).pdf
Escola de Especialistas de Aeronáutica (EEAR).pdfEscola de Especialistas de Aeronáutica (EEAR).pdf
Escola de Especialistas de Aeronáutica (EEAR).pdf
 
FOTOS_AS CIÊNCIAS EM AÇÃO .
FOTOS_AS CIÊNCIAS EM AÇÃO                .FOTOS_AS CIÊNCIAS EM AÇÃO                .
FOTOS_AS CIÊNCIAS EM AÇÃO .
 
RECORDANDO BONS MOMENTOS! _
RECORDANDO BONS MOMENTOS!               _RECORDANDO BONS MOMENTOS!               _
RECORDANDO BONS MOMENTOS! _
 
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
A Participação do Brasil nas Operações de Manutenção da Paz da ONU Passado, P...
 
Caça-palavras - multiplicação
Caça-palavras  -  multiplicaçãoCaça-palavras  -  multiplicação
Caça-palavras - multiplicação
 
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
UFCD_7224_Prevenção de acidentes em contexto domiciliário e institucional_índ...
 
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptxSlides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
Slides Lição 3, Betel, A relevância da Igreja no cumprimento de sua Missão.pptx
 

Aula orientação a objetos

  • 2. Introdução a POO Classe e Objeto Método Herança Encapsulamento Abstração Polimorfismo Interface Coesão / Acoplamento
  • 5. Programação Orientada a Objetos? É UM PARADIGMA DE PROGRAMAÇÃO
  • 6. Programação Orientada a Objetos? UM ESTILO DE PROGRAMAÇÃO
  • 7. Programação Orientada a Objetos? EXISTEM OUTRAS E muito mais... Orientada a Teste, Escalar, Restritiva, Genérica.... Lógico Prolog – Popler - QLISP Imperativo/Procedural Pascal – Fortran - Basic Funcional/Descritiva ML – F# - Haskell
  • 8. Programação Orientada a Objetos? • Mais fácil descrever o mundo real através dos objetos • O encapsulamento facilita a manutenção do código • Maior facilidade para reutilização de código • Complexidade no aprendizado em comparação com a programação estruturada • Seus conceitos são de difícil compreensão
  • 9. Programação Orientada a Objetos? RESUMO POO é um paradigma de programação que usa "objetos" compostos por campos e métodos, justamente com suas interações - para projetar programas de computadores. http://en.wikipedia.org/wiki/Object-oriented_programming POO é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação. http://www.criarweb.com/artigos/215.php POO é organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam estes dados e trocam mensagens entre si. http://www.macoratti.net/oo_conc2.htm
  • 10. CLASSE Uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. É como um projeto, a partir dela que criamos os objetos utilizados em nossos programas. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 11. Classe: Atributos Os Atributos em Programação Orientada a Objetos são os elementos que definem a estrutura de uma classe, ou seja suas características. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 12. Classe: Construtores Um construtor é uma estrutura especial da classe, um método, que tem como objetivo definir a configuração inicial de uma classe. É utilizado quando existem atributos da classe que são essenciais para o funcionamento do objeto, porém, são atributos de instância, e, assim, variam de acordo com cada objeto. http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e- destrutores
  • 13. Classe: Destrutores Semelhante aos construtores, o destrutor também é uma estrutura, outro método, da classe, porém este é responsável por limpar a memória ou atributos utilizados na execução da classe. http://www.webartz.com.br/php/php-orientado-a-objetos-conceitos-construtores-e- destrutores
  • 14. Classe: Visibilidade Quem tem acesso à classe tem acesso também a qualquer membro com visibilidade public, é raro ter atributos públicos, mas é comum ter métodos públicos. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm + Public O membro private não é acessível fora da classe, a intenção é que apenas quem escreve a classe possa usar esses membros. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm - Private O membro protected é acessível à classe e a suas subclasses, a intenção é dar acesso aos programadores que estenderão sua classe. http://www.dsc.ufcg.edu.br/~jacques/cursos/p2/html/oo/visibilidade.htm # Protected
  • 15. Classe: Objeto Objetos são instâncias de classes. É através deles que (praticamente) todo o processamento ocorre em sistemas implementados com linguagens de programação orientadas a objetos. Programação orientada a objetos uma abordagem com Java. No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programação orientada a objetos, um objeto não é muito diferente de uma variável normal. Programação orientada a objetos uma abordagem com Java.
  • 16. Objetos • Estado • Atributos e Características • Comportamento • Ações
  • 17. Classe • Tipo base para objetos, um “Molde” class Classe { } objeto = new Classe()
  • 18. Classe class Carro { } Carro meuCarro = new Carro();
  • 20. Atributos class Carro { String marca; String cor; int ano; int velocidade = 0; }
  • 21. Acesso a Atributos carro.velocidade = 1; int velocidade = carro.velocidade;
  • 22. MÉTODO Um método é uma subrotina que é executada por um objeto ao receber uma mensagem. Os métodos determinam o comportamento dos objetos de uma classe. http://en.wikipedia.org/wiki/Object-oriented_programming
  • 23. Métodos class Carro { void acelerar() { velocidade++; } }
  • 24. Método: Assinatura Cada método é especificado por uma assinatura, composta por um identificador para o método (o nome do método), o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identificado por seu tipo e nome. Programação orientada a objetos uma abordagem com Java. [modificador] tipo nome (argumentos) { corpo do método } Através do mecanismo de sobrecarga (overloading), dois métodos de uma classe podem ter o mesmo nome, desde que suas assinaturas de argumentos sejam diferentes. Programação orientada a objetos uma abordagem com Java.
  • 25. Método: Sobrecarga São métodos que tem o mesmo nome, mas com argumentos diferentes. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html Lista de Argumentos diferentes Podem alterar o tipo de retorno Podem alterar o modificador de acesso Declarar exceções novas ou mais abrangentes Características
  • 26. Método: Mensagens Um programa orientado a objetos é composto por um conjunto de objetos que interagem através de “trocas de mensagens”. Na prática, essa troca de mensagem traduz-se na aplicação de métodos a objetos. Programação orientada a objetos uma abordagem com Java.
  • 27. Método: Estáticos Usualmente, métodos definidos em uma classe são aplicados a objetos daquela classe. Há no entanto situações nas quais um método pode fazer uso dos recursos de uma classe para realizar sua tarefa sem necessariamente estar associado a um objeto individualmente. Programação orientada a objetos uma abordagem com Java. Para lidar com tais situações, define os métodos da classe, cuja declaração deve conter o modificador static. Um método estático pode ser aplicado à classe e não necessariamente a um objeto. Programação orientada a objetos uma abordagem com Java.
  • 28. HERANÇA Herança é um mecanismo que permite que características comuns a diversas classes sejam fatoradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especificadas. Programação orientada a objetos uma abordagem com Java.
  • 29. Herança: Sobreposição A sobreposição refere-se à redefinição de métodos na hierarquia da herança, de forma que estes métodos implementam definições diferentes (mais especializadas) nos subtipos. http://arquiteturaemobilidade.blogspot.com/2008/07/conceitos-da-orientao-objetos- com-uml_08.html
  • 30. Herança class Carro extends Veiculo, MeioDeTransporte { } Herança Múltipla Não Existe
  • 31. ENCAPSULAMENTO É o princípio pelo qual cada componente de um programa deve agregar toda a informação relevante para sua manipulação como uma unidade (uma cápsula). Aliado ao conceito de ocultamento de informação. Programação orientada a objetos uma abordagem com Java.
  • 32. Encapsulamento public class Carro { int velocidade = 0; } meuCarro.velocidade = 1000000000; meuCarro.velocidade = -7;
  • 33. Métodos de Acesso • Padrão Java Bean – Getters, para recuperar valores – Setters, para definir ou alterar valores
  • 34. Getter e Setter public class Carro { int velocidade = 0; void setVelocidade(int velocidade) { this.velocidade = velocidade; } int getVelocidade() { return velocidade; } }
  • 35. Modificadores de Acesso public class Carro { private int velocidade = 0; public void setVelocidade(int velocidade) { this.velocidade = velocidade; } public int getVelocidade() { return velocidade; } }
  • 36. Modificadores de Acesso public class Carro { private int velocidade = 0; public void setVelocidade(int velocidade) { if (velocidade >= 0 && velocidade < 160) this.velocidade = velocidade; } }
  • 37. ABSTRAÇÃO Abstração é o processo de extrair as características essenciais de um objeto real. A abstração é necessária para se ter um modelo fiel da realidade sobre a qual se possa operar. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos O conjunto de características resultante da abstração forma um tipo de dado abstrato com informações sobre seu estado e comportamento. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
  • 38. POLIMORFISMO O polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com o seu contexto. http://www.slideshare.net/danielrpgj30/curso-de-programao-orientada-a-objetos
  • 39. Polimorfismo • A capacidade de um mesmo objeto de se apresentar de várias formas Papagaio papagaio = new Papagaio(); Voador bichoQueVoa = papagaio; Falador bichoQueFala = new Papagaio();
  • 40. Polimorfismo • Um tipo mais específico sempre pode ser atribuído a uma variável de tipo mais genérico, nunca o contrário. Voador bichoQueVoa = papagaio; Papagaio papagaio = bichoQueVoa;
  • 41. Polimorfismo • Força uma “conversão” • Não afeta o objeto • Pode resultar em erro se não for do mesmo tipo Papagaio papagaio = (Papagaio) bichoQueVoa; Cast
  • 42. Polimorfismo Verificando o Tipo if (bichoQueVoa instanceof Papagaio) { System.out.println("Sim, é um papagaio!"); } else { System.out.println("Não é um papagaio!"); }
  • 43. INTERFACE É um conjunto de métodos que um objeto deve suportar, mas contendo apenas a especificação da funcionalidade que uma classe deve conter, sem determinar como essa funcionalidade deve ser implementadas. Programação orientada a objetos uma abordagem com Java.
  • 44. Interfaces • Contrato de comportamento • Todos os métodos abstratos • É uma classe 100% abstrata Ao resgate!
  • 45. Interfaces interface Veiculo { void acelerar(); void frear(); } Declarando
  • 46. Interfaces interface Veiculo { void acelerar(); void frear(); } public Carro implements Veiculo { public void acelerar() { } public void frear() { } } Implementando
  • 47. Interfaces interface Voador { void voar(); } interface Corredor { void correr(); } interface Falador { void falar(); }
  • 48. Interfaces class Papagaio implements Voador, Falador { public void voar() { } public void falar() { System.out.printlmn("Loro!"); } } class Cachorro implements Corredor, Falador { public void correr() { } public void falar() { System.out.println("Au! Au!"); } } Implementando várias Interfaces
  • 49. COESÃO / ACOPLAMENTO Acoplamento é o grau que uma classe depende, interage com outra classe. Coesão refere a finalidade que a classe foi criada. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html Quanto menos uma classe depende da outra, menor o acoplamento, e maior a especialização dela, isso significa alta coesão. http://www.devmedia.com.br/post-5124-Orientacao-a-objetos-parte-ll.html
  • 51. Coesão Envolve a divisão de responsabilidades entre as classes
  • 52. Acoplamento e Coesão • Acoplamento forte, baixa coesão – Ruim • Acoplamento fraco, alta coesão – Bom