Sei sulla pagina 1di 16

Orientao a objetos

Prof. Diogo Caetano Garcia


Professor de Engenharia Eletrnica na Faculdade do Gama
/UnB
Doutor em Engenharia Eltrica (UnB / 2012)
Mestre em Engenharia Eltrica (UnB / 2008)
Engenheiro eletricista (UnB / 2006)
Orientao a objetos
A linguagem C considerada uma linguagem procedural

oQuando aprendemos a programar, comeamos fazendo
exemplos de cdigo desestruturado: uma
funo main contendo tudo o que dever ser feito;

oEm seguida, separamos o cdigo em procedimentos
especficos, ou funes;

oTambm utilizamos estruturas (structs) para agrupar
variveis de tipos diferentes que representem atributos do
problema a resolver.
Orientao a objetos
A linguagem C considerada uma linguagem procedural

oCada funo do cdigo funciona como um "centro de
processamento" isolado ==> da a necessidade de
diferenciar a passagem de parmetros por valor e por
referncia;

oPodemos tambm criar arquivos separados para funes
especficas e para a funo main;

oCada arquivo pode ser visto como um mdulo separado.
Orientao a objetos
A linguagem C++ considerada uma linguagem orientada a
objetos

oAo invs de procedimentos, temos classes e objetos;

oClasses so um apanhado de atributos e procedimentos;

oExemplo: retngulos possuem largura, comprimento, rea e
permetro, aonde:
rea = largura*comprimento

permetro = 2*(largura+comprimento)
Orientao a objetos
A linguagem C++ considerada uma linguagem orientada a
objetos

oPara representarmos um retngulo em C, poderamos criar
uma struct retangulo, do tipo:
struct retangulo
{
float largura, comprimento;
float area, perimetro;
}
Orientao a objetos
A linguagem C++ considerada uma linguagem orientada a
objetos

oO clculo da rea e do permetro poderiam ser feitos em
uma funo da forma:
void calc_area_perim( struct retangulo *A)
{
A->area = (A->largura)*(A->comprimento);
A->perimetro = 2*(A->largura + A->comprimento);
}
Orientao a objetos
A linguagem C++ considerada uma linguagem orientada a
objetos

oDa mesma forma que agrupamos os parmetros largura,
comprimento, area e perimetro em uma estrutura,
poderamos agrupar os procedimentos feitos com esses
parmetros;

o isso o que a classe faz - agrupa parmetros e
procedimentos.
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1. perim();
}
Aqui, s definimos
um tipo genrico,
chamado retangulo

Podemos ter vrias
instncias desse
tipo genrico no
cdigo
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
Definimos que todos
os membros
de retangulo podem
ser acessados de
fora da classe. Mais
tarde veremos isto
com mais
profundidade
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
A classe possui
duas variveis, larg
e comp, acessadas
da mesma forma
que membros de
uma struct
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
A classe possui
duas funes, area()
e perim(),
acessadas da
mesma forma que
membros de uma
struct
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
Declaramos um
objeto, r1, da
classe retangulo
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
Definimos a largura
e o comprimento
do retangulo r1
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
As funes area() e
perim() fornecem a
rea e o permetro
de r1, de acordo
com os valores
indicados
anteriormente para
r1.larg e r1.comp
Orientao a objetos
#include <iostream>
using namespace std;
class retangulo
{
public:
float larg, comp;
float area( ) {return larg*comp; }
float perim( ) { return 2*(larg+comp); }
};
void main()
{
retangulo r1;
r1.larg = 2.0; r1.comp = 3.0;
cout << "Area = " << r1.area();
cout << ", perimetro = " << r1.perim();
}
Area = 6, perimetro = 10

Potrebbero piacerti anche