Академический Документы
Профессиональный Документы
Культура Документы
Contenido
1. Introduccin
Paradigmas de Programacin
Contenido
Contenido
Estructuras de control
Mtodos
Bibliografa
1. Thinking in Java. Eckel,Bruce, Prentice Hall, Tercera
Edicin, 2003.
2. Thinking in C++. Eckel,Bruce, Prentice Hall, Segunda
Edicin, 2000.
3. Introduction to Object-Oriented Programming Using
C++, Peter Mller, Globewide Network Academy, 1997.
4. Programacin Orientada a Objetos. Joyanes Aguilar,
Luis; Graw-Hill, Segunda Edicin, 1998.
1 Libros disponibles en www.bruceEckel.com
2 Libro disponible en www.gnacademy.org
1. Introduccin a la POO
Paradigma es un conjunto de teoras, estndar y mtodos que juntos representan
un medio de organizacin del conocimiento: es decir, es un medio de visualizar
el mundo (Kuhn).
Un paradigma de programacin representa un enfoque particular o filosofa para la
construccin del software.
Clasificacin de Lenguajes de programacin de acuerdo al paradigma.
Imperativos
Funcionales
Lgicos
Son los lenguajes los que se basan en la teora lgica de primer orden
La aplicacin de reglas, hiptesis, axiomas y teoremas: Prolog, Mercury, ALF, etc.
1. Introduccin a la POO
Lenguajes de programacin ms populares segn TIOBE SOFTWARE
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
1. Introduccin a la POO
1. Introduccin a la POO
Lenguajes de Programacin.
Simula 67 primer LOOP,
Hereda de Simula I y Algol 60.
1. Introduccin a la POO
Lenguajes de Programacin.
10
11
1. Introduccin a la POO
Ruta de evolucin de los lenguajes de programacin:
Programacin
No estructurada
Programacin
Procedimental
Programacin
Modular
Main
Program
Procedure
Datos Globales
Programacin
OO
Nombre
Estatura
Fecha de nacimiento
Matricula
Color de los ojos
Preferencia sexual, Etc.
alumno abstracto
Propiedades especificas
del problema
Nombre
Matricula
Fecha de nacimiento, Etc.
Datos del
Modelo
12
Crear alumno,
borrar alumno,
Obtener matricula,
Obtener estado acadmico,
Etc.
ADT: Alumno
Datos
Operaciones
Un tipo TAD es puede definir como un conjunto de valores sobre los que se
aplican un conjunto dado de operaciones que cumplen determinadas
propiedades.
Un TAD define un modelo matemtico de podra ser implementado en algn
lenguaje de programacin.
La definicin de un TAD no est relacionada en absoluto con los detalle de la
implementacin. Tal vez ni siquiera sea posible implementar un TAD particular
en algn software o hardware .
13
14
15
Por ejemplo:
PILA
16
17
18
19
20
class Logo {
attributes:
Circle circle
Triangle triangle
methods:
set(Point where)
}
has a
has a
Una relacin un tipo de es una relacin entre clases y se lleva a cabo cuando
una clase B se puede definir como una clase A ms especializada.
Por ejemplo:
class Point {
attributes:
int x, y
methods:
setX(int newX)
getX()
setY(int newY)
getY()
}
21
es un
( is a)
22
Circle acircle
acircle.setX(1)
/* Heredados de Point */
acircle.setY(2)
acircle.setRadius(3) /* aadidospor Circle */
Circle acircle
...
move(acircle, 10)
23
24
Point
Circle
25
Herencia
Herencia Mltiple
La herencia mltiple no significa que mltiples subclases compartan la misma clase,
y tampoco significa que una subclase herede de una clase que es a su vez subclase
de otra clase.
Significa que una subclase puede tener ms de una superclase.
DrawableString dstring
...
move(dstring, 10)
...
dstring.append("The red brown fox ...")
26
27
Esto se realiza por medio de una clase abstracta la cual especifica algunas
propiedades , pero no las define completamente.
Despus hay que hacer que las clases de deriven de la clase abstracta para
forzar a las clases derivadas a implementar las propiedades de la clase base.
268
29
Herencia
Clase Abstracta
Por ejemplo:
Por ejemplo:
Una clase A se llama clase abstracta si es usada solamente como una superclase
para otras clases. La Clase A solamente especifica propiedades. No se usa para crear
objetos. Las clases derivadas deben definir las propiedades de A.
30
31
32
33
var i : integer;
var i : integer;
...
i := 'string';
34
...
/* No a parece i antes */
i := 123 /* Crea i como un integer */
35
36
display(DrawableObject o) {
...
o.print()
...
}
Circle acircle
Point apoint
Rectangle arectangle
/* debera invocar*/
display(apoint)
/* apoint.print() */
display(acircle)
/* acircle.print() */
display(arectangle) /* arectangle.print() */
37
38
39
methods:
virtual foo()
bar()
}
methods:
virtual foo()
bar()
demo(Base o) {
o.foo()
o.bar()
}
}
Base abase
Derived aderived
demo(abase)
demo(aderived)
virtual denota que si el mtodo es invocado, su definicin debera ser evaluada por el
contenido del objeto.
40