febrero 08, 2012

Clases, Métodos y Objetos: Un análisis mas detallado.

Clase.
Pensemos en una Película como una clase de objeto. Las películas tienen características tales como: titulo, director, duración, etc. También tiene funciones, cosas que puede realizar, como: reproducirse, eliminarse, saber sus datos, etc. A partir de esta analogía podemos crear una clase que lleve por nombre "Película", a la cual le implementaremos sus atributos basándonos en sus características, y métodos basándonos en las funciones que puede realizar esta película.

La clase Película:
//Archivo: Pelicula.java

public class Pelicula{
    
    //Declarando los atributos de la clase
    //(las caracteristicas de una pelicula)
    String titulo;
    String director;
    String duracion;
    
    //Creando los metodos de la clase Pelicula
    //(cosas que se pueden hacer con una pelicula)
    
    Pelicula(){ //Metodo constructor por default
        
    }
    
    //Metodo para establecer el titulo:
    public void setTitulo(String t){
        titulo=t;
    }
    
    //Metodo para establecer el director:
    public void setDirector(String dir){
        director=dir;
    }
    
    //Metodo para establecer la duracion:
    public void setDuracion(String dur){
        duracion=dur;
    }
    
    //Metodo para devolver el titulo:
    public String getTitulo(){
        return titulo;
    }
    
    //Metodo para devolver el director:
    public String getDirector(){
        return director;
    }
    
    //Metodo para devolver la duracion:
    public String getDuracion(){
        return duracion;
    }
    
    //Metodo para reproducir pelicula:
    public void reproducirPeli(){
        System.out.println("Reproduciendo");
    }
    
    //Metodo para eliminar pelicula:
    public void eliminarPeli(){
        System.out.println("Pelicula eliminada");
    }
}
Se creo esta clase con sus atributos y sus metodos, basandonos en sus caracteristicas y funciones.


Métodos.

Los métodos son las acciones o funciones que van a ser realizadas o "mandadas a llamar" por nuestros objetos de la clase Película. Solo los objetos de la clase Película pueden utilizar estos métodos. Algunos requerirán de datos (parámetros) para realizar sus funciones.

A continuación se presenta la sintaxis de los métodos (como deben escribirse), y su explicación:

Modificador de Acceso.
Los modificadores de acceso limitan el alcance de los métodos para su uso. Existen varios modificadores, que dan diferente alcance cada uno.

public: todos pueden usar estos métodos.
protected: solo los métodos de la misma subclase pueden usarlos.
private: solo los métodos de la misma clase pueden usarlos.

Si no se usa alguno de estos modificadores, el método solo puede usarse por algún objeto de la clase del mismo paquete.

Tipo de Dato que regresa el Método.
En esta parte se escribe el tipo de dato que devuelve o retorna el método. Estos tipos de datos pueden ser String, boolean, int, double, etc; ó void (al español se traduce como "vacío").

El tipo de dato que regresa el método debe coincidir con el tipo de dato que retorna el método establecido en su cuerpo después de la instrucción return. Cuando un método no regresa ningún dato, cuando no tiene una instrucción return, se dice que el método no retorna datos por tanto se usa: void.

Nombre del método.
Para el nombre del método se le da el nombre preferido por el programador, usualmente se le suele dar nombres que hagan referencia a la acción que realizara el método.

Parámetros del método.
Dentro de los paréntesis del método se escriben los parámetros, los datos y el tipo de dato que necesita para llevar acabo las operaciones para la realización de lo que necesite que haga. Si se requieren mas de un parámetro, se separan por comas; tomo en cuenta que siempre debe especificar el tipo de dato que debe recibir ese método como parámetro. Si el método no requiere de parámetros, no se escribe nada dentro de los paréntesis.

Cuerpo del método.
Aquí es donde se escribe la serie de instrucciones que haga que el método realice lo que este destinado a hacer. Ya sea desde establecer un dato, retornarlo o alguna operación matemática o lógica que se requiera.


Los métodos de la clase Película.
Analizaremos algunos métodos de la clase película, para dejar mas clara la información:

public void setTitulo(String t){
titulo=t;
}

Este método es publico y todos pueden usarlo, este método no retorna ningún valor por lo cual se escribió void y el método se llama "setTitulo" (es el nombre que yo decidí usar) el cual recibe un parámetro de tipo String. El método solo asigna lo que recibe de parámetro (un String, una cadena de caracteres) y lo asigna a la variable String titulo, definida en esa clase (estableció el titulo de la película). No tiene ninguna instrucción retur, no regresa ningún valor, por eso es void.


public String getTitulo(){
return titulo;
}

Este método también es publico y cualquiera puede usarlo. A diferencia del método anterior, este si regresa un valor que es de tipo String y en seguida se escribe el nombre de este método: "getTitulo", este método no necesita parámetros puesto que solo retornara el valor guardado en la variable String titulo. En el cuerpo del método observamos la instrucción: return titulo; que regresa al programa principal (main) lo que contiene la variable titulo. Observe que el tipo de dato de la variable titulo (String) coincide con el tipo de dato que indicamos que va a regresar el método, que definimos después de public.


Objetos.
Los objetos son las instancias de clase que se crean en regularmente en en main, y son estos los que hacen uso de los métodos de su clase.
//Archivo: EjemploPelicula.java

import javax.swing.JOptionPane;

public class EjemploPelicula{
    
    public static void main(String args[]){
        
        //Preguntamos nombre de la pelicula al usuario:
        String peli=JOptionPane.showInputDialog("Nombre de la Pelicula:");
        String direc=JOptionPane.showInputDialog("Nombre del Director:");
        String dura=JOptionPane.showInputDialog("Duracion de la Pelicula:");
        
        //Creamos el objeto miPelicula de la clase Pelicula:
        Pelicula miPelicula = new Pelicula();
        
        //El objeto miPelicula manda a llamar a sus metodos
        //setTitulo, setDirector y setDuracion para establecer
        //el nombre de la pelicula:
        miPelicula.setTitulo(peli);
        miPelicula.setDirector(direc);
        miPelicula.setDuracion(dura);
        
        //Hacemos uso de los metodos de obtener o regresar
        //el dato selecionado y lo imprimimos en pantalla
        //concatenandolo con una cadena de caracteres.
        System.out.println("DATOS DE LA PELICULA:");
        System.out.println("Titulo: "+miPelicula.getTitulo());
        System.out.println("Director: "+miPelicula.getDirector());
        System.out.println("Duracion: "+miPelicula.getDuracion()+"\n");
        
        //Hacemos uso de los metodos reproducirPeli() y
        //eliminarPeli(), que imprimen mensajes en pantalla:
        miPelicula.reproducirPeli();
        
        System.out.println("\nLa pelicula ha terminado de reproducirse\n");
        
        miPelicula.eliminarPeli();   
    }
}
En este programa principal se crea un objeto "miPelicula" de la clase Película y este objeto hace uso de sus métodos, establecidos en su clase (Película).

En la linea 15 se crea el objeto miPelicula de la clase Pelicula, escribiendo primero el nombre de la clase y después un nombre arbitrario (a tu gusto), seguido del signo de asignación (=), después la palabra clave new y posteriormente de nuevo el nombre de la clase seguido de paréntesis vacíos.

Una vez que ya esta creado nuestro objeto miPelicula de la clase Pelicula, podemos hacer que ese objeto use los métodos establecidos en dicha clase. Esto lo hacemos escribiendo el nombre de nuestro objeto seguido de un punto y el nombre de nuestro método. Si el método requiere parámetros, tendrás que ingresar el parámetro del tipo establecido dentro de los paréntesis.

De la linea 20 a la 22 nuestro objeto miPelicula hace llamadas a los métodos setTitulo(), setDirector() y setDuracion(), que establecen los datos a las variables definidas en la clase Persona. Y recuerde que al definir estos métodos en la clase Persona, establecimos que recibirían parámetros de tipo String, así que al momento de que nuestro objeto invoque (mande a llamar) a esos métodos, dentro de los paréntesis tendremos que ingresar ese parámetro que nos pide, un String.

De las linea 28 a la 30 se imprimen mensajes en pantalla usando System.out.println donde se escribe una cadena de caracteres dentro de sus paréntesis y se le concatena la llamada a los métodos getTitulo(), getDirector() y getDuracion(), y estos métodos regresan datos de tipo String, por lo tanto son aceptados dentro de una instrucción System.out.println.

En las lineas 34 y 38 nuestro objeto miPelicula manda a llamar y a sus métodos reproducirPeli() y eliminarPeli() respectivamente, estos métodos no retornan ningún dato, ni reciben ningún parámetros ya que estos métodos imprimen en pantalla directamente el mensaje asignado para cada método.
Loading...