fundamentos de java ing. pedro torrealba. objetivos identificar los componentes básicos de los...

Post on 02-Apr-2015

113 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Fundamentos de Java

Ing. Pedro Torrealba

Ing. Pedro Torrealba

OBJETIVOS

• Identificar los componentes básicos de los programas Java.• Distinguir dos tipos de programa Java: aplicaciones y

applets.• Escribir aplicaciones Java sencillas y applets sencillos.• Describir la diferencia entre la declaración y la creación de

objetos.• Describir el proceso de crear y ejecutar programas Java.• Usar las clases ventanaPrincipal y CuadroMensaje del

paquete javabook para escribir aplicaciones Java.• Usar la clave Graphics del paquete estándar de Java.

Ing. Pedro Torrealba

La primera aplicación JavaUn programa orientado a objetos usa objetos.

/* Programa MiPrimeraAplicacionEste programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta.*/import javabook.*;class MiPrimeraAplicacion{ public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana}

Ing. Pedro Torrealba

El diagrama de objetos del programa MiPrimeraAplicacion

MiPrimeraAplicacion

main

ventanaPrincipal

MainWindow

show

Ing. Pedro Torrealba

Uso de objetos

Para usar un objeto en un programa, se debe declarar y crear el objeto primero y, después enviarle mensajes.

Ing. Pedro Torrealba

Declaración de objetos

La declaración de un objeto se hace siguiendo la siguiente sintaxis:

<nombre de la clase> <nombre del objeto>;

Nombre de claseDebe ser definido en

alguna parte.

Nombre de ObjetoAquí se declara un

objeto.

MainWindow ventanaPrincipal;

Ing. Pedro Torrealba

Validez de identificadores

Identificadores válidos:MiPrimeraAplicacionDiversionAreaCalculo

Identificadores no válidos:Mi Primera AplicacionProgarma DiversiónArea Calculo

Un identificador es una secuencia de letras y dígitos cuyo primer carácter es siempre una letra.

Se usa un identificador para dar nombre a una clase, un objeto, un método u otros componentes.

Ing. Pedro Torrealba

Convención de nombrado

Se sigue la convención de nombres de, mayúscula para la primera letra de los nombres de clase y una letra minúscula para la primera letra de los nombres de objetos.

Es importante seguir la convención estándar de nombrado de forma que otros puedan leer sus programas y distinguir fácilmente el propósito de los identificadores.

Los programas que siguen la convención de nombrado estándar son más fáciles de leer que aquellos que no la siguen.

Siga la convención de nombrado estándar cuando escriba sus programas de Java para hacerlos más fácilmente legibles.

Ing. Pedro Torrealba

Creación de objetosSintaxis de creación de objetos:

<nombre de objeto = new <nombre de clase> ( <argumentos>);

ventanaPrincipal = new MainWindow ( );

Nombre de ObjetoNombre del objeto

que se está creando.

Nombre de Clase Se crea una

instancia de esta clase.

Argumento Aquí no se

usan argumentos.

Ing. Pedro Torrealba

Declaración y creación de un objeto

Cuenta cuenta;

Estado de la memoria

cuenta = new Cuenta( );

después de ejecutar A

cuenta

Se declara el identificador cuenta y se asigna espacio en memoria.

Cuenta cuenta;

cuenta = new Cuenta( );después de ejecutar B

Se crea un objeto Cuenta y se le asigna un identificador cuenta.

cuenta

A

B

Cuenta

Ing. Pedro Torrealba

Envío de MensajesDespués de que se ha creado el objeto, se puede comenzar a enviarle mensajes.

La sintaxis para enviar un mensaje a un objeto es

<nombre de objeto>.<nombre de método>(<argumentos>);

donde <nombre de objeto> es un nombre de objeto, <nombre de método> es un nombre de método del objeto y <argumentos> es una secuencia de valores que se pasan al método.

ventanaPrincipal.setVisible(true);

Nombre de ObjetoNombre del objeto al que

se le envía el mensaje

Nombre de MétodoNombre del mensaje

que se envía

AgumentoArgumernto que sePasa con el mensaje

Ing. Pedro Torrealba

Creación repetida de un objeto

El primer objeto cliente se desasignará eventualmenteporque no hay ninguna referencia al mismo.

Costumer Costumer

cliente

Custumer cliente;cliente = new Custumer();cliente = new Custumer();

Creado por elprimer new

Creado por elsegundo new

Ing. Pedro Torrealba

Preguntas rápidas1. ¿Cuáles de los siguientes identifícadores son inválidos?

a. Uno e. Holab. mi Ventana f. JAVAc. 1234 g. hola, ahíd. acctl22 h. DecafeLattePlease

2. ¿Qué está equivocado en el código siguiente?VentanaPrincipal ventanaPrincipal( ) ;ventanaPrincipal.show( ) ;

3. ¿Hay algo equivocado en las siguientes declaraciones?ventanaPrincipal VentanaPrincipal;Cuenta, Cliente cuenta, cliente;

4. ¿Cuál de las siguientes sentencias es válida?a. ventanaPrincipal.setVisible( "true" );b. ventanaPrincipal.setVisible( true );

Ing. Pedro Torrealba

Componentes de un programa

Un programa Java se compone de comentarios, sentencias y declaraciones de clase.

Aunque no son necesarios para ejecutar el programa, los comentarios son indispensables para escribir código fácil de comprender.

Ing. Pedro Torrealba

Comentarios

/*Esto es un comentario contres líneas detexto.*/

// Esto es un comentario// Esto es otro comentario// Esto es un tercer comentario

Ing. Pedro Torrealba

Comentarios javadoc

Es un comentario especializado que puede aparecer antes de la declaración de clase y de cualquier otro elemento de programa.

Los comentarios javadoc comienzan con la marca /** y terminan con la marca */.

Aquí hay un ejemplo de un comentario javadoc:

/*** Esta clase proporciona funciones básicas de reloj.* Ademas de para leer la hora actual y la fecha de hoy, * se puede usar esta clase para funciones de* cronometro.*/

Ing. Pedro Torrealba

Más información de javadoc

Se puede encontrar más información sobre javadoc, y páginas web de documentación de ejemplo generadas a partir de javadoc, en

www.drCaffeine.com/supportinfo/javadoc.html.,

puede obtener una documentación completa de las clases estándares de Java generadas a partir de comentarios javadoc en

www.java.sun.com/j2ee/j2sdkee/techdocs/api/.

Ing. Pedro Torrealba

Ejemplo de javadoc* Programa: EditorTexto** Autor: C. Thomas Wu* ctwu@cs.nps.navy.mil ** Curso: comp.. Sci. 101* Spring 2000* Programa asignado num. 7* Compilador: JDK 1.2.* Plataforma: Windows 98** Descripción:* Editor de texto sencillo. Permite al usuario salvar texto* a un archivo y leer de un archivo. Muestra el texto usando* únicamente fuentes Courier y no permite dar formato al texto* (por ejemplo, negrita, itálica, etc.). El editor proporciona* funciones de edición estándares como Cut, Copy y Paste, pero* no tiene Undo. Para mas detalles consulte, por favor, el* archivo TxEditReadme.*/

Ing. Pedro Torrealba

Utilidad de los comentariosLas marcas de comentarios son útiles para desactivar una porción de un programa.

Suponga que encuentra una porción de un programa que puede estar causando un problema y hace que el programa falle, se puede intentar eliminar el código que da lugar al problema.

En lugar de reemplazar la parte problemática completa con un código nuevo, se puede dejar el código cuestionable dentro del programa convirtiéndolo en un "comentario" mediante el uso de marcas de comentario.

Si necesita el código más tarde, sólo tiene que eliminar las marcas de comentarlos.

Ing. Pedro Torrealba

Sentencia ImportPara usar una clase de un paquete, se puede referir a la clase dentro de su programa usando el siguiente formato:

<nombre de paquete>.<nombre de clase>

Por ejemplo, para usar la clase VentanaPrincipal del paquete javabook, se indica como

javabook.VentanaPrincipal

que se debe leer como "javabook punto VentanaPrincipal". Esta notación es la que se denomina notación puntuada o punto.

Un paquete puede incluir subpaquetes, definiendo una jerarquía de paquetes.

Cuando hay que referirse a una clase dentro de un paquete profundamente anidado, se usan múltiples puntos. Por ejemplo, se escribe

java.awt.image.ColorModel

para referirse a la clase ColorModel dentro del paquete java.awt.image.

Ing. Pedro Torrealba

Nombrescompletamente calificados

La notación puntuada con los nombres de todos los paquetes a los que pertenece la clase se denomina el nombre completamente calificado de la clase.

Una sentencia import al principio de su programa elimina la necesidad de usar nombres completamente calificados.

import java.awt.image.ColorModel;

Se puede importar todas las clases usando la notación asterisco:

import <nombre de paquete>.*;

Ing. Pedro Torrealba

Declaración de clases

La sintaxis para declarar una clase es

class <nombre de clase>{<declaraciones de miembros de la clase>}

donde <nombre de clase> es el nombre de la clase y <declaraciones de miembros de la clase> es una secuencia de declaraciones de miembros de la clase.

La palabra class es una palabra reservada que se usa para indicar el principio de una declaración de clase.

Un miembro de clase puede ser o bien un valor de datos o un método.

Se puede usar cualquier identificador válido para dar nombre a la clase.

Ing. Pedro Torrealba

Declaración de métodosLa sintaxis para la declaración de método es

<modificadores> <tipo devuelto> <nombre de método> (<parámetros>)

{

<cuerpo del método>

}

<modificadores> - secuencia de términos para designar distintos tipos de métodos

<tipo devuelto> - tipo de valor de datos devuelto por un método

<nombre de método> - nombre de un método

<parámetros> - es una secuencia de valores que se pasan al método

<cuerpo del método> - es una secuencia de instrucciones.

Ing. Pedro Torrealba

/* Programa MiPrimeraAplicacionEste programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta.*/

import javabook.*;class MiPrimeraAplicacion{ public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana

}}

Declaración de métodoEsta declaración crea el

método main.

Ing. Pedro Torrealba

Modificador Modificador Tipo de vueltaNombre del

método Parámetros

public static void main (String[] args)

{ MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana

}

Cuerpo del métodoFormado por una secuencia

de instrucciones

Ing. Pedro Torrealba

Preguntas rápidas

1. Denomine los tres componentes de un programa Java.

2. Localice los tres componentes del programa en el programa Diversión del Capítulo 1.

3. Compare Diversión y MiPrimeraAplicacion y haga una lista de las similitudes diferencias.

Ing. Pedro Torrealba

Plantilla para aplicaciones Java sencillas

Comentario

Sentencia import

Nombre de Clase

Cuerpo de método

public static void main(String[] args)

class

Ing. Pedro Torrealba

Ciclo edición-compilación-ejecución

MiPrimeraAplicacion.java MiPrimeraAplicacion.class

/* Programa MiPrimeraAplicacionEste programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta.*/

import javabook.*;class MiPrimeraAplicacion{ public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana

}}

9032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 274874284294424982749794

Compilador

(archivo fuente)

Interprete

Programa en ejecución

(archivo objeto)

Editor

Paso 1 Paso 2 Paso 3

Edit, Notepad, etc.javac java

Ing. Pedro Torrealba

El paquete javabookPara ser un buen programador de lenguajes orientados a objetos, uno debe primero aprender cómo usar clases predefinidas.

Las clases predefinidas de javabook tiene las siguientes ventajas:

1. Le proporciona una pequeña muestra de cómo se desarrollan los programas del mundo real.

2. Minimiza el impacto de la sintaxis y la semántica del lenguaje de programación.

3. Le permite escribir programas prácticos sin aprender demasiados detalles del lenguaje Java.

4. Sirve como un buen ejemplo de diseño de clases.

Ing. Pedro Torrealba

EjemploDefinición del problema

Los desarrollos empiezan con una definición del problema. La definición del problema para nuestros programas de ejemplo será corta, variando entre una sentencia y un párrafo, pero la definición del problema para las aplicaciones avanzadas y complejas puede contener muchas páginas.

Escriba una aplicación que muestre el mensaje Me Gusta Java.

Ing. Pedro Torrealba

EjemploDiseño

En la etapa de diseño, se traduce la definición del problema dado en un documento de diseño que se puede implementar.

Para los programas orientados a objetos, un documento de diseño incluirá una lista de clases.

Las clases del documento de diseño son clases predefinidas hechas por el usuario.

Para cada clase en la lista, se identifica su objetivo, los métodos y valor de datos que serán definidos en ella, las suposiciones hechas para su uso y algunas cosas más.

Ing. Pedro Torrealba

Diseño

Clase Propósito

MostrarMensaje La clase principal del programa.

MainWindow Marco de ventana principal del programa. El título se define para MostrarMensaje. Esta clase es de javabook.

MessageBox Diálogo para mostrar el mensaje pedido. Clase de javabook.

Documento diseño: MostrarMensaje

Ing. Pedro Torrealba

Diagrama de objetos

MostrarMensaje

main

ventanaPrincipal

MainWindow

show

cuadroMensaje

MessageBox

show

Ing. Pedro Torrealba

Codificación/* Programa MostrarMensaje El programa muestra el texto "Me gusta Java". El programa utiliza un objeto MessageBox del paquete javabook para mostrar el texto.*/import javabook.*;class MostrarMensaje{ public static void main(String args[]) { // se declaran dos objetos MainWindow ventanaPrincipal; MessageBox cuadroMensaje; // se crean dos objetos ventanaPrincipal = new MainWindow("Mostrar mensaje"); cuadroMensaje = new MessageBox(ventanaPrincipal); // se hacen visibles los dos objetos: // primero el marco (ventana principal) // y después el dialogo con el mensaje ventanaPrincipal.show(); cuadroMensaje.show("Me gusta Java"); }}

Ing. Pedro Torrealba

Applets

/* Programa MiPrimerApplet Un applet que muestra el texto "Me gusta Java“ y un rectangulo rodeando al texto.*/

import java.applet.*;import java.awt.*;

public class MiPrimerApplet extends Applet{ public void paint(Graphics g) { g.drawString("Me gusta Java",70,70); g.drawRect(50,50,130,30); }}

Comentario

Sentenciasimport

Declaraciónde clase

Ing. Pedro Torrealba

Diagrama de objetos del applet

AppletViewer

mainMiPrimerApplet

paintGraphics

Ing. Pedro Torrealba

Subclase de applet

Una subclase de Applet se declara como:

public class <subclase de applet> extends applet

{

<declaraciones de miembros de la clase>

}Applet

MiPrimerApplet

Ing. Pedro Torrealba

Pasos para ejecutar un applet

MiPrimerApplet.java MiPrimerApplet.class/* Programa MiPrimerApplet Un applet que muestra el texto "Me gusta Java“ y un rectangulo rodeando al texto.*/

import java.applet.*;import java.awt.*;

public class MiPrimerApplet extends Applet{ public void paint(Graphics g) { g.drawString("Me gusta Java",70,70); g.drawRect(50,50,130,30); }}

9032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 2748742842944249827497949032 274874284294424982749794

Compilador

(archivo fuente)

Programa en ejecución

(archivo objeto)

Editor

Paso 1 Paso 2

Paso 4Edit, Notepad, etc.javac

<HTML><BODY><APPLET CODE="MiPrimerApplet.class" WIDTH=300 HEIGHT=190></APPLET></BODY></HTML>

(archivo html)

Edit, Notepad, etc.

AppletViewer

Paso 3

Ing. Pedro Torrealba

Archivos HTML

<HTML><BODY><APPLET CODE="MiPrimerApplet.class" WIDTH=300 HEIGHT=190></APPLET></BODY></HTML>

Se necesita un archivo HTML que haga referencia al archivo con el código objeto de applet para ejecutar el applet.

Ing. Pedro Torrealba

Preguntas rápidas

1. ¿Por qué son un visor de applet y un navegador web distintos?

2. ¿Qué clase es la clase principal de un applet?

3. ¿Qué método de la clase Graphics se usaría para dibujar un rectángulo?

4. ¿Cuál es el objetivo de la etiqueta APPLET en un archivo HTML?

Ing. Pedro Torrealba

Actividad

Escriba un programa en Java que envíe los siguientes letreros a la pantalla y envie los mensajes que se indican a la ventana principal. Localiza la ventana principal inicialmente en la posición 150,150 y con dimensiones 100 x 100.

Letrero Mensaje“Bienvenidos” Poner ventana en la posición 100,100 “Como estan?” Cambiar ancho a 400“Yo soy...nombre” Cambiar alto a 300“Eso es todo...” Poner ventana en la posición 200,400“Fin...”

Ing. Pedro Torrealba

Código básico de la actividad/* Programa Actividad*/import javabook.*;

class Actividad{ public static void main(String args[]) { // se declaran dos objetos MainWindow ventanaPrincipal; MessageBox cuadroMensaje; // se crean dos objetos ventanaPrincipal = new MainWindow("Mostrar mensaje"); cuadroMensaje = new MessageBox(ventanaPrincipal); // se hacen visibles los dos objetos: ventanaPrincipal.show(); cuadroMensaje.show(“Bienvenidos"); //AQUÍ VA EL CÓDIGO PEDIDO... }}

Ing. Pedro Torrealba

Algunos métodos disponibles para dibujar gráficos

Método Significado

drawLine(x1 ,y1 ,x2,y2) Dibuja una línea entre (x1,y1) y (x2,y2)

drawRect(x,y,w,h) Dibuja un rectángulo con anchura w y altura h en (x,y)

drawRoundRect(x,y,w,h,aw,ah)Dibuja un rectángulo con esquinas redondeadas,anchura w y altura h en (x, y) Los parámetrosaw y ah determinan el ángulo para redondearlas esquinas

draw0val(x,y,w,h) Dibuja un óvalo con anchura w y altura h en laposición (x, y)

drawString("texto",x,y) Dibuja el string texto en (x,y)

Ing. Pedro Torrealba

Ejemplo gráfico

import javabook.*;import java.awt.*;class Triangulo{

static public void main(String[] args){MainWindow ventana = new MainWindow();InputBox entrada = new InputBox(ventana);ventana.show();//mostrar ventana antes de iniciar gráficosGraphics g = ventana.getGraphics();g.setColor(Color.red);g.drawLine(100,100,400,100);g.drawLine(400,100,400,400);g.drawLine(400,400,100,100);

}}

Dibujo de un Triángulo

Ing. Pedro Torrealba

Una caritaimport javabook.*;import java.awt.*;class Carita{ static public void main(String[] args){ MainWindow ventana = new MainWindow(); InputBox entrada = new InputBox(ventana); ventana.show();//mostrar ventana antes de iniciar gráficos Graphics g = ventana.getGraphics(); g.setColor(Color.red); g.drawOval(100,100,400,400); g.drawOval(200,250,40,40); g.drawOval(350,250,40,40); g.drawArc(200,350,200,100,225,90); }}

100,100 400

400

200,250 350,250

200,350 200

100225°

90°

40

4040

40

top related