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.

Slides:



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

Métodos y parámetros.
Curso de java básico (scjp)
Curso de java básico (scjp)
Definición de Clases y Variables de referencia.
Herencia en C#.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.
PROGRAMACIÓN ORIENTADA A OBJETOS EN JAVA
Lenguaje de programación Java
SCJP Sun Certified Programmer for Java 6
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.
Arquitectura CLARO-TECNOTREE
La Programación Orientado a Objetos
Lección 1 Introducción a la POO
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Informática II Prof. Dr. Gustavo Patiño MJ
Herencia y Polimorfismo
Tratamiento de listas en Java
UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
Objetos y Clases en Java
Programación Orientada a Objetos en Java
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Programación Orientada a Objetos usando C++
Medio de tele-comunicación
Material de apoyo Unidad 2 Estructura de datos
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Tema 6: Clases Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Variables polimórficas (plantillas): definición, uso y aplicación
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Material de apoyo Unidad 2 Fundamentos de programación
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Patrones Creacionales
Diplomado Desarrollo de Aplicaciones en Internet
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.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Programanción I Ing. Cristhian Garita Fonseca
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.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Programación Orientada a Objetos
Detalles Generales sobre Java
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 ”
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.
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.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
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.
Transcripción de la presentación:

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 de los métodos. Cómo se va a hacer -Informática II -

Clases y objetos campos : representan el estado interno del objeto métodos : representan el comportamiento del objeto -Informática II -

Clases y objetos class Punto{ private double x, y; public Punto (double z,double m) { x = z; y = m; } public void clear() { x = 0; y = 0; } public static void main (String [] args) { Punto p = new Punto (0,0); Punto q = new Punto (10,20); p.clear(); System.out.println(j); -Informática II -

El método main En una aplicación Java, existe siempre una clase que controla la aplicación. Ejecutar una aplicación Java es ejecutar una clase. El sistema localiza el método main de esa clase y lo ejecuta. El método main debe ser public, static y void y acepta un solo argumento de tipo String []. -Informática II -

Clases y objetos Una clase crea un nombre de tipo en Java. Vehiculo mi_auto; La declaración no crea un objeto, únicamente declara una referencia a un objeto vehículo. El objeto mi_auto no existe en la realidad, sólo existe una referencia mi_auto. -Informática II -

Clases y objetos de instancia Campos: estáticos o de clase Campos de instancia: significa que cada objeto posee los campos de instancia con sus valores particulares. Campos estáticos o de clase: sólo una instancia del campo es compartida por todos los objetos de una clase. Se declaran con static. -Informática II -

Control de acceso y herencia Todos los campos y métodos de una clase son siempre accesibles para el código de la propia clase. Para controlar el acceso desde otras clases y para controlar la herencia de las subclases, existen los modificadores de control de acceso: Public: son accesibles en cualquier lugar en que sea accesible la clase y lo heredan las subclases. Private: son accesibles sólo en la propia clase. Protected: son accesibles para las subclases y heredados por ellas, y accesibles por código del mismo paquete. Paquete: no llevan modificador de acceso y son accesibles y heredados por código del mismo paquete -Informática II -

Punto mi_punto = new Punto (5, 7.3); Creación de objetos Punto mi_punto = new Punto (5, 7.3); Cuando se crea un objeto con el operador new, se especifica el tipo de objeto que se desea crear y los posibles parámetros para su construcción. Si no hay espacio de memoria suficiente, se ejecuta el garbage_collector. Si con la ejecución del recogedor de basura sigue sin haber espacio, el sistema lanza una excepción OutOfMemoryError. -Informática II -

Constructores Tiene el mismo nombre que la clase y sirve para darle al objeto en el momento de creación, un estado inicial correcto. Puede existir más de un constructor por clase. Los constructores no tienen tipo devuelto, razón por la cual no se consideran métodos. Los campos se pueden inicializar con un valor en el momento de declararlos. Los constructores se invocan después de haber asignado sus valores iniciales por defecto alas variables de instancia. -Informática II -

Constructores En un constructor se puede invocar a otro constructor de la propia clase, usando la invocación this(). Si el constructor que quiere invocar tiene parámetros, se los nombra al invocar a this(double x). Los constructores sin parámetros se llaman constructores no-arg. Si no se proporciona un constructor para una clase, el lenguaje proporciona un constructor no-arg, por defecto que no hace nada. El constructor por defecto es public si lo es la clase y no lo es en caso contrario. -Informática II -

Constructores Algunas clases no tienen un estado inicial razonable. Proporcionar un estado inicial es conveniente y razonable. Construir un objeto es a veces una operación costosa, se requiere que los objetos tengan un estado inicial correcto (objeto con una tabla). Un constructor que no sea public impone restricciones en cuanto a quien puede crear objetos. Un constructor se puede marcar como protected y sólo tienen sentido para las subclases. -Informática II -

Métodos Los métodos contienen habitualmente código que comprende y manipula el estado de un objeto. Los métodos se invocan como operaciones sobre los objetos a través de las referencias usando el operador . Punto centro = new Punto (10, 10); centro.clear ( ); cada método tiene un número determinado de parámetros. Cada parámetro tiene un tipo determinado, ya sea un tipo primitivo o un tipo de referencia. Tienen también un tipo devuelto (void si no devuelve ningún valor). -Informática II -

Métodos Pasaje de parámetros por valor. Pero si pasa una referencia a un objeto, lo que se pasa por valor es esta referencia. Es decir si un método recibe como parámetro un objeto y ese método cambia el estado del objeto, se cambia ese objeto en todos los lugares del programa en que se haga referencia a él. El conjunto de los métodos públicos son la interface de la clase, y sólo a través de ellos se accede a los campos privados del objeto. Para preservar el encapsulamiento y desacoplar el uso de un objeto de su estructura interna, los métodos deben ser la única vía de acceso a los campos. -Informática II -

Referencia especial this y super this: hace referencia al propio objeto que ha invocado al método. Se usa en métodos no estáticos. super: se usa para acceder a campos anulados y a métodos de la superclase. -Informática II -

Sobrecarga de métodos Dos métodos pueden tener el mismo nombre pero deben diferir en su signatura, es decir, en el número o tipo de alguno de sus parámetros. Estos dos métodos se dice que están sobrecargados. void rotar(float grados, int direccion) void rotar(int rads) void rotar(float grados) Al tener distinto número de parámetros o alguno de sus parámetros de distinto tipo no le crea ambigüedades al compilador. -Informática II -

Miembros estáticos Campos estáticos: hay sólo una variable que identifica ese campo, independientemente del número de objetos que haya de esa clase. Se inicializan antes de que se use ningún campo estático y antes de que se ejecute ningún método de la clase. Un método estático accede sólo a las variables estáticas y a los métodos estáticos de la clase. No existe la referencia this. -Informática II -

Garbage collector Cuando no existe ninguna referencia a un objeto, el sistema puede reclamar el espacio que ese objeto ocupa en memoria, lo hace automáticamente a través del Garbage Collector (recogida de basura) El sistema sólo ejecuta el garbage collector si en realidad necesita espacio en memoria. -Informática II -

El método finalize Los métodos finalize se ejecutan siempre antes de que el espacio de memoria ocupado por un objeto sea reclamado. Es importante implementarlos en los objetos que usan recursos externos, no Java, como ser archivos, una conexión de red, etc. protected void finalize( ) throws Throwable { super.finalize( ); } -Informática II -

El método finalize Invocando a finalize a través de super se asegura que las superclases sean correctamente finalizadas. Al salir de una aplicación se ejecutan los métodos finalize de todos los objetos existentes. -Informática II -

El método toString Cuando un objeto posee un método toString(), que no recibe argumentos y retorna un String, que es una representación imprimible del objeto. toString() se usa cuando el objeto debe mostrarse en pantalla. -Informática II -

El método toString String toString( ) { String datos = “\nDatos personales : “ + “\n Nombre : “ + this.nombre + “\n Dirección :” + this.dire; return datos; } -Informática II -