Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1...

34
Programación orientada a objetos Resumen de Temas Unidad 2: Métodos y Mensajes

Transcript of Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1...

Page 1: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Programación orientada a objetos

Resumen de TemasUnidad 2: Métodos y Mensajes

Page 2: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.1 Atributos final y static (1) Una constante representa un espacio de memoria que tiene

asociados : un nombre o identificador, y un valor que no puede modificarse en tiempo de ejecución.

Aunque Java reserva la palabra const, hasta la fecha no la utiliza para la definición de constantes. Para definir constantes, deben utilizarse las palabras static y final precediendo al nombre de la constante.

Las palabras static y final se conocen como modificadores y el orden en que se escriban no es relevante, pudiéndose escribir :

final static tipo nombreConstante = literal ;o

static final tipo nombreConstante = literal ;Ejemplo: static final int IVA = 10 ;

Aunque no es una restricción, se acostumbra escribir los nombres de las constantes solo con letras mayúsculas. Esto permite distinguir fácilmente entre los nombres de las variables y los de las constantes.

Page 3: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.1 Atributos final y static (2) final determina que un atributo no pueda ser sobreescrito o redefinido. O sea: no se trata de una variable, sino de una constante.Los atributos miembros de la clase pueden ser:

Atributos de clase: cuando se usa la palabra clave static, la variable es única para todas las instancias (objetos) de la clase (ocupa un único lugar en memoria). Atributos de instancia: no se usa static, el sistema crea un lugar nuevo para esa variable con cada instancia (o sea que es independiente para cada objeto).

Page 4: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.1.1 Acceso a atributos y variablesLas variables locales sólo se pueden acceder desde el

bloque de código donde se declararon.

Las variables de instancia se pueden acceder desde cualquier parte de la clase.

Las variables de instancia si son públicas se pueden acceder desde otra clase por medio de los objetos:

objeto.nombreVariable;

Si las variables de instancia son privadas (private) se deben acceder a través de métodos set y get.

Page 5: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.1.1 Acceso a atributos y variablesLas variables de clase se reconocen por la

palabra clave static.

A las variables de clase se accede mediante el nombre de la clase:

Math.PI;

Las variables de clase se usan por ejemplo cuando todos los objetos van a tener ese mismo atributo.

Page 6: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.2 Concepto de método(1)Es la implementación de un algoritmo que representa una operación o función que un objeto realiza. El conjunto de los métodos de un objeto determinan el comportamiento del objeto.

Un método es un conjunto de instrucciones a las que se les da un determinado nombre de tal manera que sea posible ejecutarlas en cualquier momento sin tenerlas que reescribir sino usando sólo su nombre. A estas instrucciones se les denomina cuerpo del método, y a su ejecución a través de su nombre se le denomina llamada al método.

La ejecución de las instrucciones de un método puede producir como resultado un objeto de cualquier tipo. A este objeto se le llama valor de retorno del método y es completamente opcional, pudiéndose escribir métodos que no devuelvan ninguno.

Page 7: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.2 Concepto de método(2)La ejecución de las instrucciones de un método puede depender del valor de unas variables especiales denominadas parámetros del método, de manera que en función del valor que se dé a estas variables en cada llamada la ejecución del método se pueda realizar de una u otra forma y podrá producir uno u otro valor de retorno.

Al conjunto formado por el nombre de un método y el número y tipo de sus parámetros se le conoce como signatura del método. La signatura de un método es lo que verdaderamente lo identifica, de modo que es posible definir en un mismo tipo varios métodos con idéntico nombre siempre y cuando tengan distintos parámetros. Cuando esto ocurre se dice que el método que tiene ese nombre está sobrecargado.

Page 8: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Alcance de variablesUn método puede contener declaraciones locales así como estatutos ejecutables.Las variables declaradas localmente pueden ser utilizadas localmente solo en el método en donde se declaran, terminando la ejecución del método dejan de existir.int cubico (int numero) //parámetro formal{

int cubo; //Variable Localcubo = numero * numero * numero;return cubo;

}

Page 9: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Control de Flujo de métodosEl método main es invocado por el sistema cuando se ejecuta un programa (compilado).Cada llamada a métodos regresa al lugar que lo llamó.

metodo1();metodo2();

main metodo1 metodo2

Page 10: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.3 Declaración de métodosvisibilidad tipo nombreMetodo(tipo parametro1,tipo parametro2,…){

//..sentencias}

visibilidad : (public, private, protected, sin nada)

tipo:

Si el resultado del método es devolver algo, debe tener al finalla instrucción return y en tipo debe aparecer el tipo de dato quedevuelve (int, double, float, String, Color, Short, Polea, Resorte,…)Si no devuelve nada debe aparecer en tipo void.

A cada parámetro del método debe anteponérsele su tipo

Page 11: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Ejemplos:public void depositar(int cantidad){

saldo=saldo+cantidad;}public int suma(int a, int b){

return (a+b);}public double division(double a, double b){

return (a/b);}

Page 12: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

El estatuto returnEl tipo_a_regresar de un método indica el tipo de valor que el metodo regresa a quien lo llama.Un método que no regresa un valor (eje: main) tiene un tipo_a_regresar llamado void. Si son de tipo void (no regresa valor) se llaman mutadores.El estatuto return especifica el valor que seráregresado.La expresión del return debe ser del mismo tipo que tipo_a_regresar.Esos métodos se le conoce como métodos de acceso (accesador).

Page 13: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.4 Llamadas a métodos (mensajes)Los objetos interactúan enviándose mensajes unos a otros. Tras la recepción de un mensaje el objeto actuará. La acción puede ser el envío de otros mensajes, el cambio de su estado, o la ejecución de cualquier otra tarea que se requiera que haga el objeto. Un método se implementa en una clase, y determina cómo tiene que actuar el objeto cuando recibe un mensaje. Cuando un objeto A necesita que el objeto B ejecute alguno de sus métodos, el objeto A le manda un mensaje al objeto B. Al recibir el mensaje del objeto A, el objeto B ejecutará el método adecuado para el mensaje recibido.

Page 14: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.5 Tipos de métodos

Hay métodos denominados de clase. Se reconocen por la palabra clave static.

Para acceder a un método que no es de clase se hace a través de los objetos:

objeto.nombreMetodo(argumento1,argumento2,argumento3)

Para acceder a un método de clase se hace a través de la clase o de sus objetos:

objeto.nombreMetodo(argumento1,argumento2,argumento3)

clase.nombreMetodo(argumento1,argumento2,argumento3)

Se debe tener sumo cuidado que los argumentos que se colocan en la invocación al método sean del mismo tipo que los del método y en su orden

Page 15: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.5.1 Modificador static: una sola InstanciaEn ocasiones es necesario o conveniente generar elementos que tomen un mismo valor para cualquier número de instancias generadas o bien invocar/llamar métodos sin la necesidad de generar instancias, y es bajo estas dos circunstancias que es empleado el calificador static.No puede ser generada ninguna instancia (Uso de new) de un elemento static puesto que solo existe una instancia. Todos los elementos definidos dentro de una estructura static deben ser static ellos mismos , o bien, poseer una instancia ya definida para poder ser invocados. NOTA: Lo anterior no implica que no puedan ser generadas instancias dentro de un elemento static; no es lo mismo llamar/invocar que crear/generar.

Page 16: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.5.1 final: una sola Instancia y definitiva

El calificador final estrechamente relacionado con el uso de static implica una asignación única y definitiva al elemento de una clase. A diferencia de static que implica una sola instancia, el termino final lleva dicha instancia a una definición única y como su nombre lo implica final.

Generalmente final es utilizado en aquellos elementos que no serán modificados al momento de ejecutarse ("Run-Time") un programa o clase , a través de final se asigna un valor que no podrá ser modificado bajo ninguna circunstancia al momento de ejecución ("Run-Time), en efecto logrando un nivel de eficiencia en ejecución.

Page 17: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.5.2 Modificador volatile

Si una clase contiene una variable miembro que es modificada de forma asíncrona, mediante la ejecución de threads (hilos) concurrentes, se puede utilizar la palabra clave volatile de Java para notificar esto al sistema Java.

La siguiente declaración de variable es un ejemplo de como declarar que una variable va a ser modificada de forma asíncrona por threads concurrentes.

class VolatileExample {volatile int contador;. . .

}

Page 18: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.5.2 Modificador transient (transitoria)Por defecto, las variables miembro son una parte persistente del estado de un objeto, Las variables que forman parte persistente del estado del objeto deben guardarse cuando el objeto se archiva. Se puede utilizar la palabra clave transient para indicar a la máquina virtual Java que la variable indicada no es una parte persistente del objeto. Al igual que otros modificadors de variables en el sistema Java, se puede utilizar transient en una clase o declaración de variable de ejemplar como esta.

class TransientExample {transient int hobo;. . . }

Este ejemplo declara una variable entera llamada hobo que no es una parte persistente del estado de la claseTransientExample.

Page 19: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.6. Referencia this (1)Normalmente, dentro del cuerpo de un método de un objeto se puede referir directamente a las variables miembros del objeto. Sin embargo, algunas veces no se querrá tener ambigüedad sobre el nombre de la variable miembro y uno de los argumentos del método que tengan el mismo nombre.

Por ejemplo, el siguiente constructor de la clase HSBColorinicializa alguna variable miembro de un objeto de acuerdo a losargumentos pasados al constructor. Cada argumento del constructor tiene el mismo nombre que la variable del objeto cuyo valor contiene el argumento.

class HSBColor {int luminosidad, saturacion, brillo;HSBColor (int luminosidad, int saturacion, int brillo) {

this.luminosidad = luminosidad;this.saturacion = saturacion;this.brillo = brillo;

}}

Page 20: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.6. Referencia this (2)

Se debe utilizar this en este constructor para evitar la ambigüedad entre el argumento luminosidad y la variable miembro luminosidad (y así con el resto de los argumentos).

Escribir luminosidad = luminosidad; no tendría sentido. Los nombres de argumentos tienen mayor precedencia y ocultan a los nombres de las variables miembro con el mismo nombre. Para referirise a la variable miembro se debe hacer explicitamente a través del objeto actual--this.

También se puede utilizar this para llamar a uno de los métodos del objeto actual. Esto sólo es necesario si existe alguna ambigüedad con el nombre del método y se utiliza para intentar hacer el código más claro.

Page 21: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7. Forma de pasar argumentos(1)Cuando se escribe un método, se declara el número y tipo

de los argumentos requeridos por ese método. Esto se hace en la firma o signatura del método.

El conjunto de argumentos de cualquier método es una lista de declaraciones de variables delimitadas por comas donde cada declaración de variable es un par tipo/nombre. Se utiliza el nombre del argumento para referirse al valor del argumento.

En Java, se puede pasar como argumento a un método cualquier tipo de dato válido en Java. Esto incluye tipos primitivos, como enteros, dobles, etc.. y tipos de referencia como arrays, objetos, etc...

Al contrario que en otros lenguajes, no se puede pasar un método a un método Java. Pero si se podría pasar un objeto a un método y luego llamar a los métodos del objeto.

Page 22: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7. Forma de pasar argumentos(2)Cuando se declara un argumento para un método Java, se proporciona

el nombre para ese argumento. Este nombre es utilizado dentro del cuerpo del método para referirse al valor del argumento.

Un argumento de un método puede tener el mismo nombre que una variable de la clase. En este caso, se dice que el argumento oculta a la variable miembro. Normalmente los argumentos que ocultan una variable miembro se utilizan en los constructores para inicializar una clase. Por ejemplo:

class Circle {int x, y, radius;public Circle(int x, int y, int radius) {

. . .}

}

La clase Circle tiene tres variables miembro x, y y radius. Además, el constructor de la clase Circle acepta tres argumentos cada uno de los cuales comparte el nombre con la variable miembro para la que elargumento proporciona un valor inicial.

Page 23: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7. Forma de pasar argumentos(3)Los nombres de argumentos ocultan los nombres de las variables

miembro. Por eso utilizar x, y o radius dentro del cuerpo de la función, se refiere a los argumentos, no a las variables miembro. Para acceder a las variables miembro, se las debe referenciar a través de this--el objeto actual.

class Circle {int x, y, radius;public Circle(int x, int y, int radius) {

this.x = x;this.y = y;this.radius = radius;

}}

Los nombres de los argumentos de un método no pueden ser el mismo que el de otros argumentos del mismo método, el nombre de cualquier variable local del método o el nombre de cualquier parámetro a una clausula catch() dentro del mismo método.

Page 24: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7.1 Paso de parámetros o argumentosLos parámetros son canales de comunicación para pasar datos entre programas y subprogramas en ambos sentidos. Los parámetros van asociados a variables, constantes, expresiones, etc., y, por tanto, se indican mediante los correspondientes identificadores o expresiones. Los parámetros que se utilizan en la llamada o invocación al subprograma se denominan parámetros actuales, reales o argumentos, y son los que entregan la información al subprograma. Los parámetros que la reciben en el subprograma se denominan parámetros formales o ficticios y se declaran en la cabecera del subprograma. Algunos procedimientos carecen de parámetros cuando se realizan tareas que no requieren recibir información del programa principal. En una llamada a un subprograma tiene que verificarse que:

1. El número de parámetros formales debe ser igual al de actuales.2. Los parámetros que ocupen el mismo orden en cada una de las listas deben ser compatibles en tipo.

Page 25: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Paso de parámetrosCuando se pasa un parámetro, se construye una copia del valor y es asignada al parámetro formal. Ejemplo:

suma(5,4);..

int suma(int operando1,int operando2) {return operando1+operando2;}

Usualmente, evitaremos poner multiples métodos en la clase que contiene el método main.

Page 26: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7.2 Parámetros por valor (1)Paso por valor: cuando un parámetro actual se pasa por valor, el método o función miembro hace una copia del valor de éste en una posición de memoria idéntica en tamaño pero distinta en ubicación a la del parámetro actual y la asigna al parámetro formal correspondiente. Como el método o función miembro trabaja a partir de sus parámetros formales, si durante la ejecución se modifica el valor de un parámetro formal correspondiente a un paso por valor, el contenido de la posición de memoria del parámetro actual no se verá alterado. Puede decirse que el paso por valor es un canal de transferencia de información con una sola dirección, es decir, de entrada al método o función miembro.

Page 27: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7.2 Parámetros por valor (2)En los métodos Java, los argumentos son pasados por

valor. Cuando se le llama, el método recibe el valor de la variable pasada. Cuando el argumento es de un tipo primitivo, pasar por valor significa que el método no puede cambiar el valor. Cuando el argumento es del tipo de referencia, pasar por valor significa que el método no puede cambiar el objeto referenciado, pero si puede invocar a los métodos del objeto y puede modificar las variables accesibles dentro del objeto.

El método obtiene su propia copia de los valores para utilizarlos dentro del ámbito del método. Cualquier cambio realizado en estas copias locales no será reflejado en las variables originales del llamador.

El paso de las variables por valor le ofrece alguna seguridad a los programadores: los métodos no puede modificar de forma no intencionada una variable que estáfuera de su ámbito.

Page 28: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7.3 Parámetros por referencia (1)Paso por referencia: en el paso por referencia el

parámetro formal queda asociado a la misma posición de memoria que su correspondiente parámetro actual, por lo que cualquier modificación que el método o función miembro realice sobre el contenido del parámetro formal se efectúa sobre el parámetro actual correspondiente y repercutirá en el programa principal o llamador.

De todo esto se deduce que si no queremos que un método o función altere el contenido de un parámetro actual, es decir, de una variable del programa principal o invocador, debemos realizar paso por valor.

Por el contrario, si queremos que un método o función altere el valor de un parámetro actual tenemos que pasarlo por referencia.

Page 29: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.7.3 Parámetros por referencia (2)Si un parámetro actual es pasado por referencia, este

parámetro no puede ser ni una constante, ni una expresión, sino que debe ser una variable u objeto, ya que no pueden modificarse los contenidos de una constante ni de una expresión.

Para que un método modifique un argumento, debe ser un tipo de referencia como un objeto o un array. Los objetos y arrays también son pasados por valor, pero el valor de un objeto es una referencia. Entonces el efecto es que los argumentos de tipos de referencia son pasados por referencia. De aquí el nombre. Una referencia a un objeto es la dirección del objeto en la memoria. Ahora, el argumento en el método se refiere a la misma posición de memoria que el llamador.

Page 30: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.8 Devolver un valor desde un métodoJava necesita que un método declare el tipo de dato del

valor que devuelve. Si un método no devuelve ningún valor, debe ser declarado para devolver void (nulo).

Los métodos pueden devolver tipos de datos primitivos o tipos de datos de referencia.

Los métodos utilizan el operador return para devolver un valor. Todo método que no sea declarado como void debe contener una sentencia return.

El tipo de dato del valor devuelto por la sentencia returndebe corresponder con el tipo de dato que el método tiene que devolver; no se puede devolver un objeto desde un método que fue declarado para devolver un entero.

Cuando se devuelva un objeto, el tipo de dato del objeto devuelto debe ser una subclase o la clase exacta indicada. Cuando se devuelva un tipo interface, el objeto retornado debe implementar el interface especificado.

Page 31: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.9 Estructura del códigoModificadores del método:[especificadordeAcceso] [static] [abstract] [final] [native] [synchronized]

Signatura o firma:tipodeRetorno NombredelMétodo ([listadeparámetros])

Control de excepciones:[throws listadeExcepciones]

Cuerpo del método:{ sentencia1;sentencia2;…sentencian;

[return valorderetorno;] }

Page 32: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.10 RecursiónRecursión es el proceso de definir algo en términos de sí mismo. Un método que se llama a si mismo se llama método recursivo. Ejemplo:// Calcula el factorial de un entero

n!=n*(n-1)!Solución recursiva: 4!=4x3!, 3!=3x2!, 2!=2x1!, 1!=1x0! Solución no recursiva: 0!=1 (Estado básico)1!=1x1=1, 2!=2x1=2, 3!=3x2=6, 4!=4x6=24

public static int factorial(int n){if (n==0) return 1;return n*factorial(n-1);}

Page 33: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

Ejemplo de Recursiónclass EjemploRecursion {

public static void main(String args[]) {System.out.println("El factorial de 3 es " + fact(3));System.out.println("El factorial de 5 es " + fact(5));System.out.println("El factorial de 10 es " + fact(10));

}// esta es una función recursivastatic int fact(int n) {int result;if(n==1) return 1;result = fact(n-1) * n;return result;

}}

Page 34: Programación orientada a objetos - itz.edu.mxmapaches.itz.edu.mx/~mbarajas/pooisc/poo2.pdf · 2.1 Atributos final y static (1) Una constante representa un espacio de memoria que

2.11. Comentarios en los métodosUsar comentarios de documentación (javadoc)./** Indicar su proposito….@param author identifica al autor de la clase.@param documenta un parámetro de un método.@return documenta el valor devuelto por un método.@exception Que excepciones maneja.