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

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Clases en C++.
Definición de Clases y Variables de referencia.
Creación y destrucción de objetos
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Orientación a Objetos con Java SE
“Programación orientada a Objetos II”
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Objetos y Clases en Java
Programación Orientada a Objetos en Java
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Programación Orientada a Objetos usando C++
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
SCJP Sun Certified Programmer for Java 6
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Material de apoyo Unidad 2 Fundamentos de programación
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Clases y objetos. La unidad fundamental del lenguaje Java es la clase, que proporciona la estructura de los objetos y mecanismos para fabricarlos, a partir.
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Abstracción de Datos y Orientación a Objetos.. Vista General. Por qué la abstracción de datos y la programación orientada a objetos. Módulos y módulos.
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++
PROGRAMACIÓN ORIENTADA A OBJETOS USANDO C++. 2 PROYECTOS EN C++
1 Objetos y Clases en Java ELO-329: Diseño y Programación Orientados a Objetos.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
Clases en C++ Agustín J. González ELO329.
Tema 9: Paquetes Antonio J. Sierra. Índice 1. Introducción. 2. Protección de acceso. 3. Importación de paquetes. 4. Modelado UML de un paquete.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Manejo de Punteros y objetos en memoria dinámica en C++
1 Manejo de Excepciones y otros Agustín J. González ELO-329.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
Programación orientada a objetos. Existen 3 niveles de visibilidad: ◦ public: significa que los atributos de una clase pueden ser accedidas desde fuera.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Programación Orientada a Objetos
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
Programación orientada a objetos
Interfaces y Clases Internas
El lenguaje C++ Isidro González Caballero (Universidad de Oviedo) Técnicas de Comp. en Física Santander, 13/12/
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación CLASES DE JAVA Diciembre de 2008.
Clases “ Es una Abstracción de un elemento del mundo real ”
Algunas Características de C++ no presentes en C Agustín J. González ELO-329.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. La parte ingenieril de un proceso de desarrollo de software, comprende realizar un diseño del sistema antes de empezar a escribir.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Clases y Objetos en Java
Clases y Objetos en Java
Clases y Objetos en Java
Clases y Objetos en Java
Transcripción de la presentación:

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

Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { /* constructores */ /* métodos */ /* atributos */ } Ver ejemplo Employee.java y EmployeeTest.java Podemos definir más de una clase por archivo, pero el compilador no podrá encontrar aquellas con nombre distinto al del archivo. Clases de nombre distinto al archivo sólo son accesibles dentro del archivo.

ELO-329: Diseño y Programación Orientados a Objetos Constructores Tiene igual nombre que la clase Pueden tener parámetros Son invocados principalmente con new Pueden ser invocados con this desde otro constructor (ya viene). No tiene tipo retornado No return explícito Java provee constructor por defecto () Podemos proveer uno o más constructores. Esto es un tipo de sobrecarga de métodos (igual nombre con distintos parámetros) El compilador busca el constructor usando firma nombre constructor + lista de parámetros

ELO-329: Diseño y Programación Orientados a Objetos Constructores Inicializa objetos nuevos: 1. Localiza memoria 2. Asigna valores por defecto a variables (0, 0.0, null, …) 3. Según el orden de aparición en la clase se ejecutan las inicializaciones allí hechas 4. Llama constructor de Superclase (más adelante) 5. Sentencias restantes son ejecutadas La primera sentencia puede ser: super( … )para llamar al constructor de la clase base (o padre o superclase) this( … ) invoca a otro constructor Ver Ejemplo ConstructorTest.java

Creación de objetos nuevos Se usa el constructor de la clase MiClase a = new MiClase(); Todos los objetos son creados en el heap (memoria asignada dinámicamente durante la ejecución). Lo que se retorna es una referencia al nuevo objeto (puede ser pensada como puntero). Nota — no existe destructor (en C++ sí) Java tiene un proceso de recolección de basura (Garbage Collection) que automáticamente recupera zonas no referenciadas. Si deseamos hacer algún tipo de limpieza antes de liberar el espacio de un objeto, la clase debería incluir un método con nombre finalize().

ELO-329: Diseño y Programación Orientados a Objetos Identificadores de Objetos v/s los objetos pejAcct.deposit( ); // error pejAcct = new Cheque("Peter", 1000, 40); pejA cct name balance chqNum Cheque pejAcct; pejAcct // Referencia nula Este ejemplo asume que la clase Cheque ya existe y posee miembros datos: name, balance y chqNum

ELO-329: Diseño y Programación Orientados a Objetos Asignación de objetos Cheque jmAcct; jmAcct jmAcct = pejAcct; pejAcct name balance chqNum jmAcct

ELO-329: Diseño y Programación Orientados a Objetos Referencias Los objetos son referenciados Esta es una forma “controlada” de usar: Direcciones y punteros Al declarar una variable de una clase obtenemos una referencia a la variable. En caso de tipos primitivos (8) se tiene la variable y acceso directo (no es referencia) byte, short, int, long, float, double, char,boolean

ELO-329: Diseño y Programación Orientados a Objetos Implicancias de referencias Los identificadores de objetos son referencias referencia significa puntero (i.e. no el contenido) = es copiar la referencia Usar método clone para crear copia del objeto completo. == es comparación de referencias Usar equals para comparar contenidos aMethod(pejAcct) pasa un referencia aMethod(tipo_básico) pasa el valor return pejAcctretorna una referencia Usar clone para crear una copia, y luego retornarla

ELO-329: Diseño y Programación Orientados a Objetos Visibilidad de clases, métodos y atributos Para crear buenas abstracciones debemos dejar visible (accesible) al usuario de una clase sólo aquello que es estrictamente necesario. Para esto Java posee varios modificadores del nivel de acceso (o visibilidad). Éstos se preceden los nombres de clases, método o atributos. Estos modificadores son: público, protegido, paquete, y privado.

ELO-329: Diseño y Programación Orientados a Objetos Visibilidad de clases, métodos y atributos Modificador de acceso private Sin modificador protected public Visibilidad Sólo en la clase En el paquete En sub-classes & pkg Todas partes “ausente”, (package) private protected public

ELO-329: Diseño y Programación Orientados a Objetos Compilación (re-visitado) El compilador busca la definición de cada clase que encuentra en el archivo.class Para señalar al compilador dónde buscar debemos configurar la variable de ambiente: CLASSPATH El compilador y la JVM buscan los archivos en el directorio actual. Si el proyecto está compuesto por varias clases en diferentes directorios, javac y java buscan las clases en los directorios indicados en la variable de ambiente CLASSPATH. Si.class tiene fecha más antigua, javac re- compila el archivo.java. Se destacada así la importancia de los nombres de archivo de las clases que deseamos visibles desde otros archivos. En Linux esta variable se configura con export CLASSPATH=/home/user/classdir1: /home/user/classdir2:. El Windows también se debe fijar la variable de ambiente.