La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Clases “ Es una Abstracción de un elemento del mundo real ”"— Transcripción de la presentación:

1 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”

2 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.

3 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).

4 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>] {... }

5 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.

6 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.

7 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.

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

9 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.

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

11 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]

12 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>]) {...}

13 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.

14 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.

15 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.

16 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;

17 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( );

18 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.

19 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.

20 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.

21

22

23 Ejercicio 1

24 Ejercicio 1 (resolución)

25 Ejercicio 2

26 Ejercicio 2 (resolución)

27 Ejercicio 3

28 Ejercicio 3 (resolución)

29 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.

30 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.

31 Ejemplo

32 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.

33 Ejemplo

34

35

36

37 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)

38 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:

39 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; } }

40 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 ); }

41

42

43 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.

44

45 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.

46 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.

47 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.

48 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.

49 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).

50 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;

51 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

52 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.*;

53 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.

54 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.

55 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.*;

56 Conceptos claves Modificadores de acceso: public protected Por defecto
private

57 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.


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

Presentaciones similares


Anuncios Google