Está en la página 1de 3

Programacin orientada a objetos con Java

153

14. Tipos de mtodos


Objetivos: a) Profundizar en el concepto de mtodo de una clase e indicar los tipos de mtodos en Java: mtodos de instancia y mtodos de clase b) Interpretar el cdigo fuente de una aplicacin Java donde aparecen mtodos de distintos tipos c) Construir una aplicacin Java sencilla, convenientemente especificada, que emplee clases con diferentes mtodos.

Un mtodo es una abstraccin de una operacin que puede hacer o realizarse con un objeto. Una clase puede declarar cualquier nmero de mtodos que lleven a cabo operaciones de lo ms variado con los objetos. En esta seccin los mtodos se clasifican en dos grupos: los mtodos de instancia y los mtodos de clase. Adems se cierra el captulo con los mtodos de clase o estticos de la clase Math.

14.1. Mtodos de instancia


Las clases pueden incluir en su declaracin muchos mtodos o no declarar ninguno. Los mtodos pueden clasificarse en mtodos de instancia y mtodos de clase. Los mtodos de instancia operan sobre las variables de instancia de los objetos pero tambin tienen acceso a las variables de clase. La sintaxis de llamada a un mtodo de instancia es:
idReferencia.idMetodo(parametros); // Llamada tipica a un metodo de instancia

Todas las instancias de una clase comparten la misma implementacin para un mtodo de instancia. La instancia que hace la llamada al mtodo es siempre un parmetro o argumento implcito. Dentro de un mtodo de instancia, el identificador de una variable de instancia hace referencia al atributo de la instancia concreta que hace la llamada al mtodo (suponiendo que el identificador del atributo no ha sido ocultado por el de un parmetro). En el ejemplo anterior en la declaracin de la clase CuentaBancaria, los mtodos saldo y transferencia son mtodos de instancia.
public double saldo() { return saldo; } public void transferencia( CuentaBancaria origen ) { saldo += origen.saldo; origen.saldo=0; }

Ejemplos de llamada a estos mtodos dentro de PruebaCuentaBancaria:


CuentaBancaria c1 = new CuentaBancaria(); CuentaBancaria c2 = new CuentaBancaria(20.0); c1.transferencia(c2); System.out.println("Cuenta con: " + c1.saldo() + " euros");

154

A. Garca-Beltrn y J.M. Arranz

14.2. Mtodos de clase


En principio, los mtodos de clase no operan sobre las variables de instancia de los objetos. Los mtodos de clase pueden trabajar con las variables de clase pero no pueden acceder a las variables de instancia declaradas dentro de la clase, a no ser que se crea una nueva instancia y se acceda a las variables de instancia a travs del nuevo objeto. Los mtodos de clase tambin pueden ser llamados precediendolos con el identificador de la clase, sin necesidad de utilizar el de una instancia.
IdClase.idMetodo(parametros); // Llamada tipica a un metodo de clase

La palabra static determina la declaracin de un mtodo de clase. Por defecto, si no se indica la palabra static, el mtodo declarado se considera un mtodo de instancia. En el ejemplo anterior en la declaracin de la clase CuentaBancaria, el mtodo incCuentas es un mtodo de clase.
public static void incCuentas () { totalCuentas++; }

Un ejemplo de llamada a este mtodo dentro de PruebaCuentaBancaria sera:


CuentaBancaria.incCuentas();

Las diferencias entre los mtodos de instancia y los de clase se resumen en la Tabla 14.1.
Tabla 14.1. Diferencias entre los mtodos de instancia y los mtodos de clase

Modificador en Sintaxis de llamada Operan normalmente... la declaracin instancia.metodo(parametros) Sobre variables de instancia -... de instancia (por defecto) Clase.metodo(parametros) static ... de clase Sobre variables de clase o sobre otros datos

Mtodos...

Los mtodos de clase o estticos se pueden considerar equivalentes a las rutinas (globales) de otros lenguajes de programacin como Pascal o C. Como ejemplos tpicos de mtodos estticos pueden indicarse los mtodos de Java correspondientes a las funciones matemticas sin, cos, exp, pow... de la clase java.lang.Math (Tabla 14.2). Las llamadas a estos mtodos se realizan anteponiendo el identificador de la clase Math al identificador del mtodo: Math.sin(angulo)

Programacin orientada a objetos con Java

155

Tabla 14.2. Mtodos estticos de la clase Math


Modificadores Identificador y parmetros Funcin Devuelve el valor absoluto de un dato de tipo double. Devuelve el valor absoluto de un dato de tipo float. Devuelve el valor absoluto de un dato de tipo int. Devuelve el valor absoluto de un dato de tipo long. Devuelve el valor del arco coseno de un ngulo entre 0 y . Devuelve el valor del arco seno de un ngulo entre /2 y /2. Devuelve el arco tangente de un ngulo entre /2 y /2 Devuelve el ngulo en polares correspondientes a las coordenadas rectangulares. Devuelve el menor entero (en formato double) que no es menor que el parmetro. Devuelve el coseno de un ngulo Devuelve el valor de la funcin exponencial (ea) Devuelve el mayor entero (en formato double) que no es mayor que el parmetro.

static double abs(double a) static float abs(float a) static int abs(int a) static long abs(long a) static double acos(double a) static double asin(double a) static double atan(double a) static double atan2(double a, double b) static double ceil(double a) static double cos(double a) static double exp(double a) static double floor(double a)

static double IEEEremainder(double f1, Devuelve el resto (en formato double) de la divisin entre los double f2) dos parmetros segn la especificacin IEEE 754 static double log(double a) static double max(double a, double b) static float max(float a, float b) static int max(int a, int b) static long max(long a, long b) static double min(double a, double b) static float min(float a, float b) static int min(int a, int b) static long min(long a, long b) static double pow(double a, double b) static double random() static double rint(double a) static long round(double a) static int round(float a) static double sin(double a) static double sqrt(double a) static double tan(double a)

Devuelve el logaritmo neperiano de un valor. Devuelve el mayor de dos valores de tipo double. Devuelve el mayor de dos valores de tipo float. Devuelve el mayor de dos valores de tipo int. Devuelve el mayor de dos valores de tipo long. Devuelve el menor de dos valores de tipo double. Devuelve el menor de dos valores de tipo float. Devuelve el menor de dos valores de tipo int. Devuelve el menor de dos valores de tipo long. Devuelve el valor del primer parmetro elevado al segundo Devuelve un valor aleatorio de tipo double mayor o igual que cero y menor que 1. Devuelve el valor entero (en formato double) ms cercano. Devuelve el valor entero (long) ms cercano al parmetro. Devuelve el valor entero (int) ms cercano al parmetro. Devuelve el seno de un ngulo Devuelve la raiz cuadrada positiva del parmetro double. Devuelve la tangente de un ngulo radianes a grados

static double toDegrees(double angulo) Devuelve el resultado de la conversin de un ngulo dado en static double toRadians(double angulo) Devuelve la conversin de un ngulo dado en grados a radianes

También podría gustarte