• No se han encontrado resultados

AP II 2015 Clase 1

N/A
N/A
Protected

Academic year: 2020

Share "AP II 2015 Clase 1"

Copied!
19
0
0

Texto completo

(1)

Presentación de la materia

Docentes:

Rosita Wachenchauzer <rositaw arroba gmail punto com> Martín Albarracín <mfranzo arroba gmail punto com>

Margarita Buriano <mburiano arroba gmail punto com>

Objetivos de la materia:

Usar estructuras dinámicas de datos.

Implementar estructuras dinámicas de datos.

Analizar las ventajas y desventajas, fortalezas y debilidades de las

múltiples estructuras dinámicas de datos y sus implementaciones.

Analizar y desarrollar algoritmos recursivos.

Analizar la complejidad de algoritmos y estructuras de datos

(2)

Presentación de la materia Forma de trabajo:

Utilizaremos como referencia principal de la materia los libros:

ESTRUCTURAS DE DATOS EN JAVA de Mark Allen WeissPIENSA EN JAVA de Bruce Eckel

Usaremos JAVA como lenguaje de programación de referencia para la realización de ejemplos de los temas tratados en clase y de los trabajos prácticos de la materia.

Realizaremos el desarrollo de ejercicios con lápiz y papel en pseudocodigo

JAVA.

Definición: Pseudo-codigo

En ciencias de la computación, y análisis numérico el pseudocódigo (o falso lenguaje) es una descripción informal y compacta de alto nivel del principio operativo de un programa informático u otro algoritmo, que utiliza las

convenciones estructurales de un lenguaje de programación verdadero, pero que está diseñado para la lectura humana en lugar de la lectura mediante máquina, y con independencia de cualquier otro lenguaje de programación.

WikipediA

(3)

Presentación de la materia

Bibliografía básica:

Weiss, Mark Allen. ESTRUCTURAS DE DATOS EN JAVA. ADDISON-WESLEY, 2000.

Eckel, Bruce. Piensa en Java. PEARSON EDUCATION, 2002.

Bibliografía de consulta:

Weiss, Mark Allen. Data structures & problem solving using Java. 4ta Ed. 2010.

Meyer , Bertrand. Object Oriented Software Construction. SECOND EDITION. ISE Inc.

Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Patrones de Diseño. Elementos de software orientado a objetos reutilizable. PEARSON EDUCATION S.A. 2003.

Fowler, Martin. UML gota a gota. Addison Wesley Longman de México S.A. de C.V. 1999.

(4)

Presentación de la materia

Sitio Web de la materia:

https://sites.google.com/site/algoritmosyprogramacionii2015/

Grupo de la materia:

https://groups.google.com/forum/#!forum/alg-y-prog-ii-2015-untref

(5)

Presentación de la materia

Metodología de evaluación

2 parciales y un recuperatorio de cada uno.

2 trabajos prácticos.

Exposición en clase.

(6)

Programación Orientada a Objetos (POO)

La POO permite describir el problema en términos del propio

problema, en vez de en términos del sistema en el que se ejecutará el programa final.

Representa los elementos del espacio del problema mediante “objetos” que se comunican dentro del espacio de la solución (y también serán necesarios otros objetos que no tengan su análogo dentro del espacio del problema).

Un objeto tiene un estado y se le puede pedir que lleve a cabo determinadas operaciones. Los objetos del mundo real también tienen características y comportamientos. Por ejemplo, un televisor tiene una pantalla y se puede encender o se puede apagar.

(7)

Programación Orientada a Objetos

Alan Kay (uno de los padres de la POO) resumió las cinco

características básicas de Smalltalk (lenguaje de POO puro) que

constituyen un enfoque puro a la programación orientada a objetos:

1.Todo es un objeto: Pensemos en cualquier objeto como una

variable: almacena datos, permite que se le "hagan peticiones",

pidiéndole que desempeñe por sí mismo determinadas operaciones, etc.

1.Un programa es un cúmulo de objetos que se dicen entre sí lo que

tienen que hacer mediante el envío de mensajes. Para hacer una petición a un objeto, basta con "enviarle un mensaje".

(8)

Programación Orientada a Objetos

3.Cada objeto tiene su propia memoria, constituida por otros

objetos. Dicho de otra manera, uno crea una nueva clase de objeto construyendo un paquete que contiene objetos ya existentes. Por

consiguiente, uno puede incrementar la complejidad de un programa, ocultándola tras la simplicidad de los propios objetos.

3.Todo objeto es de algún tipo. Cada objeto es un elemento de una

clase, entendiendo por "clase" un sinónimo de "tipo". La

característica más relevante de una clase la constituyen "el conjunto de mensajes que se le pueden enviar".

3.Todos los objetos de determinado tipo pueden recibir los mismos

mensajes. El conjunto de mensajes que puede recibir un objeto se denomina interfaz.

(9)

Referencias, Clases y Objetos

Los lenguajes de programación orientados a objetos traen definidos un conjunto de tipos primitivos y permiten que el usuario defina nuevos tipos mediante la construcción de clases.

Una clase define un nuevo tipo de dato. Los elementos de este nuevo tipo (es decir, los valores que puede tomar) se denominan objetos.

Por ejemplo, Java tiene los tipos primitivos:

boolean, char, byte, short, int, long, float, double, void

Y nosotros podríamos definir un nuevo tipo de dato denominado Lampara, que reciba los mensajes: encender(), apagar(), brillar() y atenuar()

(10)

Referencias, Clases y Objetos

Todos los tipos que no son tipos primitivos se denominan tipos

referencia. La diferencia entre un tipo primitivo y un tipo referencia

radica en el manejo de la memoria que hacen los lenguajes.

Las variables y las llamadas a función son guardadas en la pila. La Pila reside en la memoria RAM y tiene soporte directo del procesador a través del puntero de pila. Este se mueve hacia abajo para crear mas memoria y hacia arriba para liberarla.

Los valores asignados a las variables de tipos primitivos son guardados en la pila, en la dirección de memoria de la variable.

(11)

Referencias, Clases y Objetos

Los valores asignados a las variables de tipos referencia (variables referencia), es decir, los objetos (o también llamados instancias de

clases) se guardan en una sección de memoria distinta denominada

heap (montículo), que también se encuentra en la memoria RAM. Y en la posición de memoria de la variable referencia se coloca la

dirección donde se encuentra alojado el objeto en el heap.

Por ejemplo, Java tiene 3 tipos referencia que vienen definidos en el lenguaje: String (cadenas de caracteres), Array (vectores) y File

(ficheros).

(12)

Referencias, clases y Objetos Ejemplo:

Supongamos que tenemos 3 variables, varInt de tipo int, var1 de tipo de tipo Punto y var2 de tipo String a las cuales les asignamos el valor 5, y los objetos (0,0) y “Hola” respectivamente.

(13)

Referencias, clases y Objetos

Existen dos tipos de operaciones que pueden hacerse a variables referencia:

Operaciones para examinar o manipular el valor de referencia  Asignación (=)

 Comparación (==, !=)

Operaciones sobre el objeto referenciado  Conversión de tipos

 Acceder a un campo interno o invocar un método (mediante

el operador “.”)

(14)

Referencias, clases y Objetos Ejemplos en Java:

Asignación (=)

String var1 = “Hola”; String var2 = var1;

Comparación (==, !=)

(var1 == var2) es verdadero si var1 y var2 apuntan al mismo objeto

(var1 != var2) es verdadero si var1 y var2 apuntan a objetos diferentes

Conversión de tipos

int var1 = 12; float var2;

var2 = (float) var1;

(15)

Referencias, clases y Objetos

Ejemplos en Java:

Acceder a un atributo interno publico o invocar un método (“.”)

String varNombre = alumno.nombre; Lampara lamparaLiving= new Lampara(); lamparaLiving.iluminar();

Comprobar el tipo de un objeto (instanceof)

if (alumno instanceof Persona) {

System.out.println(alumno.nombre); }

(16)

Referencias, clases y Objetos Declaración de una clase en JAVA:

public class CeldaEntero{

// propiedades

private int valorAlmacenado;

//métodos

public int leer(){

return valorAlmacenado; }

public void escribir (int x){ valorAlmacenado = x; }

}

(17)

Referencias, clases y Objetos Declaración y utilización de objetos en JAVA:

{…

CeldaEntero b; // la variable b puede referenciar a un objeto de tipo CeldaEntero

b = new CeldaEntero(); // crea un objeto CeldaEntero y hace que b lo referencie b.escribir(53); // ejecuta el método escribir del objeto b

p.add(b); // ejecuta el método add del objeto p pasando a b como parámetro …}

(18)

Referencias, clases y Objetos Para poder imprimir en pantalla el estado de un objeto debemos definir el

método toString(). Este método es ejecutado realizamos una salida por pantalla con System.out.println(objeto).

Supongamos que tenemos una clase Persona:

Public class Persona{

Private String nombre = Juan; Private String apellido = Perez;

Public void setNombre(String n) { nombre = n;} Public String getNombre() { return nombre;} Public void setApellido(String n) { apellido= n;} Public String getApellido() { return apellido;} Public String toString(){

System.out.println(“Nombre y Apellido: “ +nombre + “ “ + apellido)} }

Salida en pantalla:

Nombre y Apellido: Juan Perez

(19)

Recolección de basura (

Garbage Collector

)

Todos los objetos que no pueden ser referenciados se consideran basura. En

Java, cuando un objeto creado no es referenciado por ninguna variable, la memoria que consume es reclamada automáticamente por un proceso de la máquina virtual denominado Garbage Collector y pasa a estar disponible. Ejemplo en Java:

{…

Persona p1; // la variable p1 puede referenciar a un objeto de tipo Persona

p1 = new Persona(“Jorge”); // crea un objeto Persona y hace que p1 lo referencie p1.setProfesion(“Abogado”); // ejecuta el método setProfesion del objeto p1

p1 = new Persona(“Pedro”); // crea otro objeto Persona y hace que p1 lo referencie …}

En este ejemplo el objeto Persona con nombre “Jorge” y profesión “Abogado” ha quedado sin referencia.

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)