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

UNIVERSIDAD DE EL SALVADOR EN LÍNEA

FACULTAD DE INGENIERÍA Y ARQUITECTURA


PROGRAMACION III

LENGUAJE DE PROGRAMACIÓN ORIENTADO A OBJETOS

1. INTRODUCCIÓN
La característica básica de la programación orientada a objetos es el objeto; algo que hace 20
años escapaba de nuestra comprensión. Un nuevo paradigma, el cual daba un giro a la forma
en que habíamos sido educados en el mundo de la programación.

Hoy parece sencillo; un objeto; unas características, y todo esto asociado a un solo ente el cual
es el objeto como tal. Esa entidad es la que encapsula el objeto y sus características; es nuestro
caso de estudio, en pocas palabras lo que da sentido a este paradigma de programación.

Previo a entrar en materia, nosotros ya tenemos los conceptos generales adquiridos en


asignaturas anteriores; por lo que esta unidad se centra en la implementación de ciertos
artefactos y conceptos que harán más eficiente el manejo de información en nuestras
aplicaciones.

2. OBJETIVO DE LA UNIDAD
General:

 Implementar correctamente clases, estructuras de datos, asociaciones y técnicas


relacionadas al paradigma de la programación orientada a objetos.

Específicos:

 Desarrollar programas en los que se solucionen problemas reales, implementando


colecciones derivadas de las clases Set y List en lenguaje java.

 Desarrollar programas en lenguaje Java, en los que se implementen correctamente


clases y las características inherentes a ellas para solventar problemáticas reales.

3. IMPLEMENTACIÓN ESTRUCTURAS DE DATOS


Las estructuras de datos clásicas son:

Variables: es un contenedor que solo guarda un valor dentro de ella.

Arreglos: estructuras homogéneas que contienen varios datos según la dimensión del objeto.

Colecciones: se implementan a través de interfaces. Para nuestro estudio: la interfaz Set y List.

Mapas: basada en la interfaz map.


Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Nuestro motivo de estudio serán las colecciones, por lo que tomaremos en cuenta sus
características principales:

a. Heredan de la interfaz Collection.


b. Solo trabajan con objetos.
c. Son dinámicas, es decir su tamaño es en base a la demanda.
d. Como dependen de interfaces tienen sus propios métodos, los cuales podemos utilizar
de acuerdo a la tarea que necesitemos realizar.
e. Podemos agregar, eliminar, buscar entre otras actividades de acuerdo al tipo de
colección.
f. Pueden ser recorridas por diversos tipos de métodos.

Como heredan de la interfaz Collection necesitamos conocer algunas características de ella:

a. Interfaz que provee de métodos a las estructuras de tipo colección.

b. Algunas clases que la implementan: Vector, Hashtable, LinkedList, ArrayList; entre otros.

c. Permite tratar todas estas clases de la misma forma.

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Mencionaremos a continuación algunos métodos inmersos en las colecciones:

add(o) : añade objeto a la colección.

remove(o): elimina objeto de la colección.

contains(o): devuelve true si el objeto está en la colección.

isEmpty() : devuelve true si la colección está vacía.

size(): retorna el número de elementos de la colección.

Los métodos principales para recorrer colecciones son: a través de la interfaz Iterator y por un
bucle for-each.

Recorrido por Interfaz Iterator:

a. Se encuentra en el paquete java.util

b. La interfaz Iterator tiene el método iterator, que devuelve un objeto del tipo de la
interfaz para recorrer la colección.

c. Recorre secuencialmente los elementos de una colección. Sus métodos de instancia son:

- hasNext(): devuelve true si hay un elementos siguiente al actual.

- next(): devuelve el siguiente elemento.

A continuación un ejemplo:

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Recorrido por bucle for-each:

Sus características son:

a. Podemos recorrer arreglos y colecciones.


b. Es útil cuando no nos importa el valor del índice de los objetos dentro de ella.

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Su sintaxis:

for (tipo variable: estructura){

//reglas del negocio

int suma = 0;

List<Integer> arreglo= new ArrayList<Integer>();

…..

for(int elemento:arreglo){

suma += elemento;

En este caso la colección nombrada arreglo transfiere sus características en variable elemento;
que al final es la estructura que se recorre, con cada uno de sus objetos.

Un ejemplo de su implementación, a continuación:

Su ejecución:

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Como mencionábamos anteriormente las interfaces principales desde las cuales implementan
las colecciones, son la interfaz Set y List. A continuación mencionaremos las principales
características de cada una de ellas.

3.1 INTERFAZ SET


- Hereda de la interfaz Collection.

- Con el método add, si tratamos de adicionar dos elementos iguales solo guardara uno.

- Son excelentes para recorridos secuenciales de los datos

- Para llegar de un elemento a otro hay que pasar por todos los demás elementos.

Ejemplo de declaración de Collection con interfaz Set:

Set <Contribuyente> personas = new TreeSet< Contribuyente >

En este caso Set es la interfaz y TreeSet es la clase que implementa dicha interfaz. La colección
llamada personas es un Set comportándose como un Treeset. Los objetos que se guardan en
cada uno de los elementos son del tipo Contribuyente.

Adicionalmente la interfaz Set implementa la Interfaz Collection.

La declaración anterior también pudo declararse así:

TreeSet <Contribuyente> personas = new TreeSet< Contribuyente >

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Recordemos que Set es una interfaz por lo tanto no puede instanciarse (new).

Ejemplo con interfaz Set:

Su ejecución:

3.2 INTERFAZ LIST


- Se accede a un elemento directamente.

- Añade un nuevo método get(p) donde p es la posición del elemento que queremos
encontrar.

- Como es collection devuelve un objeto.

Entre sus métodos:

- isEmpty() : si la lista esta vacia.


- size(): número de elementos de la lista.

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

Algunas clases de la interfaz List:

a. ArrayList: la lista se guarda en un arreglo.

- Rápido para consultas.

- Tiempo aceptable para inserciones.

b. LinkedList: se implementa con punteros.

- Rápido en inserciones al final de la lista.

- Un tanto lento en consultas.

Ejemplo con interfaz List:

import java.util.*;
public class EjemploList {
public static void main(String arg[]) {
int temp = 0;
List<Integer> lp = new ArrayList<Integer>();
// El tipo es List y lo implementamos con ArrayList
// Utilizamos lista genérica…le decimos que contendrá objetos Integer
int sumaaltura = 0;
//llenamos la lista
for(int i=0;i<5;i++) {
lp.add(i); //el compilador convierte el int en Integer
}
//Creamos objeto iterador para recorrer la lista
Iterator it = lp.iterator();
while(it.hasNext()) {
temp = (int) it.next(); //devuelve obj genérico, hay que pasarlo a int.
System.out.println(temp);
sumaaltura += temp;
} //fin while
System.out.println(sumaaltura);
} //fin main
} //fin clase

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

4. IMPLEMENTACION DE CLASES
Como todos sabemos las clases son plantillas con las cuales nosotros creamos objetos. Estas
plantillas tienen sus atributos (características) y sus métodos (operaciones). Cada uno de los
objetos que crean, tienen sus propios valores en dichos atributos.

Atributos: Tienen su propio valor y pueden ser numéricos, string, fecha, boolean, otro objeto,
etc.

Métodos: es el comportamiento que deberá tener en un momento determinado el objeto.

Las clases son tipos abstractos de datos y los objetos son las variables de instancia de las clases.
En java para una aplicación de escritorio es necesario que la clase que se va a ejecutar tenga el
método main(); el cual es el que desencadena todas las sentencias del inicio al final.

Mencionaremos puntos que hay que tener en consideración al momento de programar una
clase:

- La clase debe tener el mismo nombre del archivo con el que se guarda; de lo contrario
no se podrá compilar ni ejecutar dicha clase.
- Los constructores tendrán el mismo nombre de la clase. Se crean tantos constructores
como sean necesarios de acuerdo a la cardinalidad del modelo de clases; la diferencia
será la cantidad de parámetros que reciban, para crear las instancias correspondientes
de dicha clase.
- En los constructores y parámetros se acostumbra a dejar el mismo nombre de los
atributos de la clase; por lo tanto es aconsejable el uso de la referencia this para evitar
posibles colisiones.
- Sus atributos pueden ser tipos primitivos de datos (int, float, double, boolean, etc); u
Objetos (String, Date, Contribuyente, Alumno, etc).
- Los atributos deberán tener modificadores de acceso para encapsular los valores que
contienen (public, private, protected). Las buenas prácticas de programación no están
llevando a dejar en deshuso el modificador public para los atributos.
- Buena práctica utilizar los métodos get y set para cada uno de los atributos; de las clases
propiamente del modelo de datos.
- Estos métodos get y set acceden a las variables de instancia de las clases.

Lo anterior permite que nuestras clases sean flexibles para el posterior mantenimiento de las
aplicaciones. Nuestro diseño y programación debe estar orientado al futuro; minimizando
tiempos para reestructuraciones del código.

Parte fundamental de esto es la encapsulación, tomando en cuenta lo siguiente:


Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

- Mantener los atributos protegidos (Con un modificador de acceso, generalmente private


o protected).
- Crear métodos de acceso public (get y set) y utilizarlos para acceder directamente a las
variables.

Es de suma importancia respetar el estándar mundial de programadores en java, para nombrar


clases, atributos y métodos. Para esto debemos tomar en cuenta lo siguiente:

● UpperCamel, cuando la primera letra de cada una de las palabras es mayúscula. Bajo
este formato se nombran las clases.
Ejemplo: AlumnoMateria.

● lowerCamel, cuando la primera letra es minúscula para la primera palabra; ya que a


partir de la segunda palabra la primera letra es mayúscula. Bajo este formato se
nombran los métodos y atributos.

Ejemplo para atributo: fechaIngreso.


Ejemplo para método: obtieneAlumno.

Ejemplo de implementación de una clase:


public class Piloto{
private String nombre;

// constructores
public Piloto(){
//constructor por defecto
}
public Piloto(String nombre){
this.nombre = nombre;
}

// métodos get y set


public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

// luego las reglas del negocio necesarias.

} //fin de la clase

4.1 Métodos
Para programar los métodos de nuestras clases hay que tomar en cuenta lo siguiente:
a. Determinar el modificador de acceso. Generalmente es public.
b. Definir el tipo de dato de retorno (puede ser tipo de dato primitivo u objeto). Sino
retorna ningún dato, se utiliza la palabra void.
c. Dar el nombre del método bajo el estándar lowerCamel.
d. Determinar la cantidad, tipo y nombre de los parámetros que recibirá (si es que
necesita)
e. Codificar las reglas del negocio.
f. Si retorno un tipo de dato, utilizar la cláusula return.

Ejemplo codificación método:

public float calculaNota(float notaParcial, float notaTarea, float notaEvaluado)

float promedio;

//reglas del negocio

return promedio;

A continuación la sintaxis para crear objetos a partir de una Clase.


Alumno alumno = new Alumno();

El new crea el objeto llamando al constructor de la clase Alumno.

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

BIBLIOGRAFIA
1. http://www.androidcurso.com/index.php/tutoriales-java-esencial/462-las-
colecciones-en-java
2. http://tutorial.saviasoft.com/java-basico/html/collection-interface.html
3. http://elvex.ugr.es/decsai/java/pdf/3B-Clases.pdf
4. http://www.jtech.ua.es/j2ee/publico/lja-2012-13/sesion02-apuntes.html

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.
UNIVERSIDAD DE EL SALVADOR EN LÍNEA
FACULTAD DE INGENIERÍA Y ARQUITECTURA
PROGRAMACION III

GLOSARIO TÉCNICO
a. Interfaz Map: representación de una estructura de datos, donde sus elementos están en el
formato clave/valor.

b. Acceso Public: son alcanzados desde cualquier paquete.

c. Acceso Protected: los alcanza la misma clase, las clases del mismo paquete y las subclases en
una relación de herencia.

d. Acceso Private: solo son alcanzados desde la clase propietaria.

Este material ha sido proporcionado al estudiante en el marco de su formación a través de una carrera en línea en la
Universidad de El Salvador. Se han respetado los derechos de autor para su elaboración. El debido uso del mismo es
responsabilidad del estudiante.

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