Está en la página 1de 22

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;
telaC.setRadio(r);

Modifica el valor del


radio del telaC

cout<< "El costo de impermeabilizar la tela C es: " <<telaC.costo()<<endl;


cout<< "La cantidad de hule requerido para la tela C es: <<telaC.longitud()<<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 = telaB.getRadio();
r1= r1 *2;

Modifica el valor
del radio

telaB.setRadio(r1);

cout<< "El costo de impermeabilizar la tela B es:


<<telaB.costo()<<endl;
cout<< "La cantidad de hule requerido para la tela B es: " :
<<telaB.longitud()<<endl;

system("pause");
return 0;
}

Ejemplo: Clase Circulo


int main() {
int r;
int r1;

r1 = telaB.getRadio();
r1= r1 *2;
telaB.setRadio(r1);

..
system("pause");
return 0;
}

telaB.setRadio(telaB.getRadio()*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 "<<terrenoA.area()<<endl;

cout<< "El perimetro del terreno A es "<<terrenoA.perimetro()<<endl;


cout<< "El costo del terreno A es "<<terrenoA.costo()<<endl;
Rectangulo terrenoB(5,2);
cout<< "El area del terreno B es "<<terrenoB.area()<<endl;

cout<< "El perimetro del terreno B es "<<terrenoB.perimetro()<<endl;


cout<< "El costo del terreno B es "<<terrenoB.costo()<<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

También podría gustarte