sesi´on 6. tema 8 comportamiento avanzado con objetos · introducci´on conceptos cuestiones...

Post on 14-Aug-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduccion Conceptos Cuestiones Tareas

Sesion 6. TEMA 8 COMPORTAMIENTOAVANZADO CON OBJETOS

Fundamentos de Informatica

Jose Jaime Noguera Noguera

18 de marzo de 2018

Introduccion Conceptos Cuestiones Tareas

Contenidos

1 Introduccion

2 Conceptos

3 Cuestiones

4 Tareas

Introduccion Conceptos Cuestiones Tareas

Temario

Recordar que en este tema solo hay que estudiar las secciones:5.1, 5.5, 5.11, 5.13 (edicion 5), o bien:6.1, 6.5, 6.12, 6.14 (edicion 6).

Por tanto, este tema es bastante corto. Ademas es recomendableleer la seccion 5.3, ya que introduce herramientas utiles.

Introduccion Conceptos Cuestiones Tareas

Documentacion de las clases

Para acceder a la informacion de la documentacion de las clases delibrerıas, lo podemos hacer desde BlueJ. Para ello, desde el menuAyuda (Help), seleccionar Librerıas de Clase Java (Java Class Libra-ries). Aparecera un explorador web con la documentacion de la API(Application Programming Interface) de Java, siempre que estemosconectados a Internet. Si se desea, tambien se puede utilizar unacopia local de esa documentacion que viene con el CD-ROM dellibro (ver Apendice A).

Introduccion Conceptos Cuestiones Tareas

Documentacion

En la documentacion de la API se nos muestra informacion suficientecomo para utilizar las clases sin conocer su implementacion.Es bueno acostumbrarse a buscar informacion en dicha documenta-cion, ya que incluso las clases mas utilizadas disponen de metodosque no son los que aparecen usualmente en los libros de texto y quenos pueden venir bien para programar alguna funcionalidad.

Introduccion Conceptos Cuestiones Tareas

Implementacion e interfaz

Hay dos conceptos que se deben conocer:Implementacion de una clase Es el codigo fuente de la clase, es

decir el todo el texto que escribimos en Java alprogramar la clase. Este codigo no necesitamosconocerlo para utilizar la clase. Es la parte privadade la clase

Interfaz de una clase Esta formado por las signaturas de losconstructores y metodos, ademas de una serie decomentarios. Constituyen los detalles que se necesitanpara usar la clase. Es la parte publica de la clase.

Introduccion Conceptos Cuestiones Tareas

Signatura

Recuerda que la signatura de un metodo esta formada por (en esteorden):

Un modificador de acceso (public, private...).Un tipo de retorno.El nombre del metodo.La lista de parametros precedidos por su tipo.

La signatura de un constructor es igual pero sin tipo de retorno.

Introduccion Conceptos Cuestiones Tareas

Utilidades

En la seccion 5.3.2 y 5.3.3 (que no entran en el temario) aparecenalgunos metodos para cadenas de caracteres (objetos definidos comoString) que vale la pena conocer:

cadena.toUpperCase(): devuelve la cadena a la que se aplicaen mayusculas.cadena.toLowerCase(): devuelve la cadena a la que se aplicaen minusculas.cadena.trim(): devuelve la cadena a la que se aplica sinespacios en blanco iniciales ni finales.cadena1.equals(cadena2): devuelve True si las cadenas soniguales y False en caso contrario. Debe evitarse compararcadenas con el operador == ya que no siempre funciona.

Introduccion Conceptos Cuestiones Tareas

Utilidades

Es importante saber que toUpperCase, toLowerCase y trim no mo-difican la cadena original, solo devuelven la cadena modificada. Porejemplo:String a=”hola”;String b=a.toUpperCase();System.out.println(”Original: ”+a+”. Con mayusculas: ”+b+”.”);

Produce la salida:Original: hola. Con mayusculas: HOLA.

Introduccion Conceptos Cuestiones Tareas

Importacion de paquetes

Ya se hablo de como importar paquetes con la sentencia import:import paquete.subpaquete.nombreClase;A paquete.subpaquete.nombreClase se le denomina nombrecompleto o nombre cualificado de la clase.Es preferible utilizar nombres cualificados y no cargar todaslas clases de un paquete con *.Hay paquetes que se cargan por defecto, como java.lang (alque pertenece la clase String).

Introduccion Conceptos Cuestiones Tareas

Modificadores de acceso

La siguiente tabla resume desde donde podemos acceder a lo queviene precedido por el modificador de acceso:

Modificador La misma Otra clase del Subclase de Otra clase dede acceso clase mismo paquete otro paquete otro paquete

public sı sı sı sıprotected sı sı sı no(default) sı sı no noprivate sı no no no

Cuadro 1: Modificadores de acceso en Java.

Introduccion Conceptos Cuestiones Tareas

Modificadores de acceso

De la anterior tabla con lo que hay que quedarse fundamentalmentees que si definimos algo como private, sera solo accesible desde lapropia clase, mientras que si lo definimos como public sera visibledesde cualquier sitio. El definir campos y/o metodos como privatepermite el ocultamiento de la informacion. Esto es positivo por variosmotivos:

El mantenimiento de las clases es mas sencillo, ya queaseguramos que cambios en una clase no afecten a otra.Da lugar a un acoplamiento debil.Garantiza una mejor modularizacion.

Introduccion Conceptos Cuestiones Tareas

static

staticLos campos definidos como static se denominan variables de claseo estaticas.

Las variables de clase tienen las peculiaridades:se almacenan en la propia clase y no en el objeto. Estosignifica que hay una sola copia de la variableindependientemente del numero de objetos que hayamosinstanciado.Desde los metodos de cada objeto se puede modificar dichavariable.Son muy utiles cuando queremos que todos los objetos de unaclase compartan una variable comun.

Introduccion Conceptos Cuestiones Tareas

static: ejemplo

Figura 1: Clase PruebaStatic

Introduccion Conceptos Cuestiones Tareas

static

Si creamos 3 objetos, pongamos obj1, obj2 y obj3, en la situacioninicial en todos ellos a=1, b=2. Esto puede verse inspeccionandocada objeto y pulsando en Mostrar campos estaticos.

Si ejecutamos obj1.cambioB(7), entonces el campo bcambiara su valor en el objeto obj1, pero no en el obj2 y obj3.Si ejecutamos obj1.cambioA(6) en valor del campo estatico acambiara y dado que hay una unica copia almacenada en laclase y no en cada objeto, si inspeccionamos el valor de adesde cualquier objeto, el valor sera el mismo, en este caso 6.

Introduccion Conceptos Cuestiones Tareas

final

finalLos campos definidos como final no pueden ser modificados.

Tienen las peculiaridades:Deben inicializarse al definirlos (en caso contrario habra unerror de compilacion).Si se incluye alguna sentencia que modifique su valor nos daraerror de compilacion.Por convenio escribimos todo su nombre en mayusculas.Puede utilizarse en combinacion con static y ası evitamostener que almacenar cada campo final en cada objetoahorrando espacio de almacenamiento.

Introduccion Conceptos Cuestiones Tareas

Pregunta

La interfaz de una clase muestra su implementacion. ¿Verdadero ofalfo?

Introduccion Conceptos Cuestiones Tareas

Respuesta

La interfaz de una clase muestra su implementacion. ¿Verdadero ofalfo?

Falso.

Introduccion Conceptos Cuestiones Tareas

Pregunta

La implementacion nos muestra como funciona la clase y correspon-de a su parte privada. ¿Verdadero o falso?

Introduccion Conceptos Cuestiones Tareas

Respuesta

La implementacion nos muestra como funciona la clase y correspon-de a su parte privada. ¿Verdadero o falso?

Verdadero.

Introduccion Conceptos Cuestiones Tareas

Pregunta

¿La siguiente lınea corresponde a la signatura de un metodo?public getEdad(String dni)

Introduccion Conceptos Cuestiones Tareas

Respuesta

¿La siguiente lınea corresponde a la signatura de un metodo?public getEdad(String dni)

NO, falta indicar el tipo de retorno. En otro caso getEdad serıa elconstructor de la clase getEdad (que deberıa empezar en mayusculapor cuestion de estilo).

Introduccion Conceptos Cuestiones Tareas

Pregunta

¿Existen unicamente dos modificadores de acceso: public y private?

Introduccion Conceptos Cuestiones Tareas

Respuesta

¿Existen unicamente dos modificadores de acceso: public y private?

NO, tambien esta protected y sin modificador (default).

Introduccion Conceptos Cuestiones Tareas

Pregunta

¿El ocultamiento de informacion aumenta el aumenta el acoplamien-to?

Introduccion Conceptos Cuestiones Tareas

Respuesta

¿El ocultamiento de informacion aumenta el aumenta el acoplamien-to?

No, lo disminuye.

Introduccion Conceptos Cuestiones Tareas

Pregunta

Si definimos un campo como static, ya no puede ser modificado.¿Verdadero o falso?

Introduccion Conceptos Cuestiones Tareas

Respuesta

Si definimos un campo como static, ya no puede ser modificado.¿Verdadero o falso?

Falso, sı puede ser modificado.

Introduccion Conceptos Cuestiones Tareas

Pregunta

La siguiente definicion del campo numeroE:

public final double NumeroE=2.72;

nos indica que el campo tomara siempre el valor 2.72

Introduccion Conceptos Cuestiones Tareas

Respuesta

La siguiente definicion del campo numeroE:

public final double NumeroE=2.72;

nos indica que el campo tomara siempre el valor 2.72

Verdadero, ese es la funcion de la palabra reservada final.

Introduccion Conceptos Cuestiones Tareas

Pregunta

Dado el siguiente fragmento de codigo:String a,b;a=”casa”;b=a.toUpperCase();c=a.equals(b);¿Cual es el valor de c?

Introduccion Conceptos Cuestiones Tareas

Respuesta

Dado el siguiente fragmento de codigo:String a,b;boolean c; a=”casa”;b=a.toUpperCase();c=a.equals(b);¿Cual es el valor de c?

El valor de c es False.

Introduccion Conceptos Cuestiones Tareas

Pregunta

La sentencia:

import java.util*;

¿Importa todos las clases del paquete java.util?

Introduccion Conceptos Cuestiones Tareas

Respuesta

La sentencia:

import java.util*;

¿Importa todos las clases del paquete java.util?

No, da un error porque falta un punto antes del *.

Introduccion Conceptos Cuestiones Tareas

Pregunta

Si queremos utilizar la clase String, ¿necesitamos incluir la importa-cion del paquete al que pertenece en nuestro codigo?

Introduccion Conceptos Cuestiones Tareas

Respuesta

Si queremos utilizar la clase String, ¿necesitamos incluir la importa-cion del paquete al que pertenece en nuestro codigo?

No, java.lang se carga por defecto.

Introduccion Conceptos Cuestiones Tareas

Tareas

Realizar el test del Comportamiento avanzado conobjetos en jjnoguera.wordpress.con/uned-deniaLeer los apartados del 8.3 al 8.6 y APENDICE E.

top related