You are on page 1of 14

CURSO

Introducción a la Computación

Programación Orientada a Objetos

Curso de Programación Orientada a Objetos en Java


1
Programacion Estructurada vs Programacion Orientada a
Objetos

 La programación orientada a objetos es más moderna, es una


evolución de la programación estructurada
 La programación orientada a objetos se basa en los Tipos de
datos denominado Clases que tienen atributos y Métodos y las
instancias son objetos, mientras que en la Programación
estructurada el tipo de datos solo puede tener variables u
atributos.

Curso de Programación Orientada a Objetos en Java


2
Programacion Estructurada vs Programacion Orientada a
Objetos
 PE: Al Alumno se puede definir como:  POO: Al Alumno se puede definir
 String códigoAlumno como:
 String NombreAlumno Clase Alumno
 Date FechaNacimientoAlum Atributos
 Date FechaIngreso  String CodigoAlumno
 String Carrera  String NombreAlumno,
 Int Creditos  Date FechaNacimientoAlum,
 Int Promedio  Date FechaIngreso,
 Los procedimientos se deben realizar  String Carrera
como funciones y/o Procedimientos  Int Creditos
 Int Promedio
Metodos ( Son Funciones o
Procedimientos):
• CalcularCiclo
• CalcularOrdenMerito
• CalcularEdad

Curso de Programación Orientada a Objetos en Java


3
CONCEPTOS FUNDAMENTALES DE POO

Los conceptos fundamentales de programación: objetos, clases, Constructores y mensajes


y métodos.

1. Definir la Clase – Definir el Tipo de Dato Clase


2. Definir el Objeto – Crear una Variable tipo Clase.
3. Inicializar el Objeto ( con Constructores de Clases.)
4. Ejecutar Métodos enviando Mensajes.

Curso de Programación Orientada a Objetos en Java


4
CLASES

 Una clase es la clasificación de los Objetos ( Es un Tipo de Datos)


 Una clase consta de métodos y datos que resumen características comunes del conjunto de objetos.
 El cuerpo contiene las declaraciones de los miembros:
Miembros dato, se declaran como variables.
Miembros método, se declaran y definen (implementan) en el cuerpo de la clase . En C++
normalmente, su implementación se sitúa en el exterior.

class Socio Socio socio_01 = new Socio("Juan Bao");


Socio socio_02 = new Socio (“Luisa Galvez”);
{ private String nombre;
public void darAlta();

class Profesor Profesor Profesor1 = new profesor(“Victor”);


{ Profesor Profesor2 = new profesor(“Jimmy”);
private int Nombre;
private Date Fecha_Ingreso;
public void Tiempo_Servicio(int p)

Curso de Programación Orientada a Objetos en Java


5
ENCAPSULAMIENTO EN LAS CLASES
 Un principio fundamental en programación orientada a objetos es la ocultación de la información, que significa
que determinados datos del interior de un objeto no se puede acceder por métodos externos a la clase.

 El mecanismo fundamental para ocultar datos es ponerlos en una clase y hacerlos privados. A estos datos o
métodos privados sólo se accede desde dentro de la clase.

 Los datos y métodos públicos son accesibles desde el exterior de la clase.

privado

datos o métodos

público

accesibles desde el exterior métodos

Curso de Programación Orientada a Objetos en Java


6
EJEMPLO DE DECLARACIÓN DE UNA CLASE – Depende del lenguaje
de Programación. Java.
class Cuenta public
{
double retirar (double cuanto)
protected double saldo;
public Cuenta() {
{ if (cuanto <= saldo)
saldo = 100.0; {
}
saldo -= cuanto;
public double saldoActual()
{ return cuanto;
return saldo; }
}
else
public void
return 0.0;
depositar(double cantidad)
}
{
saldo += cantidad;
}

Curso de Programación Orientada a Objetos en Java


7
INSTANCIAS DE UNA CLASE: OBJETOS

Lampara mp; // variable de tipo Lampara en Java


Racional r1; // variable de tipo Racional
Persona p1; // variable de tipo Persona
Ventana [] av = new Ventana[10];

calculadora c(0,0,0);

 En Java, las instancias de las clases se definen con el operador new seguido del nombre de la clase y entre
paréntesis la información para inicializar el objeto.

Cuenta c1;
c1 = new Cuenta(); // El objeto Cuenta se referencia con c1
Racional r = new Racional(1,5); // objeto Racional inicializado a 1/5
cl.depositar(200.5); // objeto cl envía mensaje depositar

Curso de Programación Orientada a Objetos en Java


8
CONSTRUCTORES – Inicializador de Objeto
class Circulo public Circulo()
{ {
private int x, y; this(0, 0, 1.0);
private double radio; }
public Circulo(int x0, int y0, double r)
// instancias de Circulo
{
radio = r; Circulo cc1 = new Circulo();
x = x0; Circulo cc2 = new Circulo(3.0);
y = y0; Circulo d;
}
d = new Circulo(-1, 1, 4.5);
public Circulo(double r)
{
this(0, 0, r);
}

Ejemplo java.

Curso de Programación Orientada a Objetos en Java


9
PROGRAMA EN PYTHON primero=int(input("inserta un Numero :: "))
#!/usr/bin/python
segundo=int(input("Inserta otro Numero :: "))
class Calculadora: Objeto=Calculadora(primero,segundo)
def __init__(self, uno, dos):
self.numero = uno opcion=int(input("Desea\n1 - Sumar\n2 - Restar\n3 -
self.numerito = dos Nultiplicar\n4 - Dividir\n"))
if (opcion == 1):
def Suma(self):
print "La suma de los 2 numeros es :: ", (self.numero+self.numerito) Objeto.Suma()
elif (opcion == 2):
def Resta(self):
print "La resta de los 2 numeros es :: ", (self.numero-self.numerito) Objeto.Resta()
elif (opcion == 3):
def Multiplicacion(self):
print "La multiplicacion de los 2 numeros es :: ", Objeto.Multiplicacion()
(self.numero*self.numerito) elif (opcion == 4):

def Division(self): Objeto.Division()


try: else:
print("La division de los 2 numeros es ", (self.numero/self.numerito))
except Exception: print("Debes elegir o uno o dos\n")
print("No se puede dividir con cero!\n")

def __del__(self):
self.numero = None
self.numerito = None

Curso de Programación Orientada a Objetos en Java


10
#include <iostream> void mostrarMayor( int a, int b )
using namespace std; {
class Calculadora if (a > b)
{ cout << “El mayor es: ” << a << endl;
public: else
cout << “El mayor es: ” << b << endl;
void mostrarSuma( int a, int b ) }
{
cout << “La suma es: ” << a + b << endl; void mostrarMenor( int a, int b )
} {
if (a < b)
void mostrarResta( int a, int b ) cout << “El menor es: ” << a << endl;
{ else
if(a > b) cout << “El menor es: ” << b << endl;
cout << “La resta es: ” << a – b << endl; }
if(b > a)
cout << “No se puede realizar la operacion” << endl; };
}
int main()
void mostrarProducto( int a, int b ) {
{
cout << “El producto es: ” << a * b << endl; int num1, num2;
} Calculadora operacion;

void mostrarDivision( int a, int b ) cout << “Introduzca dos numeros enteros: ” << endl;
{ cin >> num1 >> num2;
if(b==0)
cout << “No se puede realizar la operacion” << endl; operacion.mostrarSuma(num1,num2);
else operacion.mostrarResta(num1,num2);
cout << “La division es: ” << a / b << endl; operacion.mostrarProducto(num1,num2);
} operacion.mostrarDivision(num1,num2);
operacion.mostrarMayor(num1,num2);
operacion.mostrarMenor(num1,num2);
Curso de Programación Orientada a Objetos en Java
return 0;
11
}
class calculadora void calculadora::operaciones() if (op=='/')
{ { { int main()
float numero,total,anterior; float n; system("cls"); {
char op; do{ anterior=total; cout<<"Calculadora: Ingrese las
public: if (op=='+') cin>>n; operaciones que desea realizar"<<end
void vacia(); { if (n==0) cout<<"Pulse c para borrar ultima
void opcion(); system("cls"); { operacion "<<endl;
void operaciones(); anterior=total; cout<<"Prohibido dividir entre cero, cout<<"Pulse e para borrar todo "<<e
calculadora(float n, float t, float ta) cin>>n; ingrese otro numero "<<endl; cout<<"Pulse cualquier otra tecla para
{ total=total+n; cin>>n; salir "<<endl;
numero=n; cout<<"= "<<total; } calculadora c(0,0,0);
total=t; n=0; else c.vacia();
anterior=ta; cin>>op; { c.opcion();
} } total=total/n; c.operaciones();
}; else cout<<"= "<<total; cout<<" "<<endl;
if (op=='-') n=0;
void calculadora::opcion() { cin>>op; }
{ system("cls"); }
char opcion; anterior=total; }
cin>>opcion; cin>>n; else
op=opcion; total=total-n; if (op=='e')
} cout<<"= "<<total; {
n=0; system("cls");
void calculadora::vacia() cin>>op; total=anterior;
{ } cout<<"= "<<total;
float n; else cin>>op;
cin>>n; if (op=='*') }
total=n; { else
} system("cls"); if (op=='c')
anterior=total; {
cin>>n; system("cls");
total=total*n; total=0;
cout<<"= "<<total; cout<<"= "<<total;
n=0; cin>>op;
cin>>op; }
} while((op=='+')||(op=='-')||(op=='*')…
else
}

Curso de Programación Orientada a Objetos en Java


12
JAVA
//clase que define una representación de números complejos
//También se define la suma de complejos
class Complejo
{
public double real;
public double imag;
public Complejo(double re, double im)
{
this.real=re;
this.imag=im;
}
public Complejo add(Complejo z)
{
return new Complejo(this.real+z.real,this.imag+z,imag);
}
}
//clase que llama al método suma de la clase Complejo para hacer la suma
//de dos números complejos y presentar por pantalla la parte real e imaginaria
//del número complejo resultante
//La siguiente clase deberá ir en otro fichero distinto

class suma_complejos
{
public static void main(String[] args)
{
Complejo a = new Complejo(40,56);
Complejo b = new Complejo(10,-10);
Complejo c = a.Add(b);
System.out.println(c.real);
System.out.println(c.imag);
}
}

Curso de Programación Orientada a Objetos en Java


13
Programa en C: Clases
#include <iostream>
void Libro::establecerCodigo(int cod)
using std::cout;
{
using std::endl;
Codigo = cod;
}
class Libro {
void Libro::imprime()
public:
{
Libro();
cout << "Titulo: " << Titulo << endl;
void establecerTitulo(char *);
cout << "Codigo: " << Codigo << endl;
void establecerPaginas(int);
cout << "Cant pag: " << Cantpaginas << endl;
void establecerCodigo(int);
}
void imprime();
//FIN FUNCIONES MIEMBRO
private:
char Titulo[40];
int Cantpaginas;
int Codigo;
};//fin de la clase
#include <iostream>
//FUNCIONES MIEMBRO
//PROGRAMA
Libro::Libro()//constructor
int main()
{
{
for (int i = 0; i < 40 ; i++)
Libro Manual;//creo el obj Manual de tipo Libro
Titulo[i]='\0';
Manual.imprime();
Cantpaginas = 0;
Manual.establecerCodigo(5878);
Codigo = 0;
Manual.establecerPaginas(100);
}
Manual.establecerTitulo(“Vargas Llosa");
void Libro::establecerTitulo(char *ptrTitulo)
Manual.imprime();
{
}
for (int i = 0 ;(ptrTitulo[i] != '\0') && i < 40 ;i++)
Titulo[i] = ptrTitulo[i];
}
void Libro::establecerPaginas(int cant)
{
Cantpaginas = cant;
}

Curso de Programación Orientada a Objetos en Java


14

You might also like