COMPRENDER LAS DEFINICIONES DE CLASEhorarioscentros.uned.es/.../diapositivastema2.pdf · Variables...

Post on 15-Mar-2020

14 views 0 download

Transcript of COMPRENDER LAS DEFINICIONES DE CLASEhorarioscentros.uned.es/.../diapositivastema2.pdf · Variables...

COMPRENDER LAS

DEFINICIONES DE

COMPRENDER LAS

DEFINICIONES DE

CLASE

1

� Dentro de una clase definiremos:� Campos � Almacenan datos que serán usados por el objeto.

� Constructores � Métodos de inicialización del objeto.

� Métodos � Implementan el comportamiento del objeto.

� Normalmente encontraremos estos elementos en � Normalmente encontraremos estos elementos en el siguiente orden:

public class NombreClase {

CamposConstructoresMetodos

}

2

� Para definir una nueva clase usaremos la palabra reservada class.

� Delante de nuestra clase pondremos el modificador de acceso que deseemos.

� Seguidamente daremos nombre a la clase.

� Incluiremos los distintos elementos que componen la clase entre los corchetes.

public class NombreClase {……

}

3

� También denominados variables de instancia.

� Almacenan datos para que un objeto los use.

� Representan el “estado” de un objeto.

� En la definición de campos debemos incluir su modificador de acceso así como el tipo de datos que va a guardar.

� Mas adelante veremos los tipos de datos disponibles.

private tipoDatos nombreCampo

4

� A lo largo de nuestro código podemos incluir líneas de comentario que no serán interpretadas por el compilador y que nos servirán para incluir aclaraciones.

� Hay tres tipos de comentario:� Comentarios de una línea:

// Línea de comentario

� Comentarios multilínea:/*

* …..*/

� Comentarios de documentación:/**

* ….*/

5

� Los constructores se encargan de inicializar los objetos en el momento de su creación.

� Estos métodos deben ser siempre públicos.

� No definirán ningún valor de retorno.� No definirán ningún valor de retorno.

� Su nombre será exactamente el mismo nombre que hayamos dado a la clase.

� Como cualquier otro método los constructores pueden recibir parámetros que cambiarán su ejecución.

6

public class CFecha {

private int dia;private int mes;private int año;

public Cfecha(){dia=1;mes=1;año=2012;

}}

7

� En java todas las variables de instancia son inicializadas automáticamente.� Los valores numéricos se inicializarán a 0.

� Las variables de tipo String se inicializan a Null.

� Las variables booleanas se inicializan como False.

� Las referencias a objetos se inicializan como Null.

8

� Podemos pasar datos a un método mediante parámetros.

� Como hemos dicho esto mismo se puede hacer con los constructores.

� Para cada parámetro debemos indicar el tipo de datos que debe recibir.

public CFecha (int d, int m, int a){dia=d;mes=m;año=a;

}

9

class UnaClase

{

variables miembro de la clase (atributos)

public void unMetodo (lista de parámetros)

{

variables locales

Clase

variables locales

una sentencia compuesta

{

variables locales

}

}

}

Método

Bloque

� Los distintos tipos de variables que se definen tiene distinto tiempo de vida.

� Variables de instancia � Existirán mientras exista el objeto.

� Parámetros de un método � Existirán durante la ejecución del método destruyéndose a su finalización.del método destruyéndose a su finalización.

� Variables de método � Existirán durante la ejecución del método destruyéndose a su finalización.

� Variables locales a un bloque de código � Existirán hasta que termine la ejecución de ese bloque de código.

11

� La sentencia de asignación nos permite asignar valores tanto a las variables de instancia como a las variables locales que podamos definir en los distintos métodos.

� Hay dos tipos de asignación:� Hay dos tipos de asignación:� Directa � Le asignamos un valor concreto.

año = 2012;

� Indirecta � Le asignamos el valor que tenga otra variable del mismo tipo de datos.

año = a;

12

� Los métodos nos van a permitir relacionarnos con los objetos.

� Posibles usos:� Acceder a los valores de las variables de instancia.� Modificar los valores de las variables de instancia.� Realizar cálculos u operaciones con dichos valores.� Realizar cálculos u operaciones con dichos valores.

� Sintaxis de definición de un método:[modificador] tipo-resultado nombre-método ([lista de parámetros]){

Declaración de variables locales;Sentencias;[return [(]expresión[)]];

}

13

� Devuelven información sobre el estado de un objeto.

� Normalmente nos devolverán el valor de una de las instancias de clase.

� Tendrán como tipo de retorno el tipo correspondiente a la variable de instancia a la que nos dan acceso.

public int getAño(){

return año;}

14

� Métodos que nos van a permitir modificar el estado de un objeto.

� Este método tendrá un parámetro del mismo tipo de datos que la variable de instancia que tipo de datos que la variable de instancia que desea modificar.

public int setAño(int a){

año=a;

}

15

� Si deseamos mostrar mensajes a través de la salida estandar (pantalla) tendremos que utilizar la siguiente sentencia:

System.out.println(“texto a mostrar”);

� Podemos usar los valores de las distintas variables para que el texto mostrado sea distinto según el estado del objeto:

System.out.println(“Año: “ + año);

16

� Vamos a ver el proyecto naive-ticket-machine.

� En el vamos a identificar los distintos elementos que hemos explicado hasta ahora.elementos que hemos explicado hasta ahora.

17

� Para poder hacer variar el comportamiento de nuestros métodos en función de los valores de las variables necesitamos incorporar sentencias condiciones.

IfIfIfIf (condición)sentencia 1;

[elseelseelseelsesentencia 2:]

//Código anterior.//Código anterior.if (a==b*5){

x=4;a=a+x;

}else

b=0://Siguiente línea del programa.

18

ifififif (condicion1){

ifififif(condicion 2)sentencia 1;

}elseelseelseelse

sentencia 2;

//Código anteriorif (a==0){

if (b !=0)s=s+b;

}else

s=s+a;

19

� Una variable local es una variable que se declara y se usa dentro de un solo método.

� Como ya hemos comentado, su alcance y tiempo de vida se limita a la ejecución del método.

public int calcularInteres ( int tipo){public int calcularInteres ( int tipo){int interes;interes=saldo*(tipo/100);return interes;

}

� Si una variable local se llama igual que una variable de instancia, la variable local “oculta” la de instancia dentro de ese método.

20

� Vamos a revisar el proyecto better-ticket-machine.

� Vamos a identificar los cambios incorporados y las mejoras en la funcionalidad.y las mejoras en la funcionalidad.

21