Programacin Orientada a
Objetos
Compilado por:
Dra. Mayela Coto.
Mag. Sonia Mora
Adaptado por: Jennifer Fuentes Bustos
Creacin de objetos
Creamos un objeto mediante la siguiente sintaxis:
Clase_de_objeto identificador ([lista_de_argumentos]);
//Crea el objeto de tipo Clase_de_objeto con un constructor
Ejemplos:
Persona personita;
Persona pers1(01234567,Sandra, Soto);
Persona pers2("3456789", "Silvia", "Soto", 'F',1995);
En ambos casos, se crean objetos en memoria esttica.
La memoria esttica se define en el momento en que se
compila el programa. Una vez que la funcin finaliza, el
objeto se destruye.
Ejemplo: Clase Circulo
Una empresa de tejidos necesita crear retazos de telas con el borde ribeteado
en hule e impermeabilizadas para cubrir tapas circulares. Declare una clase que
permita calcular la cantidad de hule que se necesita para el ribete (en cm) y el
costo de impermeabilizarlo ($0,75 por cm2).
Defina una clase con atributos, mtodos constructores (con y sin parmetros) y
los mtodos set y get para cada uno de los atributos, los mtodos de clculo as
como la cantidad de hule necesario y el costo de impermeabilizacin.
Ejemplo: Clase Circulo
#include <iostream>
using namespace std;
class Circulo
{
private:
float radio;
public:
Circulo( )
{
radio=0;
}
Circulo( float pRadio )
{
radio=pRadio;
}
Ejemplo: Clase Circulo
void setRadio (float pRadio)
radio = pRadio;
float getRadio ( )
{
return (radio);
float longitud()
{
return
2 * 3.14159 *
radio;
float area()
{
return 3.14159 * radio * radio;
float costo()
{
return 0.75* area();
Constantes
Se utilizan para representar datos que no cambian durante toda la
aplicacin.
Tambin se les asocia un tipo de datos.
Se definen como variables normales, pero precediendo el nombre
de su tipo la palabra reservada const y dndoles siempre un
valor inicial al declararlas.
Sintaxis:
const <tipo de dato> <identificador> = <valor>;
Ejemplo:
const float PI = 3.14159;
Constantes
Algunas de las ventajas que reportara el uso
de la constante PI:
Es tedioso y
montono escribir
constantemente la
secuencia 3.14159
en vez de PI
Se pueden
cometer errores
que no seran
detectados por
el compilador.
Si se decide
cambiar la
precisin (usar por
ejemplo
Mayor
3.1415926) se
legibilidad para tendran
que hacer
los cdigos
modificaciones en
fuentes.
todos los lugares
donde aparece la
secuencia de
dgitos.
Ejemplo: Clase Circulo
#include <iostream>
using namespace std;
const float PI = 3.14159;
class Circulo
{
private:
float radio;
public:
Circulo( )
radio=0;
}
Circulo( float pRadio )
radio=pRadio;
Ejemplo: Clase Circulo
void setRadio (float pRadio)
radio = pRadio;
float getRadio ( )
{
return (radio);
float area()
return PI * radio * radio;
}
float longitud()
return
{
2 * PI *
radio;
}
float costo()
{
};
return 0,75* area();
Ejemplo: Clase Circulo
Escriba la seccin del main() para crear TRES objetos
Telas
telaA: debe crearse con el constructor con parmetros y tiene un
radio de 4
telaB: debe crearse con el constructor con parmetros solicitando
previamente el radio al usuario.
telaC: debe crearse con el constructor sin parmetros y
posteriormente asignarle un valor al radio dado por el usuario
Calcule el largo de hule requerido y el costo de
impermeabilizar la tela para la tapa C (telaC)
Ejemplo: Clase Circulo
int main() {
int r;
Crea un objeto telaA
con radio 4
Circulo telaA(4);
cout << "Digite el radio de la segunda tela: " <<endl;
cin>>r;
Circulo telaB(r);
Crea un objeto telaB con el valor del
radio dado por el usuario
Ejemplo: Clase Circulo
Crea un objeto telaC
Circulo telaC;
cout << "Digite el radio de la tercera tela: " <<endl;
cin>>r;
[Link](r);
Modifica el valor del
radio del telaC
cout<< "El costo de impermeabilizar la tela C es: " <<[Link]()<<endl;
cout<< "La cantidad de hule requerido para la tela C es: <<[Link]()<<endl;
system("pause");
return 0;
}
Ejemplo: Clase Circulo
Duplique el valor actual del radio de la telaB
Calcule la nueva cantidad de hule y el nuevo
costo de impermeabilizarla
Ejemplo: Clase Circulo
int main() {
int r;
int r1;
Obtiene el radio
r1 = [Link]();
r1= r1 *2;
Modifica el valor
del radio
[Link](r1);
cout<< "El costo de impermeabilizar la tela B es:
<<[Link]()<<endl;
cout<< "La cantidad de hule requerido para la tela B es: " :
<<[Link]()<<endl;
system("pause");
return 0;
}
Ejemplo: Clase Circulo
int main() {
int r;
int r1;
r1 = [Link]();
r1= r1 *2;
[Link](r1);
..
system("pause");
return 0;
}
[Link]([Link]()*2);
Ejercicio
Un propietario de tierras quiere vender su terreno pero lo quiere
hacer segregndolo en terrenos ms pequeos , todos con forma
rectangular. Disee una clase que le permita resolver el problema de
calcular lo que cuesta cada terreno , con los mtodos bsicos
(constructor, set y get) y mtodos de clculo. El costo del terreno es de
50,000 colones por m2
ancho
largo
area = largo * ancho
perimetro = 2*largo + 2*ancho
Ejemplo: Clase Rectngulo
#include <iostream>
// mtodos
using namespace std;
public:
// constructor con parmetros
class Rectangulo
{
Rectangulo (float l, float a)
{
private:
// atributos
largo = l;
ancho = a;
float largo;
float ancho;
// constructor sin parmetros
Rectangulo ( )
{
largo = 0;
ancho = 0;
Ejemplo: Clase Rectngulo
// mtodos set
// mtodos get
void setLargo(float l)
float getLargo( )
largo=l;
}
return largo;
}
void setAncho (float a)
float getAncho( )
{
ancho=a;
return ancho;
}
Ejemplo: Clase Rectngulo
// mtodos de clculo
float perimetro( )
return 2 * (largo+ ancho);}
float area( )
return largo * ancho;}
float costo( )
return area()*50000;
}; // fin clase
Note la diferencia
en cmo se invoca a
un atributo y a un
mtodo
Ejercicio: Clase Rectngulo
Defina el main de la clase Rectangulo
Cree dos objetos terrenos de tipo Rectangulo, calcule
e imprima el rea y el permetro de ambos y el costo
de venta de los mismos.
Ejercicio: Clase Rectngulo
// cuerpo principal
Se crea un terreno
de largo 7 y ancho 3
int main( )
Se llama al mtodo area
para terrenoA
{
Rectangulo terrenoA(7,3);
cout<< "El area del terreno A es "<<[Link]()<<endl;
cout<< "El perimetro del terreno A es "<<[Link]()<<endl;
cout<< "El costo del terreno A es "<<[Link]()<<endl;
Rectangulo terrenoB(5,2);
cout<< "El area del terreno B es "<<[Link]()<<endl;
cout<< "El perimetro del terreno B es "<<[Link]()<<endl;
cout<< "El costo del terreno B es "<<[Link]()<<endl;
system("pause");
return 0;
Se crea un terreno
de largo 5 y ancho 2
Se llama al mtodo
perimetro para terrenoB
Usado nicamente con fines acadmicos