Вы находитесь на странице: 1из 33

Fundamentos de la

Programacin 1

Ing. Marco Aedo Lpez

EPIS UNSA 2015 marcoaedo@hotmail.com


Programacin Orientada a Objetos

Captulo 5

EPIS UNSA - 2008 marcoaedo@hotmail.com


Objetivos

Comprender los conceptos de clase, objeto, atributo


y mtodo
Aprender a crear clases y objetos
Comprender los mtodos constructores, set y get
Aplicar las recomendaciones de la Ingeniera de
Software para promover la reutilizacin de clases
Valorar las ventajas de la orientacin a objetos
Demostrar los mecanismos de herencia y
polimorfismo en la OO
Solucionar problemas aplicando el paradigma
Orientado a Objetos
ANTECEDENTES
Programa Ejemplo
import javax.swing.*;

class Ejemplo
{
public static void main(String[ ] args)
{
Declara un nombre
JFrame miVentana; (variable de referencia)

miVentana = new JFrame( ); Crea un objeto

miVentana.setSize(300, 200);
miVentana.setTitle("Mi primer programa");
miVentana.setVisible(true);
}
Usa un objeto
}
Programa Ejemplo

miVentana.setSize(300, 400);
1. Conceptos

mtodo1
mtodo2

mtodo3
1. Conceptos

POO: "Programacin Orientada a Objetos". La


idea bsica de este tipo de programacin es
agrupar los atributos (datos o variables) y los
mtodos (funciones) para manejarlos en una
nica entidad: el objeto
Clase: Abstraccin del mundo real
Objetos: Instancia u ocurrencia de una clase
Ejemplo:
Clase: Alumno
Objetos: juan prez, jos surez, etc
1. Conceptos

Proximidad de los conceptos de modelado


respecto de las entidades del mundo real

Auto
1. Conceptos

Integra o encapsula datos y comportamiento del


dominio del problema

Auto
Placa
Marca
Color
NumPuertas
Velocidad

Avanzar()
Frenar()
Encender()
1. Conceptos
Atributo (dato o variable): propiedad de los objetos
de la clase
Mtodo (funcin): accin, realizacin de una tarea.
Manipula los atributos y los objetos de la clase
Ejemplo: Clase: Alumno
Atributos: nombre, apellido, promedio
Mtodos: cambiarPromedio(nota)
cambiarNombre(nomb)
Mensaje: es el modo en que se comunican los objetos
entre si. En Java, un mensaje no es ms que una
llamada a un mtodo de un determinado objeto
elAlumno.cambiarPromedio(11)
1. Conceptos

Ya los hemos utilizado:


Variables -> atributos (datos)
Mtodos son los mismos, pero ahora pertenecen
a una clase especfica
1. Conceptos

EJERCICIO:
Clase Cuenta Bancaria. Indicar atributos y mtodos
2. OO en Java

En Java, un programa consistir de una clase que


contenga el mtodo principal main() (clase principal) y
cero o ms clases que contengan atributos y mtodos
Las clases pueden ser creadas por nosotros, ser
parte de la biblioteca de Java o creadas por terceros
Es importante saber cmo tener un marco de
trabajo ordenado para los programas orientados a
objetos
2. OO en Java

Si la clase ser accesible por el pblico, se utilizar


el modificador de acceso public
Se recomienda crear un archivo .java con el
mismo nombre que la clase que contiene
Recomendacin: nombre de clase con Mayscula
inicial
2. OO en Java
SINTAXIS
//NombreClase.java
public class <NombreClase> [<clase base e interfaces>]
{ private <atributos privados>
protected <atributos protegidos>
public <atributos pblicos>

private <mtodos privados>


protected <mtodos protegidos>
public <mtodos pblicos>
}
//Aplicacion.java
public class Aplicacion
{
public static void main(String[] args)
{
NombreClase objeto1 = new NombreClase();
objeto1.nombreMetodo();
}
}
2. OO en Java
3. Atributos y mtodos set y get
Los atributos son variables que se declaran fuera de todo
mtodo y se declaran antecediendo con:
public: accesible por mtodos dentro y fuera de la
clase del objeto
private: accesible slo por mtodos de la clase del
objeto
Los parmetros de los mtodos son variables locales al
mtodo
Los atributos existen mientras exista el objeto al que
pertenecen
Se accede a ellos por medio de los mtodos
set (mutador, para establecer el valor del atributo) y
get (accesor, para obtener el valor del atributo)
3. Atributos y funciones set y get
EJERCICIO: Basado en el ejemplo del LibroCalificaciones,
modificar las clases para que se cree el objeto miLibro,
luego que muestre el valor de la variable de instancia
nombreCurso usando su accesor, luego establecer un valor
para dicha variable de instancia usando su mutador, a
continuacin que imprima en pantalla el valor de la misma
variable usando el mtodo correspondiente
mostrarMensaje()
3. Atributos y funciones set y get
3. Datos miembro y funciones set y get
PROBLEMA:
Crear un programa que cree 2 objetos de la clase Alumno,
que les de valores ingresados por teclado y que me
muestre los datos en formato: apellido, nombre =
promedio
4. Inicializando objetos con constructores
Mtodo invocado cuando se crea un objeto
Si no se incluye uno se llama al constructor por default
(sin parmetros)
Tiene el mismo nombre que la clase, no devuelve valores
y es generalmente pblico
Sirve para inicializar el objeto antes de usarlo
Si le creamos algn constructor explcitamente, Java ya
no crea el constructor por default
4. Inicializando objetos con constructores
5. Validacin en mtodos miembro set
Los mtodos set tienen un beneficio aadido
Permitirn validar los valores a establecer a un atributo
El objetivo es dejar al objeto en un estado consistente
segn reglas del dominio del problema
Ejemplo:
nombre de curso de mximo 27 caracteres
nmero de da segn mes
nmero de mes, etc
6. Introduccin a la Herencia y el
Polimorfismo
Java tiene Collections
Ya vimos una de las clases de esta coleccin: ArrayList
Pero no es el nico, entre otros tambin tenemos el
LinkedList
Que en ciertas ocasiones son ms eficientes que
ArrayList
Lo que es ms interesante: pueden hacer todo lo que
ArrayList puede hacer
Cmo logra esto?
Porque ambos son especializaciones de la clase List y
heredan todo de ella
En las subclases se puede redefinir y aadir mtodos
List

ArrayList LinkedList
6. Introduccin a la Herencia y el
Polimorfismo
-ArrayList Una lista implementada utilizando un arreglo de
dimensin modificable. Es costoso aadir o borrar un
elemento cerca del principio de la lista si sta es grande,
pero es relativamente poco costoso de crear y rpido para
acceso aleatorio.

-LinkedList Una implementacin de una lista doblemente


enlazada. La modificacin es poco costosa para cualquier
tamao, pero el acceso aleatorio es lento. til para
implementar colas y pilas.
-getFirst(), getLast(), removeFirst(), removeLast(), addFirst(), addLast()
6. Introduccin a la Herencia y el
Polimorfismo
6. Introduccin a la Herencia y el
Polimorfismo
Programacin Orientada a Objetos

Gracias

Вам также может понравиться