febrero 09, 2012

Calculo de Áreas usando POO

Usando Programación Orientada a Objetos realizaremos 4 programas que realicen el calculo de área de 4 figuras geométricas, cada programa realizara el calculo de área de una figura diferente, cada programa constara de una clase con sus métodos para poder usarlos en el calculo del área, y un main.

La clase Cuadrado.
//Archivo: Cuadrado.java

public class Cuadrado{
    
    double lado;
    
    Cuadrado(){
        
    }
    
    public void setLado(double l){
        lado=l;
    }
    
    public double gedLado(){
        return lado;
    }
    
    public double calcularArea(){
        return l*l;
    }
}
En esta clase solo declaramos un atributo, porque es el unico que necesitamos para calcular el area de esta figura. Declaramos el constructor por deafult, de claramos el metodo setLado() para establecer la longitud del lado del cuadrado, getLado() lo establecemos para que nos retorne el valor del lado y calcularArea() es el metodo que realizara la operacion matematica para obtener el area del cuadrado con las medidas establecidas, y este método retornara el resultado del calculo al programa principal.

Main para la clase Cuadrado.
//Archivo: EjemploCuadrado.java

import javax.swing.JOptionPane;

public class EjemploCuadrado{
    
    public static void main(String args[]){
        
        JOptionPane.showMessageDialog(null, "Bienbenido al calculador de\narea para un Cuadrado");
        
        double tamaño=Double.parseDouble(JOptionPane.showInputDialog("Tamaño del lado del cuadrado:"));
        
        Cuadrado cuadrado1 = new Cuadrado();
        cuadrado1.setLado(tamaño);
        
        System.out.println("Usted ha introducido: "+cuadrado1.gedLado()+"\ncomo tamaño del lado del cuadrado\n");
        
        System.out.println("El area del cuadrado es:\n"+cuadrado1.calcularArea());
    }
}
Pediremos la medida del lado del cuadrado y lo guardaremos en double tamaño. En la linea 13 creamos nuestro objeto cuadrado1 de la clase Cuadrado. En la linea 14 asignamos la longitud del lado del cuadrado para nuestra variable double lado en la clase Cuadrado, esto lo hacemos mediante el método setLado() que es invocado por nuestro objeto cuadrado1 y a este método se le pasa de parámetro la variable tamaño (que es de tipo double).

En la linea 16 se imprime en pantalla el mensaje "Usted ha introducido:" concatenado con lo que retorne el método getLado() (en este caso retornara el tamaño del lado que haya introducido el usuario). Y en la linea 18 se imprime el mensaje en pantalla: "El área del cuadrado es:" concatenado con lo que retorne el método calcularArea() (que retornara el resultado del calculo del área, dependiendo del tamaño del lado del cuadrado que haya introducido el usuario).

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.

febrero 04, 2012

Introducción a la Programación Orientada a Objetos en Java

La programación orientada a objetos (POO) es una innovadora forma de programar, que facilita las tareas a los programadores, ya que se trata de hacer código expresándolo de una manera mas parecida a la vida real. Algunas ventajas de la POO son que facilita la creación de software de calidad, potencia el mantenimiento y la extensión, y permite la reutilización de código. Dentro de este tipo de programación resuenan muchos conceptos, entre los mas populares son: clase, métodos, herencia, superclase y objetos, entre otros. Para entender mejor el panorama de la programación orientada a objetos, prestemos atención al siguiente ejemplo.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EJEMPLO:
Estoy en mi oficina y envió chocolates a mi novia. Para esto tengo las siguientes alternativas:
  1. Lo hago directamente enviando un mensaje a Roberto (el señor de la tienda de chocolates).
  2. Usando un objeto intermedio; se pido a María la secretaria.
El objeto Roberto y el objeto María tienen métodos que entienden mi mensaje.
El objeto Roberto tiene métodos que le permiten realizar la acción que pido.

Si le pido a mi jefe Gabriel que mande los chocolates, seguramente no va a hacerlo porque no tiene el método.

Si hubiese ido a otra tienda de chocolates donde atienda la Sra. Alejandra habría sido el mismo resultado, porque Roberto y Alejandra pertenecen a la misma clase. A esta clase la podríamos llamar Chocolatero.

Probablemente Roberto me pedirá dinero y me entregara un ticket, porque ese método lo usan todos los comerciantes, osea que la clase Chocolatero pertenece a una clase mayor (superclase) llamada Comerciante. Y por esto la clase Chocolatero hereda los métodos de la clase Comerciante.

El hecho de que yo no conozca con exactitud los métodos que usara Roberto, se conoce como ocultamiento de la información.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

En general todas las propiedades y métodos de un objeto se conjuntan en una clase. La clase es un prototipo para crear un objeto (sin clase, no hay objeto), por ello se dice que un objeto es una instancia de clases.

Las partes básicas de un objeto son: el nombre del objeto, sus atributos y sus métodos. En la composición de un objeto el tiempo de vida es la duración de dicho objeto en el programa, el estado de un objeto esta definido por sus atributos y su comportamiento se define por sus métodos. Cuando se crea un objeto se ha de especificar de que clase es, para que el compilador comprenda sus características.