SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Programação
orientada a
objetos em
Delphi
Abrindo sua mente para um mundo novo...
mas nem tanto!
Mudar!? Para quê???
Se você chegou até aqui, significa que você
procura por otimizar seu processo de
trabalho!
Então deixe o comodismo e o preconceito de lado!
FreeDigitalPhotos.net
Mas preciso estudar um monte de
teorias novas?
Orientação a Objeto é um conceito antigo.
Mas a melhor maneira de aprender é usando!
Polimorfismo, herança
e encapsulamento são
conceitos importantes!
Mas a prática leva à
perfeição!
FreeDigitalPhotos.net
O que devo saber sobre a teoria?
● Orientação a objetos: Estrutura de
agrupamento de dados e funções que tem
por objetivo alta padronização e
usabilidade de informações.
O que devo saber sobre a teoria?
● Polimorfismo, herança e encapsulamento:
São metodologias utilizadas para se
conseguir, tecnicamente, a padronização e
a usabilidade que são necessários para o
ganho de performance no desenvolvimento
de software.
O que devo saber sobre a teoria?
● Classes, métodos e atributos: São nomes
novos para coisas velhas que você já
conhece! Muda o contexto, mas o conceito
é o mesmo.
Entendendo como se faz
Caelum
Entendendo como se faz
● Classe: É a especificação, o projeto.
● Objeto: É a instancia, em memória, da
classe. Este é o objeto de trabalho!
Entendendo como se faz
Unit UConta;
Interface
Uses SysUtils;
Type
TConta = Class
public
numero: integer;
dono: String;
saldo: real;
limite: real;
End;
Implementation
//...
Entendendo como se faz
Procedure Teste;
var
vConta: TConta;
vSaldo_Total: real;
begin
vConta:= Tconta.Create;
vConta.saldo := 0;
vConta.dono := 'José';
vSaldo_Total:= vConta.Saldo + vConta.Limite;
vConta.free;
// FreeAndNil(vConta);
end;
Entendendo como se faz
● Atributos: São características da classe.
São variáveis que armazenam dados
referente ao objeto.
Entendendo como se faz
Unit UConta;
//...
Type
TConta = Class
public
numero: integer;
dono: String;
saldo: real;
limite: real;
public
Procedure saca(valor: real);
Procedure deposita(valor: real);
End;
Implementation
//...
Entendendo como se faz
//...
Implementation
Procedure TConta.saca(valor: real);
var vNovoSaldo: real;
begin
vNovoSaldo := saldo - valor;
saldo := vNovoSaldo;
end;
Procedure TConta.deposita(valor: real);
begin
saldo := saldo + valor;
end;
//...
Entendendo como se faz
Procedure Teste;
var
vConta: TConta;
vSaldo_Total: real;
begin
vConta:= Tconta.Create;
vConta.saldo := 0;
vConta.dono := 'José';
vConta.deposita(200);
vConta.saca(50);
vSaldo_Total:= vConta.Saldo + vConta.Limite;
vConta.free;
end;
Entendendo como se faz
● Métodos: São ações da classe. São
funções ou procedimentos necessários
para a execução dos objetivos da classe.
Entendendo como se faz
● Objetos: Lembre-se que, ao instanciar uma
classe, você está fazendo referência a
endereços de memória.
● Cuidado ao referencias objetos e limpa-los
da memória.
Entendendo como se faz
Procedure Teste;
var
vC1, vC2, vC3: TConta;
begin
vC1:= Tconta.Create;
vC1.dono := 'José';
vC2:= Tconta.Create;
vC2.dono := 'Maria';
vC3:=vC1;
vC3.deposita(100);
vC3:=vC2;
vC3.deposita(10);
vC3:=nil;
freeandnil(vC1);
freeandnil(vC2);
end;
Entendendo como se faz
Procedure Teste;
var
vC1, vC2: TConta;
begin
vC1:= Tconta.Create;
vC1.dono := 'Emilia';
vC2:= Tconta.Create;
vC2.dono := 'Emilia';
if vC1 = vC2 then begin
// são iguais!
end;
freeandnil(vC1);
freeandnil(vC2);
end;
Entendendo como se faz
● Aproveite-se das referências de memória
para otimizar seus métodos.
Entendendo como se faz
Unit UConta;
//...
Type
TConta = Class;
TConta = Class
public
numero: integer;
dono: String;
saldo: real;
limite: real;
public
Procedure saca(valor: real);
Procedure deposita(valor: real);
Procedure transfere(conta: TConta; valor: real);
End;
Implementation
//...
Entendendo como se faz
//...
Implementation
Procedure TConta.transfere(conta: TConta; valor: real);
begin
saldo := saldo - valor;
conta.saldo := saldo + valor;
end;
//ou
Procedure TConta.transfere(conta: TConta; valor: real);
begin
saldo.saca(valor);
conta.deposita(valor);
end;
//...
Entendendo como se faz
● Pode-se deixar sua classe mais inteligente
e robusta com a utilização de construtores
e destruidores.
Entendendo como se faz
Unit UConta;
Type
TConta = Class;
TConta = Class
public
numero: integer;
dono: String;
saldo: real;
limite: real;
public
Constructor Create;
Destructor Free;
Procedure saca(valor: real);
Procedure deposita(valor: real);
Procedure transfere(conta: TConta; valor: real);
End;
Implementation
//...
Entendendo como se faz
//...
Implementation
Procedure TConta.Create;
begin
numero := 0;
dono:= '';
saldo:= 0;
limite: 1000;
end;
Procedure TConta.Free;
begin
// Tratamento de limpeza
end;
//...
Entendendo como se faz
● Aproveite a estrutura e pense sempre de
maneira modular.
● Cada classe deve ser especialista no que
faz!
Entendendo como se faz
Conta
+ numero: integer;
+ dono: TTitular;
+ saldo: real;
+ limite: real;
+ Constructor Create;
+ Destructor Free;
+ saca(valor: real);
+ deposita(valor: real);
+ transfere(conta: TConta;
valor: real);
Titular
+ nome: String;
+ endereco: String;
+ cpf: String;
+ Constructor Create;
+ Destructor Free;
Entendendo como se faz
Unit UTitular;
Type
TTitular = Class
public
nome: string;
endereco: string;
cpf: string;
public
Constructor Create;
Destructor Free;
End;
Implementation
//...
Entendendo como se faz
Unit UConta;
Interface
Uses Utitular;
Type
TConta = Class;
TConta = Class
public
numero: integer;
dono: TTitular;
saldo: real;
limite: real;
public
Constructor Create;
Destructor Free;
Procedure saca(valor: real);
Procedure deposita(valor: real);
Procedure transfere(conta: TConta; valor: real);
End;
Implementation
//...
Entendendo como se faz
//...
Implementation
Procedure TConta.Create;
begin
numero := 0;
saldo:= 0;
limite: 1000;
dono:= TTitular.Create;
end;
Procedure TConta.Free;
begin
dono.free;
end;
//...
Entendendo como se faz
Procedure Teste;
var
vC1: TConta;
begin
vC1:= Tconta.Create;
vC1.dono.nome := 'Joao';
vC1.dono.CPF := '11122233300';
VC1.saldo:=0;
VC1.deposita(100);
freeandnil(vC1);
end;
Padrão de programação
● Pode-se adotar padrões de programação
orientada a objetos para facilitar o
trabalho em equipe.
Padrão de programação
Estrutura de classe em Delphi
//-------------------------------------------------------
//<Nome do sistema ou conjunto de classes> - <data>
//<nome da classe>
//<Descrição da classe>
//-------------------------------------------------------
Unit UTTeste;
interface
Uses Sysutils, ZDataset, ZConnection, Classes;
Type
TTeste = Class
private
VARIAVEIS DE ATRIBUTOS
MÉTODOS PRIVADOS: GETS E SETS
MÉTODOS PRIVADOS DIVERSOS
public
CONSTRUTOR
DESTRUTOR
MÉTODOS PÚBLICOS
Estrutura de classe em Delphi
public
DEFINIÇÃO DE PROPRIEDADES,
GETS E SETS
End;
implementation
IMPLEMENTAÇÃO DOS CONSTRUTORES
IMPLEMENTAÇÃO DOS DESTRUTORES
IMPLEMENTAÇÃO DE MÉTODOS
PRIVADOS
IMPLEMENTAÇÃO DE MÉTODOS
PUBLICOS
End;
Padrão de programação
Unit UConta;
Interface
Uses Utitular;
Type
TConta = Class;
TConta = Class
private
a_numero: integer;
a_dono: TTitular;
a_saldo: real;
a_limite: real;
private
Procedure set_numero(Const Value: integer);
Procedure set_dono(Const Value: TTitular);
Procedure set_saldo(Const Value: real);
Procedure set_limite(Const Value: real);
//...
Padrão de programação
//...
Function get_numero: integer;
Function get_dono: TTitular;
Function get_saldo: real;
Function get_limite: real;
public
Constructor Create;
Destructor Free;
Procedure saca(valor: real);
Procedure deposita(valor: real);
Procedure transfere(conta: TConta; valor: real);
//...
Padrão de programação
//...
public
Property Numero: integer read get_numero write
set_numero;
Property Dono: TTitular read get_dono write set_dono;
Property Saldo: real read get_saldo write set_saldo;
Property Limite: real read get_limite write set_limite;
Implementation
//...
Padrão de programação
//...
Procedure TConta.Create;
begin
a_numero := 0;
a_saldo:= 0;
a_limite: 1000;
a_dono:= TTitular.Create;
end;
Procedure TConta.Free;
begin
a_dono.free;
end;
//...
Padrão de programação
//...
Procedure TConta.saca(valor: real);
var vNovoSaldo: real;
begin
vNovoSaldo := a_saldo - valor;
a_saldo := vNovoSaldo;
end;
Procedure TConta.deposita(valor: real);
begin
a_saldo := a_saldo + valor;
end;
//...
Padrão de programação
//...
Procedure TConta.set_numero(Const Value: integer);
begin
a_numero := value;
end;
Procedure TConta.set_dono(Const Value: TTitular);
begin
a_dono := value;
end;
Procedure TConta.set_saldo(Const Value: real);
begin
a_saldo := value;
end;
Procedure TConta.set_limite(Const Value: real);
begin
a_limite := value;
end;
//...
Padrão de programação
//...
Function TConta.get_numero: integer;
begin
result := a_numero;
end;
Function TConta.get_dono: TTitular;
begin
result := a_dono;
end;
Function TConta.get_saldo: real;
begin
result := a_saldo;
end;
Function TConta.get_limite: real;
begin
result := a_limite;
end;
End.
Concluindo
● Toda a mudança requer um período de
adaptação.
● Os ganhos da POO são muitos, mas é
necessário prática, disciplina e paciência
para quem ainda se inicia na metodologia.
Bibliografia
● Caelum. Apostila Java e Orientação a objetos. http://www.caelum.com.br/apostila-java-
orientacao-objetos/orientacao-a-objetos-basica/
● MELO, Ana Cristina, Desenvolvendo Aplicações com UML 2.0: do conceitual à implementação /
Ana Cristina Melo. – 2. ed. – Rio de Janeiro: Brasport, 2004.
● BORLAND, Treinamento Oficial, Delphi 2005 – Application Development with Delphi for Win32 –
2005.
● DEITEL, H. M. Deitel, C# - Como Programar – São Paulo: Pearson Education do Brasil LTDA,
2003.

Mais conteúdo relacionado

Mais procurados

Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
01 php - introdução ao php
01   php - introdução ao php01   php - introdução ao php
01 php - introdução ao phpRoney Sousa
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipsejaquiiMc
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructorrezzaca
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrapljds
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em JavaDenis L Presciliano
 
HTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlHTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlTiago Luiz Ribeiro da Silva
 
Thiết lập Automation Marketing
Thiết lập Automation MarketingThiết lập Automation Marketing
Thiết lập Automation MarketingGetfly CRM
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 
Design Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kếDesign Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kếNhật Nguyễn Khắc
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 ModelDouglas Alonso
 

Mais procurados (20)

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
 
CSS
CSSCSS
CSS
 
01 php - introdução ao php
01   php - introdução ao php01   php - introdução ao php
01 php - introdução ao php
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipse
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
 
SQL - Banco de Dados Biblioteca
SQL - Banco de Dados BibliotecaSQL - Banco de Dados Biblioteca
SQL - Banco de Dados Biblioteca
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
HTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no htmlHTML - Aula 01 - Estrutura básica e tags básicas no html
HTML - Aula 01 - Estrutura básica e tags básicas no html
 
Thiết lập Automation Marketing
Thiết lập Automation MarketingThiết lập Automation Marketing
Thiết lập Automation Marketing
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3Tài liệu HTML5-CSS3
Tài liệu HTML5-CSS3
 
Aula15 - Array PHP
Aula15 - Array PHPAula15 - Array PHP
Aula15 - Array PHP
 
Hojas de Estilo en Cascada - CSS
Hojas de Estilo en Cascada - CSSHojas de Estilo en Cascada - CSS
Hojas de Estilo en Cascada - CSS
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Design Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kếDesign Pattern - Những công thức vàng trong thiết kế
Design Pattern - Những công thức vàng trong thiết kế
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 

Destaque

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
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Ryan Padilha
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007Guilherme Bruno
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhiMikeNandes
 
Bate papo sobre desenvolvimento de spftware
Bate papo sobre desenvolvimento de spftwareBate papo sobre desenvolvimento de spftware
Bate papo sobre desenvolvimento de spftwareAdriano Santos
 
Rad Studio 10 com Android e Unidac
Rad Studio 10 com Android e UnidacRad Studio 10 com Android e Unidac
Rad Studio 10 com Android e UnidacLanderson Gomes
 
FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014Alan Glei
 
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013ListBox e Listview em Apps Mobile - Embarcadero Conference 2013
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013Vic Fernandes
 
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016Hora GTI - Top 10 Tendências Mobile para 2015 e 2016
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016Cássio Nandi Citadin
 
FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015Guinther Pauli
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Cláudio Amaral
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Cláudio Amaral
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Cláudio Amaral
 

Destaque (20)

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)
 
Oo delphi
Oo delphiOo delphi
Oo delphi
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Apostila delphi rad studio 2007
Apostila delphi   rad studio 2007Apostila delphi   rad studio 2007
Apostila delphi rad studio 2007
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
 
Mvc delphi
Mvc delphiMvc delphi
Mvc delphi
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
 
Bate papo sobre desenvolvimento de spftware
Bate papo sobre desenvolvimento de spftwareBate papo sobre desenvolvimento de spftware
Bate papo sobre desenvolvimento de spftware
 
Rad Studio 10 com Android e Unidac
Rad Studio 10 com Android e UnidacRad Studio 10 com Android e Unidac
Rad Studio 10 com Android e Unidac
 
FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014FireDAC: do básico ao avançado - Embarcadero Conference 2014
FireDAC: do básico ao avançado - Embarcadero Conference 2014
 
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013ListBox e Listview em Apps Mobile - Embarcadero Conference 2013
ListBox e Listview em Apps Mobile - Embarcadero Conference 2013
 
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016Hora GTI - Top 10 Tendências Mobile para 2015 e 2016
Hora GTI - Top 10 Tendências Mobile para 2015 e 2016
 
FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015FireDAC - Embarcadero Conference 2015
FireDAC - Embarcadero Conference 2015
 
Programação aula003
Programação aula003Programação aula003
Programação aula003
 
Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005Projeto de Sistemas - Aula005
Projeto de Sistemas - Aula005
 
Aplicativo aula006
Aplicativo aula006Aplicativo aula006
Aplicativo aula006
 
Sistema Operacional - Pratica002
Sistema Operacional - Pratica002Sistema Operacional - Pratica002
Sistema Operacional - Pratica002
 
Sistema Operacional - Pratica003
Sistema Operacional - Pratica003Sistema Operacional - Pratica003
Sistema Operacional - Pratica003
 

Semelhante a Programação orientada a objetos em delphi

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Introdução ao JS1.pptx
Introdução ao JS1.pptxIntrodução ao JS1.pptx
Introdução ao JS1.pptxLuanDev1
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portuguesLaura
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-Cosmarcf
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngormEric Cavalcanti
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Luís Cobucci
 
Combatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaCombatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaEmmanuel Neri
 

Semelhante a Programação orientada a objetos em delphi (20)

Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
JavaScript
JavaScriptJavaScript
JavaScript
 
05 poo-ii
05   poo-ii05   poo-ii
05 poo-ii
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Introdução ao JS1.pptx
Introdução ao JS1.pptxIntrodução ao JS1.pptx
Introdução ao JS1.pptx
 
Curso avançado de c++ em portugues
Curso avançado de c++ em portuguesCurso avançado de c++ em portugues
Curso avançado de c++ em portugues
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-C
 
Programação em C
Programação em CProgramação em C
Programação em C
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngorm
 
Refactoring
RefactoringRefactoring
Refactoring
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Modulo02
Modulo02Modulo02
Modulo02
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
Combatendo code smells em aplicações Java
Combatendo code smells em aplicações JavaCombatendo code smells em aplicações Java
Combatendo code smells em aplicações Java
 

Mais de Helder Lopes

Resumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeResumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeHelder Lopes
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoHelder Lopes
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralHelder Lopes
 
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacional
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacionalGerenciamento de Infra-Estrutura - Aula 5 - contexto organizacional
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacionalHelder Lopes
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Helder Lopes
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...Helder Lopes
 
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...Helder Lopes
 
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...Helder Lopes
 
Estatística - Aula 2 - Estatística descritiva
Estatística - Aula 2 - Estatística descritivaEstatística - Aula 2 - Estatística descritiva
Estatística - Aula 2 - Estatística descritivaHelder Lopes
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaHelder Lopes
 
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLM
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLMGerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLM
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLMHelder Lopes
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlHelder Lopes
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoHelder Lopes
 
Ferramentas de Gerenciamento de Rede
Ferramentas de Gerenciamento de RedeFerramentas de Gerenciamento de Rede
Ferramentas de Gerenciamento de RedeHelder Lopes
 
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplina
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplinaGerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplina
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplinaHelder Lopes
 
Gerenciamento e administração de Redes
Gerenciamento e administração de RedesGerenciamento e administração de Redes
Gerenciamento e administração de RedesHelder Lopes
 
Redes de computadores e Telecomunicações
Redes de computadores e TelecomunicaçõesRedes de computadores e Telecomunicações
Redes de computadores e TelecomunicaçõesHelder Lopes
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de DadosHelder Lopes
 
Sistemas para Internet e Software Livre
Sistemas para Internet e Software LivreSistemas para Internet e Software Livre
Sistemas para Internet e Software LivreHelder Lopes
 

Mais de Helder Lopes (20)

Resumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio HerbalifeResumo: Oportunidade de Negocio Herbalife
Resumo: Oportunidade de Negocio Herbalife
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Desenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geralDesenvolvimento web com vs2012: Uma visão geral
Desenvolvimento web com vs2012: Uma visão geral
 
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacional
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacionalGerenciamento de Infra-Estrutura - Aula 5 - contexto organizacional
Gerenciamento de Infra-Estrutura - Aula 5 - contexto organizacional
 
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
Fundamentos de Sistemas Operacionais - Aula 3 - Arquiteturas de Sistemas Oper...
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...
Gerenciamento de Infra-Estrutura - Aula 2 - Definições Utilizadas em Gerencia...
 
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...
Gerenciamento de Infra-Estrutura - Aula 3 - Ferramentas de Gerenciamento - Co...
 
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...
Aplicação de Redes Neurais Artificiais Paraconsistentes no auxílio do diagnós...
 
Estatística - Aula 2 - Estatística descritiva
Estatística - Aula 2 - Estatística descritivaEstatística - Aula 2 - Estatística descritiva
Estatística - Aula 2 - Estatística descritiva
 
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplinaFundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
Fundamentos de Sistemas Operacionais - Aula 1 - Introdução à disciplina
 
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLM
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLMGerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLM
Gerenciamento de Infra-Estrutura - Aula 3 - Conceitos sobre SLA & SLM
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
 
Modelagem de Sistemas de Informação
Modelagem de Sistemas de InformaçãoModelagem de Sistemas de Informação
Modelagem de Sistemas de Informação
 
Ferramentas de Gerenciamento de Rede
Ferramentas de Gerenciamento de RedeFerramentas de Gerenciamento de Rede
Ferramentas de Gerenciamento de Rede
 
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplina
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplinaGerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplina
Gerenciamento de Infra-Estrutura - Aula 1 - Introdução à disciplina
 
Gerenciamento e administração de Redes
Gerenciamento e administração de RedesGerenciamento e administração de Redes
Gerenciamento e administração de Redes
 
Redes de computadores e Telecomunicações
Redes de computadores e TelecomunicaçõesRedes de computadores e Telecomunicações
Redes de computadores e Telecomunicações
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de Dados
 
Sistemas para Internet e Software Livre
Sistemas para Internet e Software LivreSistemas para Internet e Software Livre
Sistemas para Internet e Software Livre
 

Último

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralAntonioVieira539017
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxLuciana Luciana
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...marcelafinkler
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 

Último (20)

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 

Programação orientada a objetos em delphi

  • 1. Programação orientada a objetos em Delphi Abrindo sua mente para um mundo novo... mas nem tanto!
  • 2. Mudar!? Para quê??? Se você chegou até aqui, significa que você procura por otimizar seu processo de trabalho! Então deixe o comodismo e o preconceito de lado! FreeDigitalPhotos.net
  • 3. Mas preciso estudar um monte de teorias novas? Orientação a Objeto é um conceito antigo. Mas a melhor maneira de aprender é usando! Polimorfismo, herança e encapsulamento são conceitos importantes! Mas a prática leva à perfeição! FreeDigitalPhotos.net
  • 4. O que devo saber sobre a teoria? ● Orientação a objetos: Estrutura de agrupamento de dados e funções que tem por objetivo alta padronização e usabilidade de informações.
  • 5. O que devo saber sobre a teoria? ● Polimorfismo, herança e encapsulamento: São metodologias utilizadas para se conseguir, tecnicamente, a padronização e a usabilidade que são necessários para o ganho de performance no desenvolvimento de software.
  • 6. O que devo saber sobre a teoria? ● Classes, métodos e atributos: São nomes novos para coisas velhas que você já conhece! Muda o contexto, mas o conceito é o mesmo.
  • 7. Entendendo como se faz Caelum
  • 8. Entendendo como se faz ● Classe: É a especificação, o projeto. ● Objeto: É a instancia, em memória, da classe. Este é o objeto de trabalho!
  • 9. Entendendo como se faz Unit UConta; Interface Uses SysUtils; Type TConta = Class public numero: integer; dono: String; saldo: real; limite: real; End; Implementation //...
  • 10. Entendendo como se faz Procedure Teste; var vConta: TConta; vSaldo_Total: real; begin vConta:= Tconta.Create; vConta.saldo := 0; vConta.dono := 'José'; vSaldo_Total:= vConta.Saldo + vConta.Limite; vConta.free; // FreeAndNil(vConta); end;
  • 11. Entendendo como se faz ● Atributos: São características da classe. São variáveis que armazenam dados referente ao objeto.
  • 12. Entendendo como se faz Unit UConta; //... Type TConta = Class public numero: integer; dono: String; saldo: real; limite: real; public Procedure saca(valor: real); Procedure deposita(valor: real); End; Implementation //...
  • 13. Entendendo como se faz //... Implementation Procedure TConta.saca(valor: real); var vNovoSaldo: real; begin vNovoSaldo := saldo - valor; saldo := vNovoSaldo; end; Procedure TConta.deposita(valor: real); begin saldo := saldo + valor; end; //...
  • 14. Entendendo como se faz Procedure Teste; var vConta: TConta; vSaldo_Total: real; begin vConta:= Tconta.Create; vConta.saldo := 0; vConta.dono := 'José'; vConta.deposita(200); vConta.saca(50); vSaldo_Total:= vConta.Saldo + vConta.Limite; vConta.free; end;
  • 15. Entendendo como se faz ● Métodos: São ações da classe. São funções ou procedimentos necessários para a execução dos objetivos da classe.
  • 16. Entendendo como se faz ● Objetos: Lembre-se que, ao instanciar uma classe, você está fazendo referência a endereços de memória. ● Cuidado ao referencias objetos e limpa-los da memória.
  • 17. Entendendo como se faz Procedure Teste; var vC1, vC2, vC3: TConta; begin vC1:= Tconta.Create; vC1.dono := 'José'; vC2:= Tconta.Create; vC2.dono := 'Maria'; vC3:=vC1; vC3.deposita(100); vC3:=vC2; vC3.deposita(10); vC3:=nil; freeandnil(vC1); freeandnil(vC2); end;
  • 18. Entendendo como se faz Procedure Teste; var vC1, vC2: TConta; begin vC1:= Tconta.Create; vC1.dono := 'Emilia'; vC2:= Tconta.Create; vC2.dono := 'Emilia'; if vC1 = vC2 then begin // são iguais! end; freeandnil(vC1); freeandnil(vC2); end;
  • 19. Entendendo como se faz ● Aproveite-se das referências de memória para otimizar seus métodos.
  • 20. Entendendo como se faz Unit UConta; //... Type TConta = Class; TConta = Class public numero: integer; dono: String; saldo: real; limite: real; public Procedure saca(valor: real); Procedure deposita(valor: real); Procedure transfere(conta: TConta; valor: real); End; Implementation //...
  • 21. Entendendo como se faz //... Implementation Procedure TConta.transfere(conta: TConta; valor: real); begin saldo := saldo - valor; conta.saldo := saldo + valor; end; //ou Procedure TConta.transfere(conta: TConta; valor: real); begin saldo.saca(valor); conta.deposita(valor); end; //...
  • 22. Entendendo como se faz ● Pode-se deixar sua classe mais inteligente e robusta com a utilização de construtores e destruidores.
  • 23. Entendendo como se faz Unit UConta; Type TConta = Class; TConta = Class public numero: integer; dono: String; saldo: real; limite: real; public Constructor Create; Destructor Free; Procedure saca(valor: real); Procedure deposita(valor: real); Procedure transfere(conta: TConta; valor: real); End; Implementation //...
  • 24. Entendendo como se faz //... Implementation Procedure TConta.Create; begin numero := 0; dono:= ''; saldo:= 0; limite: 1000; end; Procedure TConta.Free; begin // Tratamento de limpeza end; //...
  • 25. Entendendo como se faz ● Aproveite a estrutura e pense sempre de maneira modular. ● Cada classe deve ser especialista no que faz!
  • 26. Entendendo como se faz Conta + numero: integer; + dono: TTitular; + saldo: real; + limite: real; + Constructor Create; + Destructor Free; + saca(valor: real); + deposita(valor: real); + transfere(conta: TConta; valor: real); Titular + nome: String; + endereco: String; + cpf: String; + Constructor Create; + Destructor Free;
  • 27. Entendendo como se faz Unit UTitular; Type TTitular = Class public nome: string; endereco: string; cpf: string; public Constructor Create; Destructor Free; End; Implementation //...
  • 28. Entendendo como se faz Unit UConta; Interface Uses Utitular; Type TConta = Class; TConta = Class public numero: integer; dono: TTitular; saldo: real; limite: real; public Constructor Create; Destructor Free; Procedure saca(valor: real); Procedure deposita(valor: real); Procedure transfere(conta: TConta; valor: real); End; Implementation //...
  • 29. Entendendo como se faz //... Implementation Procedure TConta.Create; begin numero := 0; saldo:= 0; limite: 1000; dono:= TTitular.Create; end; Procedure TConta.Free; begin dono.free; end; //...
  • 30. Entendendo como se faz Procedure Teste; var vC1: TConta; begin vC1:= Tconta.Create; vC1.dono.nome := 'Joao'; vC1.dono.CPF := '11122233300'; VC1.saldo:=0; VC1.deposita(100); freeandnil(vC1); end;
  • 31. Padrão de programação ● Pode-se adotar padrões de programação orientada a objetos para facilitar o trabalho em equipe.
  • 32. Padrão de programação Estrutura de classe em Delphi //------------------------------------------------------- //<Nome do sistema ou conjunto de classes> - <data> //<nome da classe> //<Descrição da classe> //------------------------------------------------------- Unit UTTeste; interface Uses Sysutils, ZDataset, ZConnection, Classes; Type TTeste = Class private VARIAVEIS DE ATRIBUTOS MÉTODOS PRIVADOS: GETS E SETS MÉTODOS PRIVADOS DIVERSOS public CONSTRUTOR DESTRUTOR MÉTODOS PÚBLICOS Estrutura de classe em Delphi public DEFINIÇÃO DE PROPRIEDADES, GETS E SETS End; implementation IMPLEMENTAÇÃO DOS CONSTRUTORES IMPLEMENTAÇÃO DOS DESTRUTORES IMPLEMENTAÇÃO DE MÉTODOS PRIVADOS IMPLEMENTAÇÃO DE MÉTODOS PUBLICOS End;
  • 33. Padrão de programação Unit UConta; Interface Uses Utitular; Type TConta = Class; TConta = Class private a_numero: integer; a_dono: TTitular; a_saldo: real; a_limite: real; private Procedure set_numero(Const Value: integer); Procedure set_dono(Const Value: TTitular); Procedure set_saldo(Const Value: real); Procedure set_limite(Const Value: real); //...
  • 34. Padrão de programação //... Function get_numero: integer; Function get_dono: TTitular; Function get_saldo: real; Function get_limite: real; public Constructor Create; Destructor Free; Procedure saca(valor: real); Procedure deposita(valor: real); Procedure transfere(conta: TConta; valor: real); //...
  • 35. Padrão de programação //... public Property Numero: integer read get_numero write set_numero; Property Dono: TTitular read get_dono write set_dono; Property Saldo: real read get_saldo write set_saldo; Property Limite: real read get_limite write set_limite; Implementation //...
  • 36. Padrão de programação //... Procedure TConta.Create; begin a_numero := 0; a_saldo:= 0; a_limite: 1000; a_dono:= TTitular.Create; end; Procedure TConta.Free; begin a_dono.free; end; //...
  • 37. Padrão de programação //... Procedure TConta.saca(valor: real); var vNovoSaldo: real; begin vNovoSaldo := a_saldo - valor; a_saldo := vNovoSaldo; end; Procedure TConta.deposita(valor: real); begin a_saldo := a_saldo + valor; end; //...
  • 38. Padrão de programação //... Procedure TConta.set_numero(Const Value: integer); begin a_numero := value; end; Procedure TConta.set_dono(Const Value: TTitular); begin a_dono := value; end; Procedure TConta.set_saldo(Const Value: real); begin a_saldo := value; end; Procedure TConta.set_limite(Const Value: real); begin a_limite := value; end; //...
  • 39. Padrão de programação //... Function TConta.get_numero: integer; begin result := a_numero; end; Function TConta.get_dono: TTitular; begin result := a_dono; end; Function TConta.get_saldo: real; begin result := a_saldo; end; Function TConta.get_limite: real; begin result := a_limite; end; End.
  • 40. Concluindo ● Toda a mudança requer um período de adaptação. ● Os ganhos da POO são muitos, mas é necessário prática, disciplina e paciência para quem ainda se inicia na metodologia.
  • 41. Bibliografia ● Caelum. Apostila Java e Orientação a objetos. http://www.caelum.com.br/apostila-java- orientacao-objetos/orientacao-a-objetos-basica/ ● MELO, Ana Cristina, Desenvolvendo Aplicações com UML 2.0: do conceitual à implementação / Ana Cristina Melo. – 2. ed. – Rio de Janeiro: Brasport, 2004. ● BORLAND, Treinamento Oficial, Delphi 2005 – Application Development with Delphi for Win32 – 2005. ● DEITEL, H. M. Deitel, C# - Como Programar – São Paulo: Pearson Education do Brasil LTDA, 2003.