3.introducción a las clases y los objetos en java

20
Clases y Objetos Ramiro Estigarribia Canese

Transcript of 3.introducción a las clases y los objetos en java

Clases y Objetos

Ramiro Estigarribia Canese

Un mundo de objetosExisten en la naturaleza, en los negocios y en los productos que usamos.

No es sorprendente que se proponga una visión orientada a objetos para la creación de software.

Es una abstracción que modela el mundo de forma tal que nos ayuda a entenderlo mejor.

¿Por qué enfocar a objetos?Las tecnologías de objetos están sustituyendo a los enfoques clásicos de desarrollo de software. ¿Por qué? La respuesta principal es la reutilización.

Reutilización x NaturalezaLas tecnologías de objetos llevan a reutilizar.

La reutilización de componentes de software lleva a un desarrollo de software más rápido y a programas de mejor calidad.

El software orientado a objetos es más fácil de mantener debido a que su estructura es por naturaleza poco acoplada.

Clases y objetosComenzaremos con una analogía simple, para ayudarle a comprender:

➔ Suponga que desea conducir un automóvil y, para hacer que aumente su velocidad, debe presionar el pedal del acelerador. ¿Qué debe ocurrir antes?Antes de poder conducir un automóvil: alguien tiene que diseñarlo.

➔ Así como se pueden construir muchos autos a partir del mismo dibujo de ingeniería, se pueden construir muchos objetos a partir de la misma clase.

Clases, objetos, métodos y variables de instancia➔ Un automóvil empieza en forma de dibujos de

ingeniería, similares a los planos que se utilizan para diseñar una casa.

➔ El volante “oculta” los mecanismos que hacen que el automóvil gire.

➔ Permite que personas sin conocimiento acerca de cómo funcionan los motores puedan conducir.

Construir un Vehículo.➔ Desafortunadamente, no puede conducir un dibujo

de un auto. ➔ Se debe construir a partir de los dibujos. ➔ Un automóvil tendrá un pedal acelerador, pero aún

así no es suficiente; el automóvil no acelerará por su propia cuenta, así que el conductor debe oprimir el pedal del acelerador.

➔ Para realizar una tarea en una aplicación se requiere un método.

AtributosEs una especificación que define una propiedad de un objeto o clase.➔ Un auto tiene muchos atributos como su color, el

número de puertas, la cantidad de gasolina en su tanque y su velocidad actual.

➔ Cuando usted conduce un automóvil, estos atributos siempre están asociados con él.

➔ Por ejemplo, cada conductor sabe cuánta gasolina tiene en su propio tanque, pero no cuánta hay en los tanques de otros automóviles.

¿Qué son los Métodos?➔ Los métodos son las tareas que puede realizar una

clase. ➔ En Java, empezamos por crear una unidad de

aplicación llamada clase para alojar a un método.➔ En una clase se proporcionan uno o más métodos. ➔ Por ejemplo, una clase que representa a una

cuenta bancaria podría contener un método para depositar dinero en una cuenta, otro para retirar dinero.

Llamar a un Método➔ Cuando usted conduce un automóvil, si oprime el

pedal del acelerador se envía un mensaje al automóvil para que realice una tarea.

➔ De manera similar, se envían mensajes a un objeto.➔ cada mensaje se conoce como la llamada a un

método, e indica a un método del objeto que realice su tarea.

Ejemplo:Declaración de una clase

// LibroNotas.java// Declaración de una clase con un método.public class LibroNotas{// muestra un mensaje de bienvenidapublic void mostrarMensaje(){System.out.println( "Bienvenido al Libro de Notas!" );} // fin del método mostrarMensaje} // fin de la clase LibroNotas

Ejemplo:Declaración de una clase➔ Como aprendimos en el capítulo 2, la clase main

empieza la ejecución de todas las aplicaciones. ➔ La clase LibroNotas no es una aplicación, ya que

no contiene a main. ➔ Por lo tanto, si trata de ejecutar, recibirá un

mensaje de error: java.lang.NoSuchMethodError: main

Para corregir este problema, debemos declarar una clase que contenga un método main.

Objeto de la Clase: LibroNotas// TestLibroNotas.javapublic class TestLibroNotas{//el método main empieza la ejecución del programapublic static void main( String args[] ){// crea un objeto NotasLibroNotas miLibroNotas = new LibroNotas();miLibroNotas.mostrarMensaje();} // fin de main} // fin de la clase PruebaLibroNotas

Ejemplo:Depositar dinero en cuenta.➔ El siguiente ejemplo, permite actualizar el saldo de

un cliente.➔ Se utiliza una clase Cuenta.java, y Ejecutar.java, en

donde se encuentra el método Main.

package cuenta;public class Cuenta{ private double saldo; //almacena el saldopublic Cuenta( double saldoInicial ) //constructor{if ( saldoInicial > 0.0 )saldo = saldoInicial;}public void abonar( double monto ){ saldo = saldo + monto; // suma el monto al saldo} // devuelve el saldo de la cuentapublic double obtenerSaldo(){ return saldo; // proporciona el valor de saldo } // fin del método obtenerSaldo} // fin de la clase Cuenta

package cuenta;import java.util.Scanner;public class Ejecutar {public static void main( String args[] ){Cuenta cuenta1 = new Cuenta( 50.00 ); // crea objeto CuentaCuenta cuenta2 = new Cuenta( 10.00 ); // crea objeto Cuenta// muestra el saldo inicial System.out.printf("Saldo de cuenta1: $%.2f\n",cuenta1.obtenerSaldo());System.out.printf("Saldo de cuenta2: $%.2f\n",cuenta2.obtenerSaldo());Scanner entrada = new Scanner( System.in ); //Entrada de Datosdouble montoDeposito; // deposita el monto System.out.print( "Escriba el monto a depositar para cuenta1: " );montoDeposito = entrada.nextDouble(); // obtiene entrada del usuarioSystem.out.printf( "\nSumando %.2f al saldo de cuenta1\n\n",montoDeposito );cuenta1.abonar( montoDeposito ); // suma al saldo de cuenta1// muestra los saldosSystem.out.printf( "Saldo de cuenta1: $%.2f\n", cuenta1.obtenerSaldo());System.out.printf( "Saldo de cuenta2: $%.2f\n", cuenta2.obtenerSaldo());}}

Cuadro de Diálogo Visual➔ Los programas que hemos presentado hasta ahora

muestran su salida en la ventana de comandos.➔ Muchas aplicaciones utilizan ventanas, o cuadros

de diálogo para mostrar la salida.

Dialogo1.javapackage dialogo1;import javax.swing.JOptionPane; public class Dialogo1{public static void main( String args[] ){JOptionPane.showMessageDialog( null, "Bienvenido" );} // fin de main} // fin de la clase Dialogo1

Dialogo2.javapackage dialogo2;import javax.swing.JOptionPane;public class Dialogo2{public static void main( String args[] ){// pide al usuario que escriba su nombreString nombre =JOptionPane.showInputDialog( "Cual es su nombre?" );String mensaje = String.format( "Bienvenido, %s, al curso!", nombre );JOptionPane.showMessageDialog( null, mensaje );} // fin de main} // fin de la clase DialogoNombre

Concatenar Palabras.package concatenar;import javax.swing.JOptionPane;public class Concatenar { public static void main(String[] args) { String var1= new String("Hola");String var2= new String("mundo");String frase= var1 + " " + var2;JOptionPane.showMessageDialog( null, frase);}}