Clases “ Es una Abstracción de un elemento del mundo real ”

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
Programación Interactiva Fundamentos de Java. 2 Ejecución de un programa Para Java una clase ejecutable es aquella que es pública y tiene un método main()
Herencia en C#.
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 Clases y Objetos Silvia Larrayoz Leire Urriza.
POLIMORFISMO "una interfaz, múltiples métodos".
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
Orientación a Objetos con Java SE
“Programación orientada a Objetos II”
Informática II Prof. Dr. Gustavo Patiño MJ
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
UNIVERSIDAD LATINA (UNILA)
Aplicación del paradigma orientado a objetos
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
DIAGRAMA DE CLASE.
HERENCIA.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Medio de tele-comunicación
Modificadores.
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
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.
Tema 10: Interfaces Antonio J. Sierra.
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
El lenguaje de programación Java
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
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.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
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.
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
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.
ESMERALDA LIMÓN ESCUTIA AURORA MENDOZA PASTRANA RUTH LÓPEZ muñoz I.S.C
Programación orientada a objetos
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
FUNDAMENTOS DE PROGRAMACION
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación CLASES DE JAVA Diciembre de 2008.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
Herencias Conceptos básicos i
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.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
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.
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 “ Es una Abstracción de un elemento del mundo real ” “ Una clase es una agrupación de datos (variables o campos) y de funciones (métodos) que operan sobre esos datos”

Clases (continuación) Posee Métodos y Atributos. Todo forma parte de una clase, es una clase o describe como funciona una. Todos los métodos se definen dentro de una clase. No soporta funciones o variables globales.

Clases (continuación) La implementación de una clase Java debe ir en un archivo en formato de texto con la extensión *.java y nombre idéntico a la clase implementada. La declaración de una clase Java se realiza mediante la keyword: class seguida de su nombre. La keyword va precedida por un modificador de acceso: public o default (nada).

Clases (continuación) La implementación de la clase irá contenida en un bloque {} justo después de la declaración. Declaración de una clase <modificador de acceso> <tipo de clase> class <nombre> [extends <nombreClase> implements <nombreInterface>] {... }

Clases (continuación) Tipos de clases abstract: tiene al menos un método abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia. final: se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final.

Clases (continuación) public: son accesibles desde otras clases. Son accesibles dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen que ser importadas. protected: es visible en el paquete y en las subclases de esta clase en cualquier paquete. private: es solo visible en la clase.

Clases (continuación) Modificador Clase Método Datos Comentario Por defecto x Una clase, método o dato es visible en este paquete. public Una clase, método o dato es visible a todos los programas de cualquier paquete. private Un método o dato es sólo visible en esta clase. protected Un método o dato es visible en este paquete y en las subclases de esta clase en cualquier paquete.

Clases (continuación) De objeto De clase (static) Variables Finales De objeto De clase (static) Métodos Constructores Inicializadores-Finalizadores

Clases (continuación) Método: que no tiene definición: si hay un método abstract en la clase, ésta también lo es abstract Clase: no se pueden crear objetos Método: puede ser utilizado aunque no se haya creado ningún objeto de la clase. No se redefinen. Es un método de la clase y no de los objetos. static Variable: propia de la clase final Método: no puede ser redefinido. Clase: No puede tener clases derivadas (fin de la jerarquía de herencia) Variable: constante.

Clases (continuación) Ejemplo public MiClase { int i; public MiClase() { i = 10; } public void sumaAi( int j { i = i + j; } }

Atributos y métodos La implementación de una clase consiste en una serie de: Atributos Métodos Declaración de un atributo <modificador_de_acceso> <tipo> nombre [= valor_inicial]

Atributos y métodos Los métodos son funciones que pueden ser llamadas dentro de la clase o por otras clases Declaración <modificador_de_acceso> <tipo_retorno> <nombre> ([<lista_argumentos>]) {...}

Métodos (continuación) Constructores Toda clase tiene al menos un constructor. Es un tipo específico de método. No retornan ningún valor. Su nombre es igual que la clase. Declaración <modificador_de_acceso> <nombre> ([<lista_argumentos>]) {...} Si nuestra clase no tiene método constructor el compilador añade uno sin parámetros.

Sobrecarga de métodos Se dice que un método está sobrecargado cuando existen dos métodos con el mismo nombre y tipo de retorno pero con unos parámetros distintos. De esta manera podemos tener en una clase varios constructores.

Convenciones en Java El nombre de las clases comenzará con mayúsculas. El nombre de los atributos comenzará con minúsculas. El nombre de los métodos comenzará con minúsculas, excepto el método constructor.

Objetos Los objetos en Java no son mas que variables de tipo complejo. El tipo de un objeto es el de la clase que se ha instanciado. La declaración de un objeto es idéntica a la declaración de una variable de tipo primitivo: tipo identificador; Cuenta miCuenta;

Objetos El valor de un objeto por defecto sin inicializar es: null La inicialización de un objeto si es distinta a la inicialización de las variables de tipo primitivas: Se utiliza el operador new. Se llama al constructor de la clase que estamos instanciando. Es decir: tipo identificador = new tipo([parametro,…]); Cuenta miCuenta(1000.52);

Método main Es el método donde comienza la ejecución de un programa Java. public static void main(String[] args) Las clases representan entidades que participan en la resolución de un problema ¿en qué entidad tiene sentido el método main? En ninguna. Por ello se crea una clase a parte, que sólo contenga el método main.

Destructores Son métodos encargados de eliminar los objetos de la memoria. En Java no existe este tipo de método. En Java existe un proceso que se ejecuta en la JVM, a la vez que nuestra aplicación se encarga de buscar todos aquellos objetos de memoria no utilizados y limpiarlos. Este proceso se llama Garbage Collector.

Garbage Collector ¿Cómo sabe el Garbage Collector que un objeto ya no está siendo utilizado por la aplicación y que por tanto puede ser eliminado? Porque no está referenciado por ninguna variable. Existen tres motivos por los que una variable deja de referenciar a un objeto: Se iguala a null. Se iguala a otro objeto. Se termina su ámbito.

Ejercicio 1

Ejercicio 1 (resolución)

Ejercicio 2

Ejercicio 2 (resolución)

Ejercicio 3

Ejercicio 3 (resolución)

Herencia La palabra clave extends se usa para generar una subclase de un objeto. En Java no se puede hacer herencia múltiple. Los constructores no se heredan.

Herencia Las clases por encima de la jerarquía a una clase dada, se denominan superclases. Las clases por debajo de la jerarquía a una clase dada, se denominan subclases. Una clase puede ser superclase y subclase al mismo tiempo.

Ejemplo

Herencia Una clase hereda todos los métodos y atributos de las clases superiores en la jerarquía. Una clase puede tener sus propios métodos y atributos adicionales a los heredados. Una clase puede modificar a los atributos y métodos heredados.

Ejemplo

Clase Object En Java todas las clases heredan de otra clase. Si no lo especificamos en el código, el compilador hace que nuestra clase herede de la clase Object (raíz de la jerarquía de clases en Java)

Clase Object Esto significa que nuestras clases siempre van a contar con los atributos y métodos de la clase Object. Algunos de los métodos más importantes son:

this y super La palabra clave this hace referencia al objeto o instancia actual Java asocia automáticamente todas las variables de instancia con this, por lo cual su uso a veces puede ser redundante. public class MiClase { int i; public MiClase() { this.i = 10; } }

this y super (continuación) La palabra clave super hace referencia a la superclase de la clase que se emplea public class MiNuevaClase extends MiClase { public void sumaAi( int j ) { i = i + ( j/2 ); super.sumaAi( j ); }

Castings El casting es una forma de realizar conversiones de tipos. Hay dos tipos de castings: UpCasting: conversión de un tipo en otro superior en la jerarquía de clases. Ho hace falta especificarlo. DownCasting: conversión de un tipo en otro inferior en la jerarquía de clases. Se especifica precediendo al objeto a convertir con el nuevo tipo entre paréntesis.

Sobrescribir un método Sobrescribir un método significa que una subclase reimplementa un método heredado. Para sobrescribir un método hay que respetar totalmente la declaración del método: El nombre debe ser el mismo. Los parámetros y tipo de retorno han de ser los mismo. El modificador de acceso no puede ser más restrictivo Al ejecutar un método se busca su implementación de abajo hacia arriba en la jerarquía de clases.

Sobrescribir vs. Sobrecargar La sobrecarga de un método significa tener varias implementaciones del mismo método con parámetros distintos: El nombre es el mismo. Los parámetros tienen que ser distintos. El tipo de retorno puede ser distinto. El modificador de acceso puede ser distinto.

El uso de la herencia Debemos usar herencia cuando tenemos una clase de un tipo más específico. Especialización Debemos usar herencia cuando tengamos un comportamiento que se puede reusar entre varias clases del mismo tipo genérico.

El uso de la herencia No debemos usar herencia solo por el hecho de reutilizar código. Podemos tener el comportamiento cerrar en Puerta. Pero aunque necesitemos ese mismo comportamiento en Coche, no vamos a hacer que coche herede de Puerta. No debemos usar herencia cuando no se cumpla la regla Es-un.

Paquetes en Java Los paquetes en Java son una característica más del lenguaje que nos permite organizar el código en grupos. Adicionalmente, ayudan a evitar colisiones en los nombres de las clases. Por ejemplo si se tiene que utilizar un framework de terceros, se tiene un 99% de seguridad de que no tiene ninguna clase con el mismo nombre. Toda clase Java pertenece a un paquete. Si no se especifica nada, pertenece al paquete por defecto (que es un paquete raíz sin nombre).

Paquetes en Java Para especificar el paquete al que pertenece una clase se utiliza la palabra: package. Esta palabra tiene que ser la primer sentencia del archivo. Declaración package nombre_del_paquete;

Paquetes en Java Existe una convención aceptada entre los programadores en cuanto a la nomenclatura de los paquetes: Todas las palabras que componen el nombre del paquete van en minúsculas. Se suele utilizar el nombre de dominio invertido para intentar asegurar nombres unívocos y evitar colisiones. com.ibm.test es.chemi.juegos

Paquetes en Java Para utilizar una clase que se encuentra en otro paquete tenemos que escribir su nombre completo: paquete + clase. Pero existe otro método para facilitar la codificación que es el uso de import. import nombre_del_paquete.nombre_de_la_clase; import nombre_del_paquete.*;

Paquetes en Java Los import se ubican entre la sentencia package y la declaración de la clase. Las clases importadas de esta manera pueden ser referenciadas en el código directamente por su nombre de clase sin necesidad de escribir el paquete. Un import con * importa las clases del paquete pero no las de los subpaquetes.

Paquetes en Java Por tanto para utilizar a una clase tenemos tres alternativas: Utilizar su nombre completo: paquete + clase Importar la clase: import + paquete + clase Importar el paquete completo. Un import no implica inclusión de código, sino que simplemente son vías de acceso para buscar el código.

Paquetes en Java Las clases System, Math, String, etc… pertenecen al paquete java.lang. El compilar por defecto añade la siguiente línea a nuestro código: import java.lang.*;

Conceptos claves Modificadores de acceso: public protected Por defecto private

Conceptos claves Métodos Clases Atributos static abstract final Se puede acceder al método sin instanciar la clase. Ej: int a = Math.min(10,17) Su valor es compartido por todos los objetos de la clase. abstract No tiene definición: si hay un método abstract en la clase, ésta también lo es. No se pueden crear objetos. final Ninguna otra clase puede sobreescribir este método Ninguna otra clase puede heredar de esta. Se obtienen constantes.