Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
da
t a
e n
r i
o
ó n
c i )
a OO 1
a m (P P C
r
g o s I
o t
e
Pr bje t o r i o
d
o bora
a
L
Historia de la POO
• La POO se utilizó por primera vez para facilitar la creación de
simulaciones de fenómenos reales con una computadora.
• El primer lenguaje de programación orientado a objetos fue
Simula67. Sí, de 1967.
• Se popularizó en la década de los 80. Eso gracias a C++, una
extensión del lenguaje C, bastante usado en esa época.
• Los lenguajes orientados a objetos se adaptan muy bien al
desarrollo de interfaces gráficas de usuario como las que tienen los
sistemas operativos modernos.
• Algunos lenguajes orientados a objetos son: Java, C++, C#, Python,
Ruby, PHP (versión 5 o posterior), Visual Basic y Object Pascal.
Conceptos de la POO
• Los programas se diseñan como un conjunto de objetos que se
relacionan entre sí.
• Los objetos son «instancias» de una clase. Lo que en realidad se
codifica son clases.
• Los atributos son variables que pertenecen a la clase. Se dice que
mantienen el «estado» del objeto.
• Los métodos o procedimientos de un objeto son fragmentos de
código que se pueden mandar a ejecutar desde la misma clase o
desde otras. Se dice que son el «comportamiento» del objeto.
es
a s
Cl
Clases
• Cada clase tiene una función bien definida que va a desarrollar en
el programa.
• Una clase puede representar cualquier cosa que sea relevante para
el programa. Puede tratarse de objetos físicos como un árbol, o
abstractos como un conjunto de operaciones matemáticas.
• Las clases son como una plantilla o molde. Representan a un
objeto, pero si el programa lo requiere se pueden crear todos los
objetos que sean necesarios a partir de la misma clase.
Clases
• Las clases se componen de métodos y atributos.
● Los métodos son lo que le da su comportamiento a los objetos.
● Los atributos son lo que le da su estado a los objetos.
• Todos los objetos de la misma clase tendrán el mismo
comportamiento. El estado de los diferentes objetos de una misma
clase puede variar independientemente durante la ejecución del
programa.
Representación de Representación de la misma clase en Java
una clase en UML
public class NombreDeLaClase {
atributo
método() {…}
}
Clases
• Importante: En Java, las clases se tienen que declarar en un
archivo que tenga el MISMO nombre de la clase, y cuya extensión
sea .java.
• Puede haber más de una clase en un solo archivo. En ese caso se
debe usar el nombre de una de las clases como nombre del
archivo.
o s
u t
ri b
At
Atributos
• Como su nombre lo indica, los atributos son características del
objeto que representa la clase.
● Por ejemplo, si la clase representa un carro sus atributos pueden
ser: El color, su ubicación, la cantidad de pasajeros.
• Los atributos son como variables, pero pertenecen sólo a la clase
donde se declaran.
• Pueden declararse en cualquier parte DENTRO de una clase, pero
siempre FUERA de los métodos de la clase.
• Una clase puede tener varios atributos. El estado de un objeto es el
valor de todos sus atributos en un momento dado. Por eso el estado
puede variar en el tiempo, cuando cambian los valores de los
atributos.
Declaración de atributos en Java
• Un atributo se puede declarar de la siguiente forma:
Nombre de la
Visibilidad Tipo de dato constante
public static final double ANCHO = 100.0;
Parámetros
Tipo de dato
Nombre del método(son opcionales)
Visibilidad
public double sumar(double num1, double num2) {
return num1 + num2;
}
Cuerpo del método
Parámetros
Tipo de dato
Nombre del método (son opcionales)
Visibilidad
public void avanzar(double dX, double dY) {
…
}
Cuerpo del método
• Este método es de tipo void. Sólo los métodos pueden ser de este tipo, y
significa que no se retorna ningún valor.
Relación entre métodos y atributos
• Los métodos pueden modificar los valores de los atributos.
• En este ejemplo, posicionX y posicionY son atributos de la clase
Carro:
Integer contador = 0;
package simulacion;
public Sí Sí Sí Sí
protected Sí Sí Sí No
Ninguno Sí Sí No No
private Sí No No No
es
o n
c i
da
e n
o m
c
Re
Buenas prácticas de programación
• Las clases se nombran con inicial mayúscula. Los paquetes,
atributos, métodos, variables y parámetros con inicial minúscula.
No se usa «_».
• Dentro de la clase, declarar primero todos los atributos. Después el
o los constructores y por último todos los métodos.
• Inicializar los atributos en el constructor y no en su declaración (al
inicio de la clase).
• Declarar los atributos como privados y hacerlos accesibles sólo a
través de métodos públicos (principio de encapsulamiento).
• Usar constantes para guardar valores que no cambian durante la
ejecución del programa y que aparecen en muchas partes.
• Comentar cada clase, atributo y método. Indicar qué representa,
cómo se usa o qué hace.
• Usar tabulaciones y líneas en blanco para mantener el código
ordenado y fácil de entender.
c o
c ti
á
pr
l o
p
em
Ej
Enunciado
• Se solicita un programa donde se tengan los siguientes tipos de
automóvil: Deportivo, sedán y pick-up.
• Los automóviles reciben instrucciones para desplazarse sobre un
cuadrado de 100m de lado.
● Si la instrucción para mover el automóvil puede hacer que se
salga del área permitida, el automóvil no se debe mover.
• Los automóviles deben reportar en qué posición quedaron dentro
del área cuando se mueven.
• Cuando se crea un nuevo automóvil, debe aparecer en el centro del
área.
• Se deben proporcionar operaciones para agregar o quitar un
pasajero a los automóviles. El sedán puede llevar hasta cuatro
personas y el deportivo y el pick-up hasta dos personas. Para que
un automóvil se pueda mover debe tener por lo menos un
pasajero.
Enunciado
• Los pick-ups también deben poder llevar una carga de hasta
1,000Kg. Se debe proporcionar un método para modificar la carga.
La cantidad de carga que se quiere agregar o quitar se recibe como
parámetro, y puede ser positiva o negativa.
Ideas para la solución
• Se usará un plano cartesiano para representar el área donde se pueden
mover los vehículos.
● Cada vehículo tendrá una posición en el eje x y otra en el eje y.
• El método avanzar() verificará que haya por lo menos un pasajero antes
de mover el vehículo. También verificará que el vehículo no se salga del
área permitida.
• Sedan, Deportivo y PickUp heredarán de una clase Carro.
• Se usará una clase Area, que sólo tendrá dos constantes para indicar
las dimensiones del área donde se pueden mover los vehículos.
• El código de las clases y cómo ejecutar el programa se encuentra en la
carpeta «Ejemplo» incluida con esta presentación.