Principios de Computadoras II

Documentos relacionados
Clases y Objetos en C++

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Programación Orientada a Objetos en C++

Tema 6: Clases. Índice

IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Tema: Clases y Objetos en C#. Parte II.

12. Tipos de atributos

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE

Objetos y memoria dinámica

Guía práctica de estudio 04: Clases y objetos

3.4 Clases y Objetos 05/04/2004. Conceptos Generales. Modificadores de la Clase. Estructura de una Clase. Variables Miembros

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

2.2 Nombres, Ligado y Ámbito

Objetos y Clases en Java. ELO-329: Diseño y Programación Orientados a Objetos

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Estructura de Datos y de la Información. Tema 1: Gestión dinámica de la memoria. Departamento de Computación Universidade da Coruña, España.

Capítulo 3. Introducción a la programación. Continuar

Algorítmica y Lenguajes de Programación. Punteros Introducción a estructuras dinámicas

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

CAPITULO 2: VARIABLES Y CONSTANTES

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Principios de Computadoras II

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Tema 2: Programación basada en Objetos

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

Programación Tema 4: Métodos. Programación DIT-UPM

4/14/2010. Objetivos. Que es JAVA. JAVA como plataforma. Reglas Sintácticas y de Codificación Básicas de JAVA

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Asignación Dinámica de Memoria. Agustín J. González Versión original de Kip Irvine ELO 326: Seminario II 2do. Sem. 2001

Tema 3b: Estructura General de un programa en Java

Principios de Computadoras II

Los Constructores(1)

Introducción a C++ Índice

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Creación de clases en C++ (I)

directamente indirectamente

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

2. Tratamiento de objetos con JAVA

Temas. Taller III 2007 Gentile,Vazquez

Compiladores: Ambientes para Ejecución. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

El Concepto De Objeto y Clase

Programación II Objetos en Java

Programación Orientada a Objetos

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica

POO: Clases y objetos

Programación orientada a objetos II

Principios de Computadoras II

Tema 6: Memoria dinámica

Herencia. Implementación en Java

Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.

PUNTEROS (Apuntadores)

Asignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I. Asignación de Dinámica de Memoria

El operador contenido ( ) permite acceder al contenido de

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Implementación de las Clases Pila, Cola, Lista y Arbol

Francisco Javier Peña Escobar Universidad del Valle

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

Ejercicio 1. Ejercicio 2

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

Programación I Teoría II.

Definición y Conversión de datos. Agustín J. González ELO-329

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

LA PALABRA CLAVE THIS EN JAVA. CONTENIDO NULL POR DEFECTO DE UN OBJETO. SOBRECARGA DE NOMBRES. EJEMPLOS (CU00654B)

Implementación de las Clases Pila, Cola, Lista y Arbol

Guía práctica de estudio 07: Herencia

Estructura de datos y Programación

Tema 6. Gestión dinámica de memoria

int[] nombrearray1; int nombrearray2[];

Tema: Punteros.Puntero this en C#.

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Java. Clases y Objetos. H. Tejeda V. Universidad Michoacana Facultad de Ciencias Físico-Matemáticas. Java p.

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

RTTI y reflexión Modelos de datos

Manejo de Punteros y objetos en memoria dinámica en C++ Agustín J. González ELO 329

Algoritmo, Estructuras y Programación II Ing. Marglorie Colina

Tema 2: Clase y objetos en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Examen No. 2. Valor: 50 pts (30% de la Nota Final) Tiempo Máximo: 2.5 Horas Fecha: 28 de Marzo del 2017

Programación orientada a objetos I

Destrucción de objetos (I)

Transcripción:

Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar

Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación de objetos durante la ejecución del programa El objeto es un concepto dinámico. Es un tipo de datos con estructura y estado. 2

Características de un Objeto Se pueden construir y destruir durante la ejecución del programa Ocupan memoria para almacenar el estado del objeto Son comparables Es válido preguntarse si un objeto es igual a otro Se puede operar con ellos Reciben mensajes y los procesan. Pueden ser usados como parámetros de métodos de otra clase 3

Referencias Se accede a los miembros del objeto a través de referencias Las referencias se declaran como las variables primitivas Inicialmente poseen el valor null El programador debe construir el objeto y luego asignar a la referencia su valor Para ello emplea el operador new 4

Qué es una referencia? Es una variable que guarda la dirección de memoria en la que se almacena un objeto Punto1 Punto2 x = 6 y = 4 x = 3 y = 9 5

Referencias Cuando se crea una referencia inicialmente no apunta a ningún objeto. Es una referencia nula (null) La referencia se asocia o se liga a un objeto durante la ejecución del programa Una referencia posee tipo. No puede apuntar a un objeto que no es del tipo declarado 6

Referencias Un objeto puede ser apuntado por más de una referencia Punto1 Punto2 x = 4 y = 9 7

Operaciones con referencias Examinar o manipular la referencia Asignar referencias Comparar referencias Operar con el objeto asociado a la referencia Acceder a la propiedades de los objetos Ejecutar los métodos del objeto Interrogar su tipo (instanceof) Coerción de tipo 8

Operaciones con referencias Las referencias NO son punteros No se pueden sumar, multiplicar, incrementar No se pueden dereferenciar (conocer su contenido) Las referencias no pueden asociarse a tipos de variable primitivas 9

Declaración de objetos Operador new 10

Creación de objetos Asignación de memoria Automática Dinámica Estática Inicialización de los campos Función constructor Creación de la referencia 11

Método Constructor Al crear un objeto Java invoca un método especial que se llama Constructor Este método posee el mismo nombre que la clase Retorna una referencia al objeto recién creado Si el programador no provee un constructor para la clase, el compilador provee un constructor por defecto 12

Constructores por defecto La clase Punto no provee constructor. El compilador provee el método: public Punto ( ) { }; El constructor inicializa las propiedades a cero 13

Constructores explícitos El programador puede escribir uno o mas constructores utilizando sobrecarga Observar que no poseen tipo de retorno en la signatura siempre producen una referencia NOTA: Cuando el programador escribe 1 constructor, debe escribir TODOS los constructores el compilador no genera uno por defecto 14

Declaración de objetos Empleo de constructores explícitos 15

Uso de this dentro del constructor En ocasiones un constructor puede aprovechar el código escrito en otro constructor de la misma clase. Se invoca usando this como nombre del método y suministrando los parámetros correspondientes 16

Destrucción de objetos Debe recuperarse la memoria asignada al objeto Se ejecuta un método especial denominado destructor Los destructores pueden ser: de invocación explícita de invocación implícita En Java existe un concepto similar que se denomina finalizador 17

Destrucción de los objetos Destrucción a cargo del programador Existe un método destructor (por defecto o explícito) Se invoca el destructor cuando se inicia la destrucción del objeto Requiere un cuidadoso uso de los punteros a objeto ya que es fácil destruir el puntero y no liberar la memoria asignada (memory leak) Esta técnica es la empleada por C++ 18

Destrucción de objetos Destrucción automática La máquina virtual detecta objetos inalcanzables A su conveniencia recupera memoria utilizando un algoritmo de recolección de basura (garbage collection) Se puede definir un método especial que es invocado por el JVM antes de la destrucción final, aunque no se garantiza el momento de ejecución 19

Destrucción de objetos Punto1 Punto2 Punto1 = new Punto(); Punto2 = new Punto(); Punto1 Punto2 Punto2 = Punto1; Objeto inalcanzable 20

Finalizadores Es un método especial que se invoca cuando el JVM está a punto de destruir el objeto. Por la forma en que se ejecuta el algoritmo de recolección de basura es impredecible el instante real de ejecución. Puede diferirse por tiempo indeterminado 21

Finalizadores La liberación automática y segura de memoria es una de las características de Java que lo hace más sencillo de usar El método finalize() no puede ser sobrecargado. 22

Variables de clase y de instancia Variable de instancia Se reserva memoria para cada instancia de la clase que se construye. Guarda el estado de un objeto en particular Cada objeto accede a su propia variable Las propiedades de una clase se declaran de instancia por defecto en Java int valor En cada objeto son valores distintos int valor 23

Variables de clase y de instancia Variables de clase Se reserva memoria para una sola copia de la propiedad que es compartida entre todas las instancias. En Java la propiedad es calificada por static Si un objeto modifica la propiedad, esta modificación se verá en todas las otras instancias. int valor static int valor static int valor 24

Definición de constantes Un uso común de las propiedades estáticas es para la definición de constantes. En este caso van acompañados del calificador final para indicar que no pueden ser modificados final static double PI = 3.14159; Forma de uso: Color.RED, Integer.MAX_VALUE 25

Métodos de clase Para acceder a las propiedades de clase (estáticas) no es necesario instanciar un objeto Un método de clase solamente accede a otros métodos y propiedades de clase. Un método de clase NO puede acceder a métodos de instancia sin crear el objeto correspondiente Un método de clase se califica con static. 26

Definición de namespaces El desarrollo de aplicaciones grandes requiere de la definición de namespaces o espacios de nombre en las que los miembros del mismo no pueden tener un mismo nombre Los componentes de un mismo espacio de nombre no pueden tener el mismo nombre. En Java el concepto de namespaces se implementa como packages o paquetes 27

Paquetes en Java Para que una clase Java pertenezca a un determinado paquete se requiere: El archivo debe ser precedida por la sentencia package <nombre>; Se debe almacenar todos los archivos de un mismo paquete en un solo directorio (de igual nombre al paquete) Java asume un paquete default si no se usa la sentencia package aunque actualmente se recomienda no usar esta opción. 28

Paquetes en Netbeans Directiva package Vista proyecto Vista archivo Navegador de clase 29

Directiva import Cuando se desea utilizar componentes de otro espacio de nombres se debe explicitar todo el nombre completo Java.util.Date dt = new java.util.date( ); A fin de facilitar la escritura es posible usar la directiva import import java.util.*; //Todas las clases Date dt = new Date( ); 30

Directiva import Si se importa dos paquetes que poseen clases con un mismo nombre existe un conflicto para el compilador. En este caso se debe usar el nombre completo. La directiva import no incorpora subpaquetes import java.util; Import java.util.date; Import java.util.*; //no importa java.util.date //importa una sola clase (Date) //importa toda las clases en el //paquete util pero no los //subpaquetes 31

Departamento de Ingeniería Electrónica y Computadoras Mg. Ricardo Coppo rcoppo@uns.edu.ar