Estructura de un programa en Java

Anuncio
1
Prof. Gerardo Barrientos
4to. Bachillerato en Computación
Estructura de un programa en Java
Clases y Objetos





1
2
3
4
5
Como lo hemos mencionado anteriormente Java es un programa orientado a objetos, lo cual quiere decir
que se compone solamente de objetos.
Un objeto es la concreción de una clase.
Una clase equivale a la generalización de un tipo específico de objetos.
La clase define los atributos del objeto así como los métodos para manipularlos.
Toda aplicación Java está formada por, al menos, una clase que define un método nombrado main, como
se muestra a continuación:
public class CMiAplicación{
public static void main (String[ ] args){
//código que se desea ejecutar
} // fin del método main
}fin de la clase.
Idea de programación: Una clase que contiene un método main es una plantilla para crear un objeto
aplicación que tiene como misión iniciar y finalizar la ejecución de la aplicación. El método main es el punto
de entrada y de salida de nuestra aplicación.
Pensando en objetos



Para explicar cómo es la estructura de un programa Java, vamos a plantear un ejemplo sencillo de un
programa que presente una tabla de equivalencia entre grados Centígrados y grados Fahrenheit:
Centígrados
Fahrenheit
-30
-24
-18
-12
-6
-22
-11.20
-0.39
10.39
21.2
La relación viene dada por la expresión: Grados Fahrenheit= 9/5 * GCentígrados+32.
Los cálculos los vamos a realizar para un intervalo de -30 a 100 grados centígrados con incrementos de 6.
¿De qué trata este problema? De grados. Podemos, pensar en objetos grados que
encapsulen un valor en grados centígrados y los métodos necesarios para asignar al
objeto un valor en grados centígrados, así como para obtener su equivalente en
Fahrenheit. En base a eso, podríamos escribir una clase CGrados como se puede
observar a continuación:
2
Prof. Gerardo Barrientos
4to. Bachillerato en Computación
1 class CGrados{
2
private float gradosC; //Grados centígrados
3
public void CentigradosAsignar (float gC) {
4
//Establecer el atributo grados centígrados
5
gradosC=gC;
6
}
7
public float FahrenheitObtener(){
8
//Retornar los grados fahrenheit equivalentes a gradosC
9
return 9F/5F * gradosC+32;
10
}
11
public float CentigradosObtener(){
12
return gradosC;//Retornar los grados centígrados.
13
}
14 }



El código anterior muestra que un objeto de la clase CGrados tendrá una estructura interna
formada por el atributo:
o gradosC, grados centígrados.
Y una interfaz de acceso formada por los métodos:
o CentigradosAsignar que permite asignar a un objeto un valor en grados centígrados.
o FahrenheitObtener que permite retornar el valor grados Fahrenheit equivalente a gradosC
o CentigradosObtener que permite retornar el valor almacenado en el atributo gradosC
Ahora bien, recuerde que toda aplicación Java tiene que tener un objeto aplicación, que aporte un
método main, por donde empezará y terminará la ejecución de la aplicación. ¿Cómo podemos
imaginar esto de forma gráfica?
mensajes /respuestas
Objeto
Aplicación



CentigradosAsignar
FahrenheitObtener
Objeto
CGrados
¿Qué debe hacer el objeto Aplicación?: Debe visualizar cuántos grados Fahrenheit son -30, -24 , 18 Centígrados y así sucesivamente hasta llegar a 100.
¿Cómo lo hace? : Debe enviar al objeto CGrados los mensajes CentigradosAsignar y
FahrenheitObtener una vez para cada valor desde -30 a 100 grados centígrados con incrementos de
6. El objeto CGrados responderá ejecutando los métodos vinculados con los mensajes que recibe.
Veamos ahora el código de la clase que dará lugar al objeto aplicación:
import java.lang.System; // importar la clase System
public class CApGrados{
// Definición de constantes
final static int limInferior = -30;
final static int limSuperior = 100;
final static int incremento = 6;
3
Prof. Gerardo Barrientos
4to. Bachillerato en Computación
public static void main(String[] args) {
// Declaración de variables
Cgrados grados = new Cgrados();
int gradosCent = limInferior;
float gradosFahr = 0;
while (gradosCent <= limSuperior) {
// Asignar al objeto grados el valor en grados centígrados
grados.CentigradosAsignar(gradosCent);
// Obtener del objeto grados los grados Fahrenheit
gradosFahr = grados.FahrenheitObtener();
// Escribir la siguiente línea de la tabla
System.out.println(gradosCent + “ C” + “\t” + gradosFahr + “ F”);
// Siguiente valor
gradosCent += incremento;
}
}
}


Probablemente en este punto se pueda pensar que era más sencillo crear solamente el objeto
aplicación y efectuar dentro del método main la operación y mostrar el resultado. Lo cual es
completamente cierto. Sin embargo se incluye este ejemplo para demostrar como un programa en
Java es un conjunto de objetos que se comunican entre sí mediante mensajes, con el fin de obtener
el resultado deseado.
Una vez analizado el problema se podrá crear una nueva aplicación, escribiendo la clase CGrados (la
cual no es pública). A continuación, escribir, en el mismo archivo pero antes de CGrados la clase
aplicación CApGrados (esta clase sí es pública) . Guardar la aplicación con el nombre de la clase
aplicación (CApGrados.java), compilar y ejecutar la aplicación.
(La aplicación se encuentra adjunta a esta Guía Didáctica para que revise si tiene dudas).
Resumen




En el ejemplo anterior podemos observar que una aplicación Java consta de:
o Sentencias import (para establecer vínculos con otras clases de la biblioteca Java o
realizadas por nosotros)
o Una clase aplicación pública (la que incluye el método main).
o Otras clases no públicas.
Sabemos también que una clase encapsula los atributos de los objetos que describe y los métodos
para manipularlos. Pues bien, cada método consta de:
o Definiciones y / o declaraciones.
o Sentencias a ejecutar.
En un archivo se pueden incluir tantas definiciones de clase como desee pero sólo una de ellas
puede ser declarada public.
Cada clase pública debe ser guardada en un archivo con su mismo nombre y extensión .java
4
Prof. Gerardo Barrientos
4to. Bachillerato en Computación
Anexo – Aplicación Ejemplo CApGrados.java
/**
* Conversión de grados centígrados a fahrenheit: F = 9/5 * C + 32
* Ejemplo incluido en la Guía Didáctica de la Semana 4
*/
import java.lang.System; // importar la clase System
public class CApGrados {
// Definición de constantes
final static int limInferior = -30;
final static int limSuperior = 100;
final static int incremento = 6;
public static void main(String[] args) {
// Declaración de variables
CGrados grados = new CGrados();
int gradosCent = limInferior;
float gradosFahr = 0;
while (gradosCent <= limSuperior){
// Asignar al objeto grados el valor en grados centígrados
grados.CentigradosAsignar(gradosCent);
// Obtener del objeto grados los grados fahrenheit
gradosFahr = grados.FahrenheitObtener();
// Escribir la siguiente línea de la tabla
System.out.println(gradosCent + " C" + "\t" + gradosFahr + " F");
// Siguiente valor
gradosCent += incremento;
}
}
}
/**
* Clase CGrados. Un objeto de esta clase almacena un valor en grados centígrados.
* Atributos:
*
gradosC
* Métodos:
*
CentigradosAsignar, FahrenheitObtener y CentígradosObtener
*/
class CGrados{
private float gradosC; // grados centígrados
public void CentigradosAsignar(float gC)
{
// Establecer el atributo grados centígrados
gradosC = gC;
}
public float FahrenheitObtener() {
// Retornar los grados fahrenheit equivalentes a gradosC
return 9F/5F * gradosC + 32;
}
public float CentigradosObtener() {
5
Prof. Gerardo Barrientos
return gradosC; // retornar los grados centígrados
}
}
4to. Bachillerato en Computación
Descargar