4 - Métodos y parámetros. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Introducción. En este capítulo se Busca que el estudiante comprenda que una clase se compone esencialmente de atributos y métodos, adicionalmente que sepa cómo crearlos y declararlos en una clase y la instanciación de la misma, diferenciar que existen atributos primitivos y TDAs(Tipo Abstracto de Dato). Se realizará un programa que tiene como fin dar a entender la forma de declarar atributos (variables) y hacer conversiones o casting. //calcular área de rectángulo -versión 1 import java.awt.*; import java.applet.Applet; public class Calculo extends Applet { private float longitudFloat; public void paint(Graphics g) { int longitud; int anchura; int area; //declaraciones pantalla longitud = 20; //asignaciones anchura = 10; area = longitud * anchura; //* indica multiplicar g.drawString("El área es " + area, 100, 100); //mostrar respuesta en longitudFloat = area; g.drawString("El área en flotante es: " + longitudFloat, 100, 90); //mostrar respuesta en pantalla g.drawString("Y el área en enteros nuevamente seria: " + (int) longitudFloat, 100, 80); //mostrar respuesta en pantalla } } Y la pagina html seria: <title> Página Web con applet </title> <applet code="PrimerasFiguras.class" width=300 height=200> </applet> Ahora se modificara el programa con el fin que los parámetros de longitud y anchura sean ingresados por el usuario a trabes de un Cuadro de dialogo JOptionPane, ver como se realiza las conversiones explicitas entre datos, el código es el siguiente: package paquete; //calcular área de rectángulo -versión 1 import java.awt.*; import java.applet.Applet; //Paquetre para el manejo de los cuadro de dialogo JOptionpane import javax.swing.JOptionPane; public class Calculo extends Applet { private float longitudFloat; public void paint(Graphics g) { int longitud; int anchura; //declaraciones int area; //Conversion explicita de String a entero empleando la clase Integer // el metodo empleado es parseInt y convierte un String a entero. //El metodo showInputDialog retorna un String digitado en el cuadro de dialogo longitud = Integer.parseInt( JOptionPane.showInputDialog("Ingrese la Longitud: "));//asignaciones anchura = Integer.parseInt(JOptionPane.showInputDialog("Ingrese la anchura: ")); area = longitud * anchura; //* indica multiplicar //El metodo showMessageDialog recibe como parametros de entrada un null y un //String a imprimir dentro del cuadro de dialogo. JOptionPane.showMessageDialog(null, "El area es: "+area); g.drawString("El área es " + area, 100, 100); //mostrar respuesta en pantalla longitudFloat = area; JOptionPane.showMessageDialog(null, "El area es: "+longitudFloat); g.drawString("El área en flotante es: " + longitudFloat, 100, 90); //mostrar respuesta en pantalla JOptionPane.showMessageDialog(null, "El area es: "+longitudFloat); g.drawString("Y el área en enteros nuevamente seria: " + (int) longitudFloat, 100, 80); //mostrar respuesta en pantalla } } Los métodos describen el comportamiento de los objetos, estos al igual que los atributos pueden ser declarados de diferente visibilidad según sea la necesidad, recuerde que si el método o atributo únicamente lo emplea la clase este debe ser declarado como privado, si otras clase deben acceder a este podrá ser declarado publico o privado según sea el caso. El siguiente ejemplo describe la utilización de métodos privados y el manejo de los parámetros de entrada en ellos: La idea del ejemplo es dibujar una casa para ello se emplearan los métodos drawLine y drawRect que proporciona la clase Graphics contenida en el paquete java.awt, para la construcción de la casa se necesita un rectángulo que se dibuja en el método dibujarCasa y un triangulo que simboliza el techo, este se dibuja a través del método dibujarTriangulo, como los métodos dibujarTriangulo y dibujarCasa solo se emplean en la misma clase se declararan como privados, fíjese que ellos no necesitan de la palabra static ya que son privados y por definición nosotros sabemos que si se declaran métodos o atributos privados únicamente los puede emplear la clase que los declara. import java.awt.*; import java.applet.Applet; public class CasaDemo extends Applet { /** * */ private static final long serialVersionUID = 1L; public void paint(Graphics g) { dibujarCasa(g,50,50,70,30); dibujarCasa(g,100,50,60,20); } private void dibujarTriangulo(Graphics g, int inferiorX, int inferiorY, int base, int altura) { g.drawLine(inferiorX, inferiorY, inferiorX+base, inferiorY); g.drawLine(inferiorX+base, inferiorY, inferiorX+base/2, inferiorY-altura); g.drawLine(inferiorX+base/2, inferiorY-altura, inferiorX, inferiorY); } private void dibujarCasa(Graphics g, int inferiorX, int inferiorY, int anchura, int altura) { g.drawRect(inferiorX, inferiorY-altura, anchura, altura); dibujarTriangulo(g, inferiorX, inferiorY-altura, anchura, altura/2); } } Ahora realice ud una aplicación en java que dibuje un circunferencia empleando solo el método drawString de la clase Graphics, este dibujo se realizara sobre un applet, recuerde que el método drawString recibe como parámetros de entrada el String a imprimir y las coordenadas del punto (X,Y) en donde se empezara a escribir. Ejemplo: g.drawString(“.”, 50,50);// se dibuja un punto en la posición 50, 50 del applet.