Download Carlos Montenegro Programación Orientada a Objetos Proyecto

Document related concepts
no text concepts found
Transcript
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.