SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHPVibrant Technologies & Computers
 
Object oriented approach in python programming
Object oriented approach in python programmingObject oriented approach in python programming
Object oriented approach in python programmingSrinivas Narasegouda
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental PrinciplesIntro C# Book
 
C traps and pitfalls for C++ programmers
C traps and pitfalls for C++ programmersC traps and pitfalls for C++ programmers
C traps and pitfalls for C++ programmersRichard Thomson
 
Inheritance ppt
Inheritance pptInheritance ppt
Inheritance pptNivegeetha
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Conceptsthinkphp
 
the Concept of Object-Oriented Programming
the Concept of Object-Oriented Programmingthe Concept of Object-Oriented Programming
the Concept of Object-Oriented ProgrammingAida Ramlan II
 
Stl Containers
Stl ContainersStl Containers
Stl Containersppd1961
 
Angular 8
Angular 8 Angular 8
Angular 8 Sunil OS
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design PrinciplesAndreas Enbohm
 
Python Advanced – Building on the foundation
Python Advanced – Building on the foundationPython Advanced – Building on the foundation
Python Advanced – Building on the foundationKevlin Henney
 
OOP in C++
OOP in C++OOP in C++
OOP in C++ppd1961
 
Hierarchical inheritance
Hierarchical inheritanceHierarchical inheritance
Hierarchical inheritancezindadili
 
Class and object in C++
Class and object in C++Class and object in C++
Class and object in C++rprajat007
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial Jm Ramos
 

La actualidad más candente (20)

PHP - Introduction to Object Oriented Programming with PHP
PHP -  Introduction to  Object Oriented Programming with PHPPHP -  Introduction to  Object Oriented Programming with PHP
PHP - Introduction to Object Oriented Programming with PHP
 
Object oriented approach in python programming
Object oriented approach in python programmingObject oriented approach in python programming
Object oriented approach in python programming
 
Introduction of python
Introduction of pythonIntroduction of python
Introduction of python
 
Python-DataAbstarction.pptx
Python-DataAbstarction.pptxPython-DataAbstarction.pptx
Python-DataAbstarction.pptx
 
20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles20. Object-Oriented Programming Fundamental Principles
20. Object-Oriented Programming Fundamental Principles
 
C traps and pitfalls for C++ programmers
C traps and pitfalls for C++ programmersC traps and pitfalls for C++ programmers
C traps and pitfalls for C++ programmers
 
Inheritance ppt
Inheritance pptInheritance ppt
Inheritance ppt
 
Java Object Oriented Programming
Java Object Oriented Programming Java Object Oriented Programming
Java Object Oriented Programming
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
C++ oop
C++ oopC++ oop
C++ oop
 
the Concept of Object-Oriented Programming
the Concept of Object-Oriented Programmingthe Concept of Object-Oriented Programming
the Concept of Object-Oriented Programming
 
Stl Containers
Stl ContainersStl Containers
Stl Containers
 
Angular 8
Angular 8 Angular 8
Angular 8
 
SOLID Design Principles
SOLID Design PrinciplesSOLID Design Principles
SOLID Design Principles
 
C++ Interview Questions
C++ Interview QuestionsC++ Interview Questions
C++ Interview Questions
 
Python Advanced – Building on the foundation
Python Advanced – Building on the foundationPython Advanced – Building on the foundation
Python Advanced – Building on the foundation
 
OOP in C++
OOP in C++OOP in C++
OOP in C++
 
Hierarchical inheritance
Hierarchical inheritanceHierarchical inheritance
Hierarchical inheritance
 
Class and object in C++
Class and object in C++Class and object in C++
Class and object in C++
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial
 

Destacado

Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)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
 
Dados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapDados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapLanderson Gomes
 

Destacado (20)

Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
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
 
Programação-Aula004
Programação-Aula004Programação-Aula004
Programação-Aula004
 
Dados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnapDados e Serviços Remotos via DataSnap
Dados e Serviços Remotos via DataSnap
 

Similar a Programação OO 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
 

Similar a Programação OO 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
 

Más 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
 

Más 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

Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 

Último (20)

Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 

Programação OO 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.