Guia Java Básico UTS

Embed Size (px)

Citation preview

  • 8/4/2019 Guia Java Bsico UTS

    1/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    1

    PROGRAMACION ORIENTADA A OBJETOS

    Prctica 0. Cmo mandar un proyecto.Instrucciones

    Paso 1:Al crear un nuevo proyecto es importante que veas en qu carpeta va a ir. En el dilogo de creacin deun nuevo proyecto puedes ver la carpeta en donde indica la fotografa:

    Esta carpeta (D:\projects\Prueba) es la carpeta del proyecto. Dentro de ella encontramos toda la

    informacin de nuestro proyecto as como todos los archivos que lo componen. Debe tener unaestructura similar a la siguiente:

    build: contiene las clases compiladas en archivos .class dist: contiene el archivo .jar que permite ejecutar la aplicacin de Java directamente nbproject: contiene informacin sobre el proyecto de NetBeans que nos es irrelevante src: contiene los archivos .java que son la fuente de nuestro proyecto test: contiene los archivos de las pruebas de unidad build.xml: le indica a NetBeans cmo construir la aplicacin manifest.mf: es un archivo necesario para el .jar ejecutable de Java, le indica a la mquina

    virtual cmo correr el programa

    Una vez que te encuentres en esta carpeta debers borrar las carpetas build y dist (ya que regularmente

    son las ms grandes y son muy fciles de reproducir). Una vez que hayas hecho esto comprime la

    carpeta del proyecto (D:\projects\Prueba) y ese archivo es el que debes mandar.

  • 8/4/2019 Guia Java Bsico UTS

    2/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    2

    PROGRAMACION ORIENTADA A OBJETOS

    Prctica 1. Java IDE NetBeans.Teora

    Introduccin a Lenguajes de ProgramacinQu son? Lenguajes de programacin: Herramienta utilizada para escribir programas Programa: Conjunto de instrucciones que se ejecutan en una computadora Categoras de los lenguajes de programacin:

    Mquina

    Bajo Nivel (Ensamblador)

    Alto Nivel (Java, C++)

    Lenguaje Mquina Instrucciones entendibles directamente por la computadora. Son muy complicadas y se representan en

    unos y ceros:

    Ejemplo: 0110 0010 1101 0011

    0010 0000 0010 1001

    Lenguajes de programacin

    Lenguaje de Bajo Nivel:

    Simplifican el proceso de programacin.

    Dependen de la arquitectura del procesador.

    Se escriben instrucciones utilizando cdigo alfabticos conocidos como nemotcnicos.

    Ejemplo: MOV AX 3

    ADD AX 7

    SUB AX 2

    Lenguajes de alto nivel:

    Buscan abstraer la complejidad y permiten introducir cdigo con instrucciones ms entendibles,

    similares al lenguaje normal.

    Algunos lenguajes de alto nivel son: Java, C++, Visual Basic.

    if (x == y)

    System.out.println(Esto es una prueba);

    Algunos trminos tiles

    Compilador: Traduce las instrucciones de un lenguaje de alto nivel a lenguaje mquina. Cdigo fuente: Texto que define el comportamiento del programa.

    Compilacin: Es el acto de pasar el cdigo fuente a cdigo mquina.

    Cdigo ejecutable: Forma final que toma el programa, es el cdigo que la computadora puede leer y

    entender.

    Interpretados vs. Compilados

    Existen tres tendencias en cuanto a compilacin:

    Lenguajes interpretados: El cdigo es ledo lnea por lnea y ejecutado conforme se va leyendo.

    Estos programas son lentos porque deben leerse y convertirse a cdigo mquina al correr, pero

    tienen la ventaja de que pueden utilizarse en muchas plataformas diferentes porque no dependen

    de la mquina. Ejemplos: Perl, PHP y la mayora de los lenguajes Web.

  • 8/4/2019 Guia Java Bsico UTS

    3/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    3

    PROGRAMACION ORIENTADA A OBJETOS

    Lenguajes compilados: Se convierte el cdigo a cdigo mquina y despus se ejecuta. Estos

    programas son ms rpidos porque no deben ser interpretados, pero pierden flexibilidad porque

    dependen de la arquitectura del procesador. Ejemplos: C, C++.

    Compilacin intermedia: Qu podemos hacer si queremos tener la flexibilidad de poder correr

    en cualquier plataforma, pero no queremos perder la velocidad de la compilacin? Podemos

    compilar el cdigo a un lenguaje intermedio llamado bytecode y crear una mquina virtual que

    pueda traducir el bytecode a cdigo mquina para cada arquitectura diferente. Ejemplos: Java y

    toda la plataforma .Net.

    Programacin orientada a objetos

    Es un paradigma de programacin que utiliza objetos para describir las funciones y procedimientos de

    un programa.

    Es un paradigma muy popular porque la conciencia humana y nuestra manera de entender las cosas est

    muy relacionada con los objetos. En la programacin orientada a objetos todo es un objeto que fue creado de un molde, llamado clase.

    Instrucciones

    Paso 1:Antes de empezar veamos un poco de contexto sobre el lenguaje de programacin y el IDE que vamos

    a utilizar. Java es un lenguaje de programacin orientado a objetos que comaprte gran parte de su

    sintaxis con C y C++. Java es uno de los lenguajes ms poderosos que existen actualmente y desde laversin 6 es un proyecto open source, por lo que tiene el soporte de toda una comunidad de

    programadores, adems de Sun Microsystems que fueron los creadores originales. En 2005 Java se

    utilizaba en uno de cada cuatro proyectos, casi diez por ciento por encima de su siguiente competidor

    (C++) y ha seguido creciendo. Se estima que un noventa por ciento de las computadoras cuentan con

    una mquina virtual de Java, adems de que todos los celulares y una gran cantidad de dispositivos

    mviles tambin cuentan con Java. NetBeans es un entorno de desarrollo integrado (IDE por sus siglas

    en ingls). Esto quiere decir que integra todas las herramientas que necesitamos para poder desarrollar.

    Originalmente la programacin en Java era algo complicada porque Java cuenta con una enormecantidad de librearas y funciones que era preciso aprenderse de memoria, viendo esto muchas

    compaas construyeron diferentes entornos de programacin para facilitar la tarea del programador.

    Entre los ms populares surgi Eclipse que rein como el nico y ms importante IDE de Java durante

    varios aos. Sun Microsystems desarrollo su propio IDE, que tena la ventaja de que fue creado por lasmismas personas que crearon Java aos antes, este IDE fue NetBeans y despus de varios aos de

    desarrollo ha llegado a ser tan til y poderoso como Eclipse o quizs un poco ms.

    Paso 2:Lo primero que debemos hacer es descargar el kit de desarrollo de Java y el entorno de programacin

    NetBeans. Podemos conseguir estas dos herramientas en el site oficial de Sun Microsystems. Dentro de

    la pgina de descargas debemos descargar el JDK con NetBeans.

  • 8/4/2019 Guia Java Bsico UTS

    4/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    4

    PROGRAMACION ORIENTADA A OBJETOS

    Paso 3:Una vez que hayamos descargado el paquete debemos correr el instalador. Despus de aceptar la

    licencia nos pregunta dnde queremos instalar y al final instala todos los componentes necesarios. Una

    vez terminado de instalar debemos buscar el cono de NetBeans en el escritorio o en el men inicio.

    Corremos el programa haciendo doble click y nos lleva a la pantalla principal que es similar a esta:

    El editor grfico de ventanas en NetBeans es parte de un proyecto llamado Matisse. Desde que sali

    NetBeans 5.5 han habido varias mejoras importantes que hacen que sea mucho ms fcil de utilizar y

    estas mejoras van a ser implementadas en la versin 6.0 de NetBeans. Si ests utilizando una versin

    anterior a la 6.0 puedes seguir los siguientes pasos para instalarlo:

    1. Descarga el archivo con los mdulos de matisse y extraelos en alguna carpeta.2. Abre NetBeans3. Selecciona el men Tools -> Update Center

  • 8/4/2019 Guia Java Bsico UTS

    5/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    5

    PROGRAMACION ORIENTADA A OBJETOS

    4. Selecciona Install Manually Downloaded Modules

    5. En la ventana de seleccionar mdulos presiona el botn Add y selecciona los mdulos que seencontraban dentro del archivo que descargaste en el primer paso.

    6. Acepta el contrato de licencia y reinicia el IDE. Un IDE es una herramienta que nos permiteescribir cdigo y compilar, en este caso se refiere a NetBeans.

    Paso 4:Ahora vamos a continuar con la creacin del proyecto en s. En esta pantalla podemos encontrar todas

    las herramientas necesarias para crear y manejar nuestros proyectos hechos en Java. Por el momento

    presiona el botn de nuevo proyecto. En la ventana que aparece selecciona un nuevo proyecto de Java

  • 8/4/2019 Guia Java Bsico UTS

    6/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    6

    PROGRAMACION ORIENTADA A OBJETOS

    En la segunda ventana ponle como nombre de proyecto HelloWorld. Es importante que en esta ventana

    revises el directorio en el que se guarda el proyecto para que ms adelante puedas acceder a tus

    archivos o puedas agregar imgenes y sonidos.

    Al terminar aparecer la ventana de cdigo en la que podemos comencar a codificar nuestra aplicacin.

  • 8/4/2019 Guia Java Bsico UTS

    7/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    7

    PROGRAMACION ORIENTADA A OBJETOS

    Esto es lo que se llama una Clase en Java (esta clase en particular se llama Main, eso es un dato

    importante porque lo vamos a utilizar ms adelante). Las clases son el fundamento de la programacinorientada a objetos y podramos decir que son el molde con el que hacemos nuevos objetos. Las clasestienen atributos y mtodos. Los atributos son lo que nos dice cmo es esa clase, por ejemplo, los

    atributos de una persona son el color de ojos y el alto (entre muchos otros), los mtodos son lasacciones que puede realizar una clase, por ejemplo correr.

    En el cdigo que se genera automaticamente por NetBeans tenemos dos mtodos, el mtodo Main()

    que tambin se conoce como el constructor de la clase y el mtodo main() que es el punto de inicio del

    programa (por las maysculas y minsculas Main es diferente de main).

    Paso 5:Dentro del mtodo main() escribe el siguiente cdigo:

    Una vez que lo hayas escrito presiona el botn de compilar (o F11). En la ventana de compilacindeben aparecerte varios mensajes de compilacin y debe terminar en BUILD SUCCESSFUL (total

    time: 7 seconds). Esto quiere decir que nuestra aplicacin compil de manera adecuada y estamos listos

    para correrla. Presiona el botn correr (o presiona F6). En la parte inferior de la pantalla debeaparecer el letrero "Hola!".

    Felicidades! Has creado tu primera aplicacin Java con NetBeans, pero esto no es lo que queremos

    que vea un cliente final. Para que un programa sea til para cualquier persona es necesario que tengauna interfaz grfica as que vamos a utilizar Swing para crear una interfaz grfica que nos muestre el

    mismo mensaje.

    Swing es un conjunto de libreras con las que cuenta Java para crear y mostrar una interfaz grfica.

    Dentro de estas libreras hay varias clases (recuerda, una clase es como un molde con el que podemos

  • 8/4/2019 Guia Java Bsico UTS

    8/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    8

    PROGRAMACION ORIENTADA A OBJETOS

    hacer objetos) que nos permiten mostrar ventanas, mensajes, botones, cajas de texto e incluso

    imgenes, audio o video. Una de las clases ms importantes de Swing es JFrame. Esta clase es una

    ventana que tiene un contenedor en el que podemos poner controles.

    Como podemos ver en la imagen un JFrame es una ventana normal de Windows. Dentro de un JFrame

    existe algo llamado ContentPane. Un ContentPane es un contenedor de controles en el que podemos

    agregar los elementos de la interfaz grfica. Ahora veamos otro control importante en la generacin de

    interfaces grficas. El JLabel es una etiqueta con la que podemos motrar texto en nuestras aplicaciones.

    Un JLabel es una herramienta muy poderosa ya que nos permite agregar texto, cambiar el formato, laposicin, agregar imgenes y muchas cosas ms. Vamos a crear una clase que sea un JFrame y despus

    vamos a agregarle un JLabel para mostrar nuestro mensaje.

    Paso 6:Vuelve al cdigo de la clase Main. Como dijimos tenemos que convertir esta clase en un JFrame. Esto

    es sencillo, lo nico que debemos hacer es agregar la lnea extends JFrame en la parte de arriba despus

    de dnde dice public class Main como se ve en la imgen.

    Es importante notar que dejar un rengln entre el nombre de la clase y el extends no es necesario,nicamente es para darle una mejor presentacin al cdigo, pero ustedes pueden seguir cualquier estilo

    que ustedes consideren ms claro. Despus de escribir esta lnea NetBeans la va a subrayar con una

    lnea roja, esto significa que el cdigo tiene un error. Poniendo el mouse sobre el error podemos

    obtener ms informacin sobre l.

    Paso 7:El error que nos marca NetBeans es que no conoce el smbolo. Esto quiere decir que no sabe qu es un

    JFrame, para resolver este tipo de errores debemos agregar la librera de la que hablaba hace unos

    momentos, en estos momentos todava no sabemos dnde est, pero por suerte NetBeans tambin nos

    muestra un foquito a la izquierda en el que, al hacer click, nos brinda una solucin. No siemprepodemos confiar en las soluciones que brinda NetBeans porque despus de todo es una herramienta y

    no una persona que nos est haciendo la recomendacin, pero muchas veces su sugerencia es acertada,

    como en este caso que dice que debe agregar un import (veremos ms sobre este tema ms adelante).

    Selecciona la opcin y debe aparecer una lnea al principio de nuestra clase en la que resuelve el error.

  • 8/4/2019 Guia Java Bsico UTS

    9/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    9

    PROGRAMACION ORIENTADA A OBJETOS

    Paso 8:Como vimos en la parte de arriba el mtodo Main (con mayscula) es el constructor de la clase. Este esel mtodo con el que vamos a crear nuevos objetos de nuestra clase (que es una ventana). Dentro deeste mtodo debemos escribir algunas lneas de cdigo para darle un tamao a la ventana y para que se

    muestre. Copia el cdigo que se muestra en la siguiente imgen:

    En el cdigo estamos utilizando la palabra clave this, que hace referencia a la misma clase que lo llama,es decir, a nuestra ventana. La primera lnea va a cambiar el tamao de nuestra ventana a 200 x 200.

    Escribe this.setS y espera unos momentos. Aparecer una pantalla que te muestra opciones de autocompletar. Esta pantalla es muy til al programar ya que cuando no conocemos un mtodo nos brinda

    informacin sobre qu significan los parmetros y cmo utilizar el mtodo.

    Por ejemplo, en esta imgen nos indica que el mtodo setSize() debe recibir dos nmeros enteros (intquiere decir nmero entero), y nos dice que el mtodo va a cambiar el tamao del componente (en este

    caso nuestra ventana) para que tenga el ancho y alto especificados. Tamben nos indica que podemos

    conseguir ms informacin viendo los mtodos getSize(), setBounds() y setMinimumSize(). Utilizando

    esta herramienta completa el cdigo para mostrar la ventana.La segunda lnea nos permite cambiar el ttulo de nuestra aplicacin. Podemos utilizar cualquier ttulo

    que nos guste, lo nico importante es pasarlo entre comillas porque es texto. La tercera lnea le dice a

    nuestra aplicacin qu debe hacer cuando el programa termine. En este caso nuestro constructor es

    nicamente una ventana, por lo que le indicamos que al cerrar la ventana la aplicacin termine con

    EXIT_ON_CLOSE. La cuarta lnea le indica a la ventana que es visible, por lo tanto se dibuja en

    pantalla.

  • 8/4/2019 Guia Java Bsico UTS

    10/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    10

    PROGRAMACION ORIENTADA A OBJETOS

    Paso 9:Por ltimo debemos crear un nuevo objeto de nuestra ventana, esto es muy sencillo y lo logramosagregando la lnea que se ve en la imgen dentro del mtodo main() (con minscula).

    Esta lnea est creando un nuevo objeto de la clase Main mandando llamar el constructor que acabamos

    de crear. Compila tu programa haciendo click en el botn compilar y luego crrelo haciendo click

    en el botn correr .

    Con esto se muestra una ventana vaca, ya casi hacemos el programa que queramos, pero nos falta unmensaje. Para eso vamos a utilizar otra clase de Swing que se llama JLabel. En la parte superior del

    constructor escribe el cdigo como se ve en la imagen:

    Una vez ms la primera lnea va a ser subrayada en rojo porque nos falta importar una librera. Ahoravamos a utilizar otra tcnica para resolver este mismo error. Haz click derecho sobre el cdigo yselecciona la opcin "Fix Imports". Con esto NetBeans revisar todo el cdigo y automaticametne va a

    agregar todas las librearas que necesitamos.En el cdigo lo que estamos haciendo es crear un nuevo JLabel. Su nombre ser lblHola (por

    convencin todos los JLabel deben empezar su nombre con lbl) y este JLabel va a ser un nuevo JLabel

    que diga "Hola". Despus agregamos el JLabel al contenedor de la ventana.

    Felicidaes, hemos terminado nuestra primera aplicacin en NetBeans utilizando interfaz grfica!

    Una vez que hayas terminado tu programa debes comprimir el directorio de la aplicacin que

    seleccionaste en el paso 2 y mandarlo por correo.

  • 8/4/2019 Guia Java Bsico UTS

    11/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    11

    PROGRAMACION ORIENTADA A OBJETOS

    A ritmo de SwingInstrucciones

    Paso 1:Para empezar la aplicacin vamos a crear un nuevo proyecto al que llamaremos Sesion3. Despus decrearlo nos aparece un proyecto vaco en NetBeans. Ahora vamos a agregar una nueva ventana, para

    hacer esto debemos hacer click derecho sobre el paquete como se ve en la siguiente foto y seleccionarNew -> JFrame Form

    Debemos ponerle el nombre de MainFrame. A pesar de que los nombres no son importantes para Java,

    por convencin se recomienda poner un nombre que exprese para qu funciona este objeto y de qu

    clase es. Recuerda que las clases son como moldes para crear objetos, al crear un nuevo JFrame

    estamos diciendole a Java cmo debe de crear los objetos de tipo MainFrame (es decir, estamoscreando el molde). Es importante seguir las convenciones porque nos van a permitir saber fcilmente

    cmo funciona un programa incluso si no lo hicimos nosotros. Al crear el nuevo JFrame aparece la

    siguiente ventana:

    Paso 3:Ahora vamos a agregar algunos componentes al JFrame. Selecciona un label en la paleta haciendo click

    y luego agrgalo al JFrame haciendo click sobre esta donde quieres que aparezca. De la misma manera

    agrega un text field y un button. Al terminar tu ventana debe verse de la siguiente manera:

  • 8/4/2019 Guia Java Bsico UTS

    12/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    12

    PROGRAMACION ORIENTADA A OBJETOS

    Ahora vamos a cambiar el nombre de nuestros componentes para que sean ms fciles de identificar.De la misma manera que antes, a pesar de que los nombres no son importantes para Java, por

    convencin debemos elegir nombres representativos que nos indicen para qu sirve cada uno de los

    componentes. Adems de eso se utiliza que por convencin las primeras tres letras indiquen el tipo de

    componente de la siguiente manera:

    Componente Prefijo

    JLabel lbl

    JButton btn

    JTextField txt

    JTextArea txtJPanel pnl

    JMenu mnu

    JMenuItem mnuItem

    De esta manera vamos a seleccionar nombres para nuestros controles. Para cambiar los nombres debes

    utilizar la ventana Inspector como se ve en el video. Puedes seleccionar un control y presionar F2 para

    cambiarle el nombre. Utiliza los siguientes nombres para tus controles:

    Componente Nombre

    JLabel lblName

    JTextField txtNameJButton btnEnter

    De esta manera sabemos que el JLabel y el JButton van a servir para que el usuario ponga su nombre.

    Paso 4:Ahora lo que vamos a hacer es cambiar el texto de los componentes para que sea ms claro para elusuario, para modificar las propiedades de los objetos debemos utilizar la ventana de propiedades que

    se encuentra abajo a la derecha como se ve en la siguiente fotografa, para cambiar la propiedad text denuestros controles:

  • 8/4/2019 Guia Java Bsico UTS

    13/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    13

    PROGRAMACION ORIENTADA A OBJETOS

    Para encontrar ms fcilmente las propiedades podemos seleccionar la caja de propiedades y comenzar

    a escribir, si hacemos esto aparece la ventana Quick Search que nos permite escribir algo y lo busca por

    nosotros. Vamos a cambiar el texto de los componentes de la siguiente manera:

    Componente Texto

    lblName Nombre:

    txtName

    btnEnter Entrar

    Nota que borramos el texto de txtName para que aparezca vaco.

    Por ltimo vamos a agregar eventos. Un evento es la manera en que nuestro cdigo responde a lo quehace el usuario. Agregar eventos utilizando Matisse es muy sencillo, lo nico que debemos hacer es dar

    click derecho sobre un control de nuestro JFrame y seleccionar el submen events. Ah aparecen todos

    los eventos a los que puede responder el control que estamos seleccionando.

    Vamos a hacer que cuando el usuario haga click en el botn btnEnter se muestre un dilogo con su

    nombre. Para hacer esto debemos dar click derecho sobre el botn, seleccionar el submen events yseleccionar el evento Action -> actionPerformed. Al hacer esto aparece una ventana con cdigo en la

    que podemos agregar lo que debe realizar nuestro proyecto al hacer click en el botn.

    Dentro de esta pantalla vamos a escribir la siguiente lnea:

    JOptionPane.showMessageDialog(this, "Hola " + txtName.getText());Recuerda agregar los imports como vimos en la primera sesin para evitar que esta lnea te marque

    errores. Puedes hacerlo de dos maneras, haciendo click sobre la lamparita que aparece a la izquierda opresionando [Alt + Shift + F]. JOptionPane es una clase especial que nos permite mostrar dilogos, porel momento slo utilizala aunque no entiendas cmo funciona. Como puedes ver al final estamos

    utilizando algo llamado concatenacin de texto, veamos cmo funciona:

    "Hola " + "Juan" = "Hola juan"

    "C" + "mo" + " " + "han" + " " + "estado?" = "Cmo han estado?"

    Como puedes observar, al utilizar el smbolo ms estamos uniendo las cadenas de texto y creando una

    nueva cadena que contiene todas las cadenas unidas. Esto es extremadamente til para interactuar con

    el usuario. La otra parte interesante en ese mtodo es que estamos utilizando el mtodo getText() de

    nuestro JTextField (llamado txtName). Recuerdas que modificamos la propiedad text para que elJTextField no mostrara nada? Con este mtodo estamos obteniendo el texto que se encuentra en este

    momento en la caja de texto, que es lo que ha escrito el usuario. Para cada propiedad hay un mtodollamado getNombre() donde Nombre es el nombre de la propiedad de la que quermeos conocer el

    valor.

    Paso 5:Ya casi terminamos de crear nuestra ventana, pero si corres el proyecto en este momento vas a ver quela ventana no aparece. Esto se debe a que todava no hacemos que nuestro JFrame se vuelva visible.

    Esto lo logramos poniendo la siguiente lnea en el constructor, el mtodo que se llama MainFrame():

  • 8/4/2019 Guia Java Bsico UTS

    14/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    14

    PROGRAMACION ORIENTADA A OBJETOS

    Por ltimo debes regresar a la clase Main utilizando el explorador de proyectos y agregar la siguientelnea en el mtodo main(), recuerda que el mtodo main() es el punto de inicio de la aplicacin, es

    decir, la primera parte del cdigo que se ejecuta.

    Recuerdas esta sintaxis? Lo nico que estamos diciendo es que queremos construir un nuevo (new)

    objeto de la clase MainFrame (nuestra ventana). Si te fijas estamos llamando el mtodo de la misma

    manera que se vea en la parte de arriba en el constructor. Corre la aplicacin y comprueba que

    funciona de manera adecuada.

  • 8/4/2019 Guia Java Bsico UTS

    15/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    15

    PROGRAMACION ORIENTADA A OBJETOS

    Prctica 2. Programacin con Variables

    TeoraVariables, Operadores y Constantes

    Componentes de un programa Identificadores:

    Para poder identificar las variables, constantes y mtodos de un programa utilizamos

    identificadores.

    Los identificadores son combinaciones de letras, nmeros y algunos signos especiales.

    Ejemplos: pi, matricula, vocales, x, i

    Variables: Son identificadores cuyos valores pueden cambiar durante la ejecucin del programa. Nos sirven

    para guardar valores que queremos utilizar ms tarde (muchas veces la informacin que nos da

    el usuario).

    Ejemplos:

    int x = 0;

    Constantes: Son identificadores que tienen un valor constante durante toda la ejecucin del programa, es

    decir, que no cambian.

    Utilizan la palabra reservada final que le indica al compilador que el valor no puede cambiar. Si

    se intenta cambiar el valor, ocurre un error.

    Ejemplos: final double PI = 3.14159; Instruccin:

    Una instruccin es una unidad ejecutable de cdigo, regularmente controlan el flujo de ejecucin

    (qu sucede primero).

    Ejemplos: if ... else; while ...

    Declaracin de Variables: Declarar una variable es como avisarle a la computadora que vamos a guardar un valor. La

    estructura para declarar una variable es la siguiente:

    tipo nombre_de_variable [= valor];

    Tipos de variables: Numricos: int, double

    Texto: char, String

    Ejemplos: int i = 0;

    double distancia;

    String nick = "Magus"

    Operadores: Son smbolos que indican cmo son manipulados los datos. Pueden ser de varios tipos, los ms

    comunes son:

    Aritmticos (+, -, *, /, etc.)

    Lgicos (&, |, !)

    Relacionales (, ==)

  • 8/4/2019 Guia Java Bsico UTS

    16/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    16

    PROGRAMACION ORIENTADA A OBJETOS

    De asignacin (=)

    Ejemplos:

    a = a + b;

    if (lloviendo || quiereLlover)

    llevarParaguas = true;

    if (b > 0)

    b = sqrt(b);

    Operadores aritmticos

    Operador Funcin

    + Suma: Permite sumar nmeros enteros o reales.

    - Resta: Permite restar nmeros enteros o reales.

    * Multiplicacin: Permite multiplicar nmeros enteros o reales.

    / Divisin: Si los dos operadores son nmeros enteros entonces el resultadosiempre es un nmero entero (5 / 3 = 1)Si cualquiera de los operadores es un nmero real entonces el resultado es unnmero real (5.0 / 3 = 1.666)

    % Mdulo: Nos devuelve el residuo de la divisin. (4 % 3 = 1, 5 % 3 = 2, 6 % 3 = 0)

    Operadores lgicos

    Operador Funcin

    && AND LgicoDevuelve el valor lgico verdadero siambos operandos son verdaderoEjemplo:if (esBI && tieneProyecto) trabajaTodaLaNoche();

    || OR LgicoDevuelve el valor lgico verdadero sicualquier operando es verdaderoEjemplo:if (tengoDinero || puedoPedirPrestado) comprar();

    ! NOT LgicoNiega el valor del operando, es decir, si el operando es falso se vuelve verdaderoy si es verdadero se vuelve falso.Ejemplo:esCulpable = !esInocente;

  • 8/4/2019 Guia Java Bsico UTS

    17/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    17

    PROGRAMACION ORIENTADA A OBJETOS

    Operadores Relacionales

    Operador Funcin

    == IgualVerdadero si los dos operandos son iguales

    < Menor queVerdadero si el operando de la izquierda es menor que el de la derecha.

    > Mayor queVerdadero si el operando de la izquierda es mayor que el de la derecha

    = Mayor o igual que

    != DiferenteVerdadero si los dos operandos son diferentes

    Operadores de asignacin

    Operador Funcin

    = Asignacin SimpleAsigna el valor a la derecha a la variable a la izquierda

    += Asignacin con suma

    Suma el valor de la variable de la izquierda con el valor de la derecha y asigna elresultado a la variable de la izquierda.

    -= Asignacin con restaResta el valor de la variable de la izquierda menos el valor de la derecha y asignael resultado a la variable de la izquierda.

    *= Asignacin con multiplicacinMultiplica el valor de la variable de la izquierda por el valor de la derecha yasigna el resultado a la variable de la izquierda.

    /= Asignacin con divisin

    Divide el valor de la variable de la izquierda entre el valor de la derecha y asignael resultado a la variable de la izquierda.

  • 8/4/2019 Guia Java Bsico UTS

    18/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    18

    PROGRAMACION ORIENTADA A OBJETOS

    Otros

    Operador Funcin

    ++ IncrementoIncrementa el valor de la variable en uno. Si el operador se pone a la izquierda dela variable primero incrementa el valor y despus realiza las dems instrucciones,si se pone a la derecha primero realiza las instrucciones y luego aumenta el valor.Ejemplo:int a = 0;int b = ++a; // a == 1, b == 1int a = 0;int b = a++; // a == 1, b == 0

    -- DecrementoDecrementa el valor de la variable en uno. La asignacin de valores funciona dela misma manera que el incremento.

    Prioridades de operadores

    Tipos de datos

    Nombre Representa Rango Tamao

    byte Nmero entero -128 a 127 8 bits

    short Nmero entero -32768 a 32767 16 bits

    int Nmero entero -2,147,483,648 a 2,147,483,647 32 bits

    long Nmero entero -9,223,372,036,854,775,808 a9,223,372,036,854,775,807

    64 bits

    float Nmero real 3.410-38 a 3.41038 32 bits

    double Nmero real 1.710-308 a 1.710308 64 bits

    boolean Booleano Verdadero o falso 1 bit

    char Letra \u0000 a \uFFFF

    (cualquier carcter de Unicode)

    16 bits

  • 8/4/2019 Guia Java Bsico UTS

    19/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    19

    PROGRAMACION ORIENTADA A OBJETOS

    Clase String Adems de los tipos primitivos de datos Java contiene una clase que es extremadamente poderosa: la

    clase String.

    String nos permite manejar cadenas de caracteres, es decir texto, de manera natural. Un String se maneja

    de forma muy parecida a un tipo de dato primitivo pero siempre empieza con mayscula porque es clase.

    Ejemplo: String nombre = "Magus";

    Utilizando la consola Para leer de la consola podemos utilizar varias clases, una de las clases ms poderosas que nos provee el

    lenguaje Java es la clase Scanner.

    Para declarar un objeto de esta clase (al que llamaremos scn) utilizamos el siguiente cdigo:

    Scanner scn = new Scanner(System.in);

    Despus podemos utilizar varios mtodos de la clase Scanner como son:

    nextInt()

    nextBoolean()

    nextDouble()

    nextChar()

    Vamos a hacer un ejemplo completo de lectura

    Scanner scn = new Scanner(System.in);

    int num = scn.nextInt();

    Mostrar texto en la consola es muy sencillo y Java ya tiene mtodos para esto. La manera ms rpida es

    utilizando

    System.out.println("Texto a imprimir");

    Vamos a mejorar el ejemplo anterior:

    Scanner scn = new Scanner(System.in);

    System.out.println("Pon un numero: ");

    int num = scn.nextInt();

    Si corremos un programa de Java que utilizara la clase Scanner para obtener texto de la consola

    podramos ver una pantalla negra similar a la que aparece al encender la computadora.

    NetBeans emula la consola en el mismo IDE y podemos encontrarlo en la parte inferior.

    Para escribir podemos utilizar el campo de texto que dice Input.

  • 8/4/2019 Guia Java Bsico UTS

    20/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    20

    PROGRAMACION ORIENTADA A OBJETOS

    Actividad Individual

    Define un algoritmo para sumar dos nmeros

    Crea el programa que implemente tu algoritmo

    Una posible solucin

    Actividad Individual

    Define un algoritmo para calcular el rea de un crculo Crea el programa que implemente tu algoritmo

    Una posible solucin

  • 8/4/2019 Guia Java Bsico UTS

    21/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    21

    PROGRAMACION ORIENTADA A OBJETOS

    Actividad Individual Crea el programa que implemente tu algoritmo

    Define un algoritmo para convertir de grados Fahrenheit a Celsius.

    Un primer intento de solucin

    Una posible solucin

  • 8/4/2019 Guia Java Bsico UTS

    22/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    22

    PROGRAMACION ORIENTADA A OBJETOS

    Qu es una variable? Es un espacio en memoria que nos permite guardar informacin.

    El tamao de este espacio en memoria vara dependiendo de la informacin que que quieras guardar ah.

    No es lo mismo guardar un nmero pequeo que pueda variar entre el 1 y el 10 que guardar el total deventas de una compaa internacional.

    Variable Qu Almacena

    edad Un nmero entero

    sueldoSemanal Un nmero con decimales

    numeroArticulo Un nmero entero

    totalVentas Un nmero con decimales

    nombreAlumno Una cadena de caracteresesAzul Un valor booleano (verdadero o falso)

    Utilizando variables

    Para poder asignar un valor a una variable es necesario que la variable est declarada.

    La declaracin se hace con la instruccin:

    tipo nombre [= valor];

    Para asignar un valor a una variable utilizamos la instruccin:

    nombre = valor;

    Despus podemos utilizar la variable con su nombre.

    Qu hace el cdigo siguiente?

    Declara una variable llamada numeroSuerte que tiene el valor de 7.

    Declara tres variables, nombre, edad y precio.

    Asigna valores a estas variables.

  • 8/4/2019 Guia Java Bsico UTS

    23/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    23

    PROGRAMACION ORIENTADA A OBJETOS

    Operadores aritmticos

    Las variables nos sirven para guardar valores que vamos a modificar ms adelante utilizando operadores

    aritmticos o mtodos.

    y = x + 5;

    x++;

    y += 5;

    Recuerdas cmo funcionan los operadores de asignacin?

    y += 5 podra escribirse como y = y + 5;

    Recuerdas qu haca el operador incremento?

    x++; podra escribirse como x += 1; x = x + 1;

    Actividad Individual

    Cules son los valores de las variables al terminarse de ejecutar el siguiente cdigo:

    Operador incremento / decremento

    Los operadores ++ y son llamados incremento y decremento respectivamente.

    Estos operadores nos permiten sumar 1 o restar 1 a una variable. Es uno de los pocos casos en que la

    posicin afecta el resultado, veamos un ejemplo:

  • 8/4/2019 Guia Java Bsico UTS

    24/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    24

    PROGRAMACION ORIENTADA A OBJETOS

    Prioridades de operadores

    Las operaciones con mayor prioridad se ejecutan primero, por ejemplo:

    5 * (12 - 5 * 2) + 7 / 4

    5 * (12 - 10) + 7 / 4

    5 * 2 + 7 / 4

    10 + 7 / 4

    10 + 1 (recuerda divisin entera!)

    11

    Actividad Individual

    Cules seran los resultados de las siguientes operaciones: 10 / 3 + 17 / 3 - 10 2 + 3 * (4 + 5) 19 / 2 * 5 10.0 / 3.0 + 10 / 3 + 10.0 / 3 3 + 5 % 4 / 2

    (4 * 5 / 3 + 2.0) + (5 - 8.0) / 2

    Casting Cuando dos variables son del mismo tipo de dato (int, double) el resultado va a ser del mismo tipo de

    dato, por ejemplo, si a y b son de tipo int y valen 3 y 7 respectivamente:

    a + b + 10 = 20

    Pero cuando los tipos de datos son diferentes se dice que ocurre un casting.

    Casting es el proceso de convertir de un tipo de dato a otro.

    Existen dos tipos de casting: casting implcito y casting explcito.

    Casting implcito

  • 8/4/2019 Guia Java Bsico UTS

    25/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    25

    PROGRAMACION ORIENTADA A OBJETOS

    Tambin llamado promocin numrica, sucede cuando un tipo de dato con menor jerarqua es

    promovido a un tipo de dato con mayor jerarqua.

    La jerarqua de operadores es la siguiente:

    byte->short->int->long->float->double

    En el siguiente cdigo y tiene mayor jerarqua y por lo tanto x va a tener un cast implcito de int

    a double.

    Fjate que el tipo de dato de x no cambia.

    Casting implcito

    Otro momento en el que ocurre un casting implcito es al momento de la asignacin

    double y = 2 * (12 / 7);

    Podramos pensar que el resultado es 3.42, pero no estaramos en lo correcto porque el casting

    ocurre hasta el momento de la asignacin

    El resultado que nos va a dar es 2.0

    Casting Explcito

    Algunas veces queremos forzar a una variable a tomar un tipo de dato con mayor jerarqua, por ejemplo:

    En ese cdigo podemos ver que la variable y va a tomar el valor de 1, pero probablemente

    queremos que nos de el valor con decimales.

    Para estas situaciones existe el operador de Casting Explcito. Este operador es el nombre de un tipo de

    dato entre parntesis, por ejemplo:

    y = (double) x;

    El siguiente cdigo es casi igual que el anterior, pero tiene un cambio significativo. El cast va a convertir

    a x en un double antes de realizar la operacin, y por lo tanto y va a tomar el valor que deseamos:

    InstruccionesPaso 1:Descarga el esqueleto de la aplicacin que vamos a utilizar en esta sesin. El archivo est en formatozip, por lo que necesitas descomprimirlo en algn directorio (por ejemplo D:\projects). Abre NetBeans

    y selecciona la opcin abrir proyecto , aparecer un dilogo en el que puedes seleccionar variosarchivos, busca la carpeta en la que descomprimiste los archivos (puedes saber si realmente es una

    carpeta de proyecto porque tendr el siguiente smbolo: ). Selecciona la carpeta y presiona el botn

    abrir. Al terminarse de cargar el proyecto abre el archivo Main.java, debe aparecer una ventana con el

  • 8/4/2019 Guia Java Bsico UTS

    26/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    26

    PROGRAMACION ORIENTADA A OBJETOS

    cdigo del programa. Presiona el botn de compilar (o F11). En la ventana de compilacin debenaparecerte varios mensajes de compilacin y debe terminar en BUILD SUCCESSFUL. Esto quiere

    decir que nuestra aplicacin compil de manera adecuada y estamos listos para correrla. Presiona el

    botn correr (o presiona F6). Debe aparecer una ventana como la siguiente.

    Pon algunos nmeros y prueba la funcionalidad del programa. Como podrs haber notado todos losresultados muestran un cero, porque todava no estn implementadas las funciones que van a mostrar el

    resultado correcto. Por el momento cierra la aplicacin.Paso 2:Ahora vamos a agregar la funcionalidad del programa. Para saber dnde es preciso editar el cdigovamos a utilizar la ventana de To Do. Esta ventana es muy importante porque nos permite saber qucosas faltan por hacer y nos permite encontrarlas de manera sencilla. Primero selecciona el men

    Window y ah busca To Do , o presiona . En la parte inferior debe aparecer la

    ventana de To Do, seleccionala y aparecer algo como lo siguiente:

    Aqu podemos ver lo que falta por hacer en el proyecto. Selecciona la primera lnea del To Do (la que

    dice Cambiar el cdigo para que sume...) y haz doble click para ir a la seccin de cdigo que es preciso

    editar. Cambia el cdigo de la siguiente manera (es necesario modificar la lnea 103):

    Adems de los operadores aritmticos que ya conoces en este laboratorio utilizamos el operador lgico

    AND. Como pudiste ver en la presentacin el operador lgico AND tiene la propiedad de que devuelve

  • 8/4/2019 Guia Java Bsico UTS

    27/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    27

    PROGRAMACION ORIENTADA A OBJETOS

    verdadero si y slo si ambos operandos son verdaderos, por esto se dice que tiene la siguiente tabla de

    verdad:

    AND Verdadero Falso

    Verdadero Verdadero FalsoFalso Falso Falso

    Los operadores lgicos que hemos visto hasta ahora (&&, ||, !) slo se pueden utilizar con valores

    booleanos, pero al utilizarlos con valores numricos tienen propiedades que son muy tiles en algunos

    casos (cuando necesitamos optimizar el cdigo). Veamos cmo funciona el operador lgico AND

    cuando lo aplicamos a un nmero entero:

    Valor Decimal Valor Binario

    12 1100

    10 1010

    12 & 10 1000

    Como puedes ver, los operadores lgicos operan a nivel de bits en los valores enteros. Para evitar que

    los operadores lgicos que se utilizan con valores enteros se confundan con los que se utilizan con

    valores booleanos en Java existen simbolos diferentes para representarlos como se ve en la siguiente

    tabla:

    Nombre Enteros Booleanos

    AND & &&

    OR | ||

    NOT ~ !

    Como en la calculadora vamos a utilizar valores enteros debes de utilizar el AND para valores enteros,sin embargo la mayora de las veces vamos a utilizar el AND para valores booleanos porque la fuerza

    de las operaciones lgicas estn en que nos permiten hacer comparaciones y saber si un conjunto depredicados son verdaderos o falsos (si est lloviendo && llevo una sombrilla -> no me mojo, si tengohambre || es hora de comer -> voy a comer).

    Por analoga al ejercicio de la suma y utilizando los conocimientos que tienes sobre operadores termina

    de construir los mtodos que se te solicitan.

    Comprime tu carpeta de trabajo y mndala por correo.

  • 8/4/2019 Guia Java Bsico UTS

    28/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    28

    PROGRAMACION ORIENTADA A OBJETOS

    Prctica 3. If y SwitchTeora

    Sentencia if-else

    Toma una decisin referente a la accin a ejecutar en un programa dependiendo del resultado (verdadero

    o falso) de una condicin.

    La sentencia if nos permite hacer que slo se ejecute una seccin de cdigo.

    Su estructura es

    La condicin es una expresin de comparacin que puede evaluarse como verdadera o como falsa.

    La condicin siempre debe ir entre parntesis.

    Cuando se ejecuta la sentencia if, primero se evala la condicin y si es verdadera se ejecuta el cdigo

    que se encuentra dentro del if.

    Veamos un ejemplo de la sentencia if:

    En este caso, si el valor de la variable x es mayor que cero, x se va a incrementar en cinco unidades.

    Sentencia if-else

    Otra estructura de control muy utilizada es el if-else. Al ejecutar una estructura if-else primero se evala

    la condicin, si es verdadera se ejecuta el cdigo if, si no se ejecuta el cdigo else.

    Veamos un ejemplo de la sentencia if-else

    En este caso si el valor de la variable x es mayor que cero se va a incrementar su valor en cinco

    unidades, igual que la vez anterior. Pero si su valor no es mayor que cero entonces se va a reducir en

    cinco unidades.

  • 8/4/2019 Guia Java Bsico UTS

    29/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    29

    PROGRAMACION ORIENTADA A OBJETOS

    Sentencia if anidada

    Existen ocasiones en que tenemos ms de una condicin. Cuando esto sucede podemos utilizar unaestructura de if anidados.

    Al ejecutarse un if anidado primero se revisa la primera condicin, luego la segunda, luego la tercera y

    as hasta llegar al final. En caso de que no se cumpla ninguna condicin se ejecuta el cdigo else.

    Actividad en equipo Crea un programa para comprar dos nmeros e imprimir cul es mayor o si son iguales.

    Una posible solucin

    Sentencia switch La sentencia switch nos permite alterar el curso de un programa mediante el valor de una variable y es

    muy similar a un if anidado, pero tiene algunas peculiaridades que nos facilitan tareas como crear un

    men o crear un diccionario. El switch tiene la ventaja de que puede representar algunas condiciones muy complicadas.

    La sentencia inicia con switch y entre parntesis el nombre de la variable que se debe comparar.

    Por cada caso debemos escribir case y el valor que debemos comparar.

    Por ltimo debemos escribir el cdigo que debe ejecutarse y terminar con un break.

  • 8/4/2019 Guia Java Bsico UTS

    30/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    30

    PROGRAMACION ORIENTADA A OBJETOS

    El cdigo que se va a ejecutar en el switch se ejecutar hasta que se encuentre la palabra break, por lo

    que podemos hacer que ms de un caso ejecute el mismo cdigo, que es la principal diferencia con el if.

    El default es equivalente al else.

    Para los programas que van a realizar varias acciones diferentes dependiendo del valor de una sola

    variable entonces es muy recomendable utilizar el switch

    Se considera que un switch es ms fcil de leer y mantener que un if, por lo que se recomienda su uso

    pero muchas veces es una fuente de errores en el flujo, en especial cuando no se utilizan los break.

  • 8/4/2019 Guia Java Bsico UTS

    31/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    31

    PROGRAMACION ORIENTADA A OBJETOS

    Programacin con IfInstrucciones

    Paso 1:Descarga el esqueleto de la aplicacin que vamos a utilizar en esta sesin. El archivo est en formatozip, por lo que necesitas descomprimirlo en algn directorio (por ejemplo D:\projects). Abre NetBeans

    y selecciona la opcin abrir proyecto , aparecer un dilogo en el que puedes seleccionar variosarchivos, busca la carpeta en la que descomprimiste los archivos (puedes saber si realmente es una

    carpeta de proyecto porque tendr el siguiente smbolo: ). Selecciona la carpeta y presiona el botn

    abrir. Abre la clase y aparecer una ventana con la siguiente interfaz grfica:

    Paso 2:Corre el programa y verifica la funcionalidad que tiene actualmente.

    Qu sucede cuando presiono un botn? Qu sucede cuando pongo nmeros enteros en edad? Qu sucede cuando no pongo nmeros en edad? Qu sucede cuando pongo nmeros reales en edad?

    Para poder entender este comportamiento es necesario analizar el siguietne cdigo:

    Recuerda que para poder convertir de un tipo de dato a otro necesitamos hacer un cast. Como el

    mtodo getText() del JTextField siempre devuelve un String y lo que nosotros necesitamos es un

    nmero vamos a hacer un cast a int utilizando el mtodo Integer.parseInt(). Es muy importante que la

    declaracin de la variable age se encuentra fuera del try, ya que de esta manera nos aseguramos que el

    resto del cdigo pueda utilizarla. Tambin estamos viendo una sintaxis nueva para el manejo de

  • 8/4/2019 Guia Java Bsico UTS

    32/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    32

    PROGRAMACION ORIENTADA A OBJETOS

    errores, por el momento slo debemos saber que en caso de que ocurra un error de formato (es decir,

    que el nmero no se pueda convertir a int) se va a ejecutar el cdigo que se encuentra dentro del bloque

    catch. Ms adelante veremos el manejo de errores con ms detenimiento.

    Paso 3:Selecciona source en la parte superior del IDE, abajo de las pestaas con los nombres de las clases para

    ver el cdigo de tu ventana. Dentro de los mtodos que vamos a utilizar en este laboratorio hay un

    mensaje que dice que el mtodo no ha sido implementado, una vez que implementes los mtodos

    puedes quitar este mensaje.

    Vamos a hacer una pausa para entender una clase que nos va a servir mucho durante este laboratorio.

    La clase JOptionPane tiene un mtodo showMessageDialog() que nos permite mostrar un mensaje. Elmtodo recibe dos parmetros en su forma ms sencilla, el primer parmetro es el componente padre,por el momento siempre vamos a utilizar this (que hace una referencia a la ventana actual) y el segundo

    parmetro es un String con el texto que queremos mostrar.Ahora abre la ventana de ToDo (Window -> ToDo o presionando Ctrl + 6) donde podrs ver lo que

    hace falta codificar. Primero vamos a resolver el cdigo que va a comentar sobre nuestra edad. Para

    hacer esto haz doble click sobre el ToDo correspondiente. Ahora agrega el siguiente cdigo y vuelve a

    probar el programa.

    Qu sucede cuando introducimos 13 como edad? Qu sucede cuando introducimos 15 como edad? Qu sucede cuando introducimos 20 como edad?

    Ahora vamos a ver una propiedad del if que nos va a servir mucho cuando queramos controlar un

    programa. Escribe el siguiente cdigo:

    Qu sucede cuando introducimos 25 como edad? Qu sucede cuando introducimos 14 como edad?

    Como este comportamiento no es lo que esperabamos vamos a probar un par de casos ms, primero

    vamos a realizar la validacin completa. Escribe el cdigo que se ve a continuacin:

    Al correr el programa podemos ver que ya tiene el comportamiento que esperamos, pero hay una

    manera un poco ms elegante de codificarlo. Recuerda en la presentacin que vimos que puedes utilizar

  • 8/4/2019 Guia Java Bsico UTS

    33/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    33

    PROGRAMACION ORIENTADA A OBJETOS

    el else if para poner condiciones extras a un if y convertirlo en un if anidado. Ahora copia el siguiente

    cdigo:

    Qu sucede cuando introducimos 25 como edad? Qu sucede cuando introducimos 14 como edad?

    Lo que est sucediendo es que un if anidado nicamente revisa las condiciones hasta encontrar una quesea verdadera y despus de eso no revisa todas las dems. En algunos programas (como este) ese es elcomportamiento esperado, aunque en algunos otros es mejor utilizar varios if's. Regularmente se utiliza

    esta ltima manera de escribirlo porque es un poco ms fcil de entender que poner las dobles

    condiciones, pero pueden utilizar la que prefieran. Ahora terminemos de codificar utilizando esta

    ltima sintaxis (si prefieres puedes utilizar varios if's).

    Paso 4:Ahora vamos a hacer el cdigo que calcule el rea de un crculo. En este caso la validacin ser muy

    sencilla ya que slo debemos validar que el radio sea mayor que cero (ya que no existen distanciasnegativas). En caso de que el radio no sea mayor que cero vamos a mostrar un mensaje de error. Para

    hacer esto copia el siguiente cdigo:

    Fjate en el mtodo showMessageDialog() de la clase JOptionPane. Como puedes ver el primerparmetro es un this, pero despus viene el siguiente String:"El area del circulo es " + area

    Lo que estamos haciendo aqui es concatenar un nmero a un String. Como el mtodo

    showMessageDialog() debe recibir un String como segundo parmetro es necesario que a los nmeros

    les concatenemos texto utilizando el operador +.

    Agrega un else para mostrar un mensaje de error en caso de que el radio sea menor o igual a cero yprueba que tu cdigo funcione de manera correcta.

  • 8/4/2019 Guia Java Bsico UTS

    34/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    34

    PROGRAMACION ORIENTADA A OBJETOS

    Paso 5:Ahora vamos a resolver la ecuacin utilizando la frmula general. Recuerda que la frmula general es:

    Aqui debemos realizar dos validaciones. El valor de a debe ser diferente de cero para evitar que la

    divisin indetermine el resultado y la raz debe ser de un nmero mayor o igual a cero. Para hacer esto

    vamos a utilizar un and && y adems vamos a utilizar una variable para ayudarnos a escribir menos y a

    hacer ms claro el cdigo. Escribe el siguiente cdigo:

    Como puedes ver estamos utilizando la variable root donde guardamos el valor de lo que se encuentra

    dentro de la raz. Esto lo hacemos para que al comparar y al sacar la raz no tengamos que volver a

    escribir la frmula y sea ms fcil de entender, adems de que ya tener el valor guardado y no tener que

    calcularlo hace que sea un poco ms rpido. En caso de que la raz sea igual o mayor que cero y que a

    no sea cero vamos a obtener las raices positivas y negativas y mostrar el resultado.

    Agrega un else para mostrar un mensaje de error en caso de que los datos no sean vlidos. Dentro del

    else agrega un if para decirle al usuario cul de los datos no fue vlido o si los dos no lo fueron yprueba que tu cdigo funcione de manera correcta.

    Paso 6:Por ltimo vamos a utilizar un control nuevo llamado JCheckBox que podemos utilizar para hacer que

    nuestros programas sean ms amigables. El JCheckBox tiene un mtodo importantsimo que nos

    devuelve si est seleccionado o no. Este mtodo nos va a permitir responder de maneras diferentes

    utilizando un if. El mtodo se llama isSelected() y nos devuelve verdadero en caso de que s est

    seleccionado y falso en caso contrario.Recuerda que la condicin de un if debe ser cualquier cosa que evale a verdadero o falso y no es

    necesario que sea una comparacin. Esto hace que podamos utilizar una variable boolean o el

    resultado de este mtodo dentro de la condicin directamente de la siguiente manera:

    Prueba que tu cdigo funcione de manera correcta.

    Paso 7:Comprime tu carpeta de trabajo y el archivo de texto con las respuestas a las preguntas en negritas y

    mndalos por correo.

  • 8/4/2019 Guia Java Bsico UTS

    35/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    35

    PROGRAMACION ORIENTADA A OBJETOS

    Programacin con switchInstrucciones

    Paso 1:Descarga el esqueleto de la aplicacin, abre el proyecto en NetBeans, complalo y crrelo. Apareceruna interfaz parecida a la siguiente:

    Paso 2:Antes de continuar con el ejercicio veamos un poco ms acerca del manejo estructurado de errores. La

    sintaxis del try-catch es la siguiente:

    En la parte del try debemos poner el cdigo que podra tener errores (por ejempo, hacer el cast de un

    String a un int). El cdigo se va a ejecutar hasta el final o hasta que ocurra un error. Si ocurre un error

    entonces se ejecuta el catch. Sin importar si ocurrieron errores o no siempre se ejecuta el finally (que

    nos sirve para poder realizar limpieza al final). Podemos ver el comportamiento de manera grfica en elsiguiente diagrama:

    Podemos hacer un ejemplo en el que hagamos un cast de String a int, en caso de que no se pueda

    convertir se muestra un mensaje de error.

  • 8/4/2019 Guia Java Bsico UTS

    36/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    36

    PROGRAMACION ORIENTADA A OBJETOS

    Como podemos ver en la parte del catch debemos poner el tipo de excepcin que ocurri. La excepcin

    ms general es Exception, adems de esta hay muchas excepciones que podemos manejar para darle

    retroalimentacin al usuario de manera ms clara. Por ejemplo:

    IOException: Ocurre cuando hay un error al leer o escribir un archivo o al leer del teclado.

    NumberFormatException: Ocurre cuando hay un error al hacer un cast. ArithmeticException: Ocurre cuando hay un error al realizar una operacin (por ejemplo

    divisin entre cero).

    Podemos utilizar ms de una clsula catch para manejar excepciones de manera ms precisa o paramanejar varios errores diferentes que podran pasar dentro de un mismo cdigo, por ejemplo, si

    despus de hacer un cast a dos nmeros se intenta hacer una divisin podran ocurrir errores de cast o

    errores aritmticos de divisin entre cero. Podemos proteger nuestro programa con el siguiente cdigo:

    Pero si existen tantas excepciones cmo saber qu excepciones manejar? Por suerte NetBeans tambin

    nos ayuda en eso al mostrarnos la ayuda en linea de los mtodos. Por ejemplo, al escribir el mtodo

    parseInt() aparece la siguiente ayuda:

    Podemos ver que en la parte de hasta abajo aparece que va a aventar NumberFormatException en caso

    de que el String no contenga un integer, con lo que no slo sabemos qu excepciones podran ocurrir

    sino que tambin sabemos cundo es posible que ocurran y bajo qu condiciones.

    Paso 3:Ahora s vuelve a la aplicacin. Abre el cdigo presionando source y en la ventana ToDo busca la parte

    de pedir la temperatura. Nos dice que la temperatura debe ser un double, por lo que sabemos que vamos

    a utilizar el cast Double.parseDouble() pero como no estamos seguros que lo que est dentro de la caja

    de texto sea un nmero real (podran ser letras) debemos de manejar la excepcin mediante un try-

    catch. Puedes basarte en el siguiente cdigo:

  • 8/4/2019 Guia Java Bsico UTS

    37/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    37

    PROGRAMACION ORIENTADA A OBJETOS

    El return al final del catch hace que en caso de que ocurra el error el mtodo termine, es decir, que el

    cdigo no se siga ejecutando. Ms adelante veremos un poco ms acerca de los mtodos y la

    programacin modular, pero por el momento nos sirve para que todo el cdigo que pongamos abajo no

    se ejecute si no tenemos datos vlidos.

    Paso 4:Para el ejercicio de vocales y consonantes vamos a necesitar saber qu letra seleccion el usuario. El

    tipo de dato que nos permite representar una letra es el char. Recuerda que el mtodo getText() siempre

    nos devuelve un String, por desgracia el String no es de tipo char, as que no podemos realizar la

    comparacion directamente sino que tenemos que obtener el primer caracter del String (aqui nopodemos hacer un cast porque String es un conjunto de caracteres y no puede representarse como un

    solo caracter).

    Para poder hacer esto debemos aprender un poco ms acerca de la clase String. Esta clase tiene varios

    mtodos muy tiles que nos permiten obtener informacin y manipular lo que hemos escrito o lo queha escrito el usuario. Un mtodo que podemos utilizar para obtener el primer caracter dentro de un

    String es el mtodo charAt(), que se utiliza de la siguiente manera:

    Es muy importante fijarnos que el mtodo charAt() recibe el indice de la letra que quiere, empezando

    de cero. En el ejemplo anterior devolvera la 'H' (que es la primera letra). Tamben es importantefijarnos que al comparar debemos utilizar la letra entre comillas sencillas y el color cambiar a verde

    para saber que realmente es un char y no un String.

    Qu excepciones podran mostrarse cuando mandamos llamar el mtodo charAt()?Otro mtodo importante de la clase String es el mtodo length() que nos permite saber cuntos

    caracteres tiene un String. Puedes utilizar este mtodo de la siguiente manera:

    Paso 5:Utilizando tus conocimientos sobre excepciones, control de flujos con if y switch y operadores realiza

    los ejercicios de esta sesin que se encuentran marcados con TODO en el cdigo.Los ejercicios son:

    Mostrar si una letra introducida por el usuario es vocal o consonante

    Mostrar un mensaje que basndose en la terminacin de una placa diga qu da no circula

    Mostrar si dados dos nmeros a y b por el usuario, a es divisible entre b

    Mostrar un mensaje de recomendacin de acuerdo a una temperatura dada por el usuario

    Comprime tu carpeta de trabajo y mndala por correo.

  • 8/4/2019 Guia Java Bsico UTS

    38/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    38

    PROGRAMACION ORIENTADA A OBJETOS

    Prctica 4. CiclosTeora

    While El while es una sentencia que ejecuta un bloque de instrucciones cero o ms veces dependiendo de una

    condicin.

    Su sintaxis es:

    while(condicion) {

    // codigo

    }

    Donde condicion es una expresin que puede evaluarse a verdadero o falso (de la misma manera que

    funciona un if).

    Fjate que despus del parntesis del while no va un punto y coma.

    El while va a repetir el cdigo que se encuentre entre llaves mientras la condicin siga siendo verdadera.

    Las instrucciones se ejecutan de manera secuencial siempre de arriba hacia abajo siempre y cuando la

    condicin sea verdadera (o distinta de cero).

    Si la condicin se evala como falsa al llegar al while por primera ves las instrucciones no se ejecutan.

    Ejemplo Revisa el siguiente cdigo

    Qu imprimira, entiendes cmo funciona?

    El cdigo va a imprimir

    Otro ejemplo El siguiente cdigo es muy similar al anterior puedes ver en qu son diferentes?

    Qu suceder cuando se ejecute el cdigo anterior?

    El programa se cicla, es decir, nunca puede salir del ciclo y continua ejecutndose

    indefinidamente.

    Esto sucede porque la variable de control i nunca se incrementa.

  • 8/4/2019 Guia Java Bsico UTS

    39/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    39

    PROGRAMACION ORIENTADA A OBJETOS

    Control de ciclos Una gran parte de los ciclos que vamos a utilizar utilizan algo llamado contador.

    Un contador es una variable que se va acumulando hasta llegar a un valor tope, en el que se realiza la

    ltima iteracin del ciclo. Es decir, si queremos crear un ciclo que vaya desde el uno hasta el diez debemos iniciar nuestro

    contador en uno y continuar ejecutando mientras sea menor o igual a diez (o iniciarla en cero y contar

    mientras sea menor que diez. Como veremos ms adelante, esto ltimo es lo que se hace normalmente).

    Do while Ya estuvimos utilizando el ciclo while para realizar una misma accin varias veces, pero adems de este

    ciclo hay otros dos ciclos que nos son muy tiles a la hora de programar.

    El ciclo do while permite repetir la ejecucin de su cdigo mientras una condicin sea verdadera. La

    diferencia entre este ciclo y el while radica en el momento en que se evala la condicin.

    En el ciclo while la condicin se evala al principio, mientras que en el ciclo do while la condicin se

    evala al final.

    Como la condicin se revisa al final, despus de haber ejecutado el cdigo entonces garantizamos que el

    cdigo se ejecuta una o ms veces.

    En la estructura while, como la condicin se revisa antes de ejecutar el cdigo es posible que no se

    ejecute nunca.

    La sintaxis del do while es:

    do {

    // codigo

    } while(condicion); // fijate en el ;

    El do while tiene la siguiente secuencia de ejecucin:

    Se ejecuta el cdigo del do while

    Se revisa la condicin Si la condicin es verdadera se regresa al primer punto

    Si la condicin es falsa ejecuta la siguiente lnea de cdigo del programa

    El do while se utilizaba principalmente para crear mens en las aplicaciones de lnea de comandos.

    Ahora se utiliza con frecuencia para inicializar variables o en la lectura de cierto tipo de archivos de

    texto.

    For Como pudiste ver, muchas veces utilizamos ciclos para realizar una accin un nmero de veces conocido

    (contar hasta 10). El while es un ciclo que nos permite hacer esto, sin embargo no es muy natural

    (tenemos que declarar un contador y no podemos olvidar aumentarlo).

    Adems de los ciclos que hemos visto hasta ahora existe un tercer ciclo muy poderoso llamado for.

    El ciclo for es una estructura de ciclo donde la repeticin est definido precisamente con un contador,

    por esto nos permite encapsularen una sola instruccin todo el cdigo del contador.

    La sintaxis del for es la siguiente:

    for (inicializacion; condicion; incremento){

    // codigo

    }

    La ejecucin del for sucede de la siguiente manera:

    Se inicializan las variables en la seccin de inicializacion

    Se evala la condicion

    Si el resultado es verdadero se ejecuta el cdigo y al final se ejecuta el incremento

  • 8/4/2019 Guia Java Bsico UTS

    40/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    40

    PROGRAMACION ORIENTADA A OBJETOS

    Si el resultado es falso se termina la ejecucin del ciclo y se contina con la siguiente

    lnea del programa.

    El ciclo while y el ciclo for pueden ser intercambiados con facilidad, podemos verlo con el siguiente

    ejemplo:

    Comparacin de ciclos

    While Do while For

    Uso

    Cuando nosabemos elnmero deiteraciones

    Cuando nosabemos elnmero deiteraciones

    Cuando s sabemos elnmero de iteraciones

    Nmero deejecuciones 0 o ms veces

    1 o msveces 0 o ms veces

    Aplicacin

    Cuando lacondicin determinacin noes numrica,por ejemplo,una funcinboolean,tambin es tilpara lectura dearchivos

    Mostrar unmen,mostrarmensajes deerrormientras elusuario noseleccioneuna opcinvlida

    Contar nmeros, recorrerestructuras de datos(veremos esto msadelante)

    Frecuenciade uso

    FrecuentePocofrecuente

    Muy frecuente

  • 8/4/2019 Guia Java Bsico UTS

    41/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    41

    PROGRAMACION ORIENTADA A OBJETOS

    Solucin de CiclosPaso 1:Responder las preguntas y ejercicios en negritas utilizando ciclos.

    Ejercicio 1

    Qu imprime el programa anterior?Ejercicio 2

    Qu valor tiene x al terminar el cdigo anterior?

    Qu valor tiene i?Ejercicio 3

    Este ejercicio es un poco ms complicado. El objetivo es decir qu debera decir en lugar de los ... que

    se encuentran en el System.out.println(). Fjate en el ciclo. Qu est revisando el ciclo? Qu es n, qu es i? Cmo cambia el valor de n, cmo cambia el valor de i? (haz una tabla que te muestre el valor en

    cada iteracin) Qu significa n % i? Qu debera imprimir el programa en lugar de los ...?

    Ejercicio 4

    MaguSoft est atravesando un periodo muy difcil debido a leyes restrictivas que no le permiten

    trabajar con la impunidad que al dueo le gustara. Para resolver este problema Magus ha decididolanzarse como gobernador. Basndose en recientes sucesos en Florida, Magus decidi contratar a un

    programador para que hiciera un programa de votaciones, el programador logr resolver la mitad del

    problema con el siguiente cdigo:

  • 8/4/2019 Guia Java Bsico UTS

    42/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    42

    PROGRAMACION ORIENTADA A OBJETOS

    Hasta ahora hemos utilizado el mtodo showMessageDialog() de la clase JOptionPane para mostrar

    dilogos de informacin en que mostramos un mensaje al usuario, pero tambin podemos utilizar el

    mtodo showConfirmDialog() nos permite mostrar un dilogo de confirmacin en el que se guarda la

    opcin que seleccion el usuario en una variable de tipo int. Ms adelante podemos utilizar algunas

    constantes de la clase JOptionPane para saber qu opcin seleccion el usuario. Escribe el cdigo Qu hace el cdigo?

    El problema es que en las elecciones todas las personas seleccionaron la opcin no, por lo que Magus

    qued con cero votos. El programador anterior fue catsigado con la pena de excomunin y ahora te han

    contratado a ti para resolver este inconveniente. Tu tarea consiste en utilizar un ciclo para obligar a laspersonas a seleccionar la opcin s. El programa debe mostrar la ventana de seleccin hasta que el

    usuario decida presionar el botn s. Escribe el programa

    Ciclos anidados

    En algunos casos queremos que una accin se repita un cierto nmero de veces y que esto a suvez se repita otro cierto nmero de veces.

    Recuerdas cuando construimos el tablero de ajedrez? Queramos que una accin (pintar ochocolumnas) se repitiera un cierto nmero de veces (pintar ocho filas). Esto lo hicimos mediante

    una divisin y un mdulo, pero hay una manera un poco ms elegante llamada ciclo anidado.

    Un ciclo anidado nos permite tener dos o ms ciclos uno adentro de otro. Un ciclo anidado no tiene una estructura nueva, sino que consiste en poner un ciclo dentro de

    otro:

    Incluso podemos combinarlos

    Los ciclos anidados son extremadamente tiles en la programacin y algunos de sus usos principales

    son:

    Dibujar

    Simular series complejas

    Realizar operaciones con matrices

    Realizar operaciones con conjuntos

    Manipular arreglos y matrices (arreglos multidimensionales)

    Ms adelante en el curso aprenderemos ms sobre arreglos y matrices en lenguajes de programacin

  • 8/4/2019 Guia Java Bsico UTS

    43/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    43

    PROGRAMACION ORIENTADA A OBJETOS

    Cmo contar un ciclo Para poder saber cmo funciona un ciclo debemos ver la siguiente propiedad. Los contenidos que van

    adentro del while se van a ejecutar el nmero de veces que marca el contador.

    En el ejemplo de la siguiente diapositiva hay tres ciclos. Todo el cdigo que se encuentra dentro delprimer while se va a ejecutar 10 veces, incluyendo los ciclos.

    Esto hace que el nmero de veces que se ejecuta el ciclo se multiplique por diez.

    La lnea que tiene el comentario a se ejecutara 10 veces, la lnea que tiene el comentario b se ejecutara

    50 veces. Puedes verlo de manera ms clara en las siguientes imgenes.

    Ejercicios con CiclosInstrucciones

    Paso 1:Responder las preguntas y ejercicios en negritas utilizando ciclos.Ejercicio 1

    Qu hace el cdigo anterior?Ejercicio 2

    Cuntas veces se ejecutar el cdigo anterior?

    Cul ser el valor final de x?

    Ejercicio 3

    Qu hace el cdigo anterior?

    Por qu?

    Ejercicio 4

    Escribe un cdigo que imprima 100 veces "Hola mundo"

    Ejercicio 5

    Escribe la funcin isPrime(int n) que recibe un nmero y debe devolver verdadero o falso dependiendo

    si el nmero es primo o no. NOTA: Puedes saber si un nmero es primo revisando si todos los nmreos

    entre 2 y el nmero no son divisibles.

  • 8/4/2019 Guia Java Bsico UTS

    44/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    44

    PROGRAMACION ORIENTADA A OBJETOS

    1: Programacin con Ciclos

    2: Go To 1InstruccionesPaso 1:Descarga el esqueleto de la aplicacin. Abre el proyecto en NetBeans, complalo y crrelo para

    verificar que todo funcione correctametne. Deber aparecer una pantalla similar a la siguiente:

    Selecciona el botn del factorial y da click derecho. Dentro del men selecciona events -> action ->

    actionPerformed. Para poder resolver este problema debemos calcular el factorial de un nmero. Para

    calcular el factorial debemos multiplicar todos los nmeros desde el uno hasta el nmero del que

    queremos calcular el factorial.

    Para hacer esto con un ciclo debemos utilizar una variable especial para guardar el resultado, a la que

    podemos llamar factorial. Este tipo de variables se conocen como acumuladores y nos permiten guardarresultados intermedios. Los acumuladores son muy utilizados en los ciclos ya que nos permiten realizar

    operaciones sobre los valores que vamos calculando. Como vamos a acumular un valor sobre estavariable es muy imporatnte iniciarla con un valor. El nmero con el que la empezamos vara

    dependienod de la situacin, pero regularmente se selecciona 1 o 0. Como en este caso vamos a realizar

    multiplicaciones necesitamos empezar con 1 porque si no siempre multiplicaramos por 0.

    Adems de utilizar un acumulador vamos a utilizar un contador para llevar la cuenta desde el nmero

    uno hasta el nmero n. En cada iteracin del ciclo vamos a multiplicar el nmero actual por el nmeroque llevamos acumulado. En cdigo estamos hablando de lo siguiente:

    Nota: Es muy importante que agregues el incremento al contador, porque de no hacerlo el ciclo jams

    terminara y el programa se va a trabar. En caso de que corras un programa y se cicle puedes utilizarNetBeans para cancelar la ejecucin. A la izquierda del IDE hay una opcin que dice runtime. Dentro

    de runtime puedes ver todos los procesos que se estn ejecutando en NetBeans y puedes cancelar

    cualquier haciendo click derecho y seleccionando Terminate Task como se ve en la fotografa:

  • 8/4/2019 Guia Java Bsico UTS

    45/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    45

    PROGRAMACION ORIENTADA A OBJETOS

    Compila tu programa y verifica que funcione de manera correcta. Una vez que hayas probado quefunciona bien haz click derecho en el segundo botn y selecciona events -> action -> actionPerformed

    para comenzar a hacer la serie de nmeros hasta n. Dentro del cdigo podemos ver que debemosescribir todos los nmeros desde el 1 hasta n. Esto es muy sencillo, slo debemos irlos guardando en un

    String e imprimir el String al final.

    Compila y corre el programa anterior. Al utilizar este nuevo cdigo notars algo extrao en el

    resultado. Tiene una coma de ms, esto es porque todos los elementos desde 1 hasta n les estamos

    dando el mismo tratamiento. Muchas veces en los ciclos tenemos un caso especial al principio o al

    final, por lo que debemos modificar nuestros ciclos para que terminen antes o empiecen despus. En el

    cdigo significara quitar la ltima ocurrencia del while (es decir, cuando curr == n) y agregar el

    codigo al final que solamente agregue el ltimo nmero a la serie, es decir:

    Compila y corre tu programa para ver que funcione de manera correcta. Al terminar de revisarlo haz

    click derecho sobre el botn de secuencia de pares y por analoga realiza la serie de pares que debe

    iniciar en 2 y terminar con el par ms cercano a n (o n en caso de que sea par). Recuerda que en este

    caso el contador no va a iniciar en uno como en el caso anterior ya que el primer nmero a imprimir esdos. Tambin recuerda que puedes aumentar el contador de dos en dos.

    Una vez que hayas probado ese mtodo vamos a continuar con el mtodo que imprime una secuenciadesde n hasta m. Este mtodo es muy similar a los que hemos manejado hasta ahora. La nica

    diferencia es que ahora los valores de inicio y final son variables. Tomando esto en cuenta podemos

    hacer el siguiente cdigo:

  • 8/4/2019 Guia Java Bsico UTS

    46/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    46

    PROGRAMACION ORIENTADA A OBJETOS

    Como ya nos dimos cuenta de que los tres mtodos son muy similares entonces nos hemos dado cuenta

    de que tenemos una oportunidad de modular. Podemos generalizar el problema como un mtodo que

    recibe tres parmetros (que son los nicos valores que cambian), el inicio de la serie, el final de la serie

    y el incremento. El mtodo debe validar que el final de la serie sea mayor que el inicio de la serie, y

    debe lanzar una excepcin en caso de que no sea as. El programa debe mostrar una ventana de error encaso de que esto suceda. El mtodo debe devolver un String con la serie generada.

    Utilizando tus conocimentos sobre mtodos crea el mtodo String buildSequence(int start, int end, int

    increment) como acabamos de discutirlo. Despus cambia los mtodos actionPerformed() de tusbotones para que utilicen este mtodo. Como puedes ver con este ejemplo, modular puede ahorrarnos

    muchas lneas de cdigo si pensamos en dnde podemos reutilizar un mtodo.

    Una vez que hayas terminado el mtodo y probado tu aplicacin vamos a terminar de hacer el ltimo

    mtodo que falta. En este mtodo debemos obtener la potencia de un nmero utilizando ciclos.

    Selecciona el botn x^y y presiona click derecho, en el men selecciona events -> action ->actionPerformed. Para poder calcualr la potencia debemos hacer un ciclo que cuente y veces y en cada

    vuelta multiplique un acumulador por la variable x. Es decir:

    Compila y corre tu programa. Verifica que todos los botones funcionen de manera adecuada.

    Comprime tu carpeta de trabajo y mndala por correo.

    Tarea: Multiplicacin y DivisinInstruccionesPaso 1:Crea un programa de interfaz grfica que tenga dos JLabel con sus respectivos JTextField y dos

    JButton.Los JLabel deben llamarse lblA y lblB, los JTextField txtA y txtB, los JButton btnMult y btnDiv.

    Paso 2:Al presionar btnMult debe calcularse al multiplicacin a * b y debe mostrarse el resultado.

    El programa nicamente puede utilizar el operador matemtico de suma (+). NO puede utilizarmultiplicacin (*).

    Tip: Utiliza ciclos para sumar varias veces un nmero.

    Paso 3:Al presionar btnDiv debe calcularse la divisin entera a / b y debe mostrarse el resultado.

    El programa nicamene puede utilizar el operador matemtico de resta (-). NO puede utilizar la

    divisin (/).

    Tip: Utiliza ciclos para restar varias veces b del nmero a. Cuando el restante sea menor que bya no se puede dividir.

  • 8/4/2019 Guia Java Bsico UTS

    47/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    47

    PROGRAMACION ORIENTADA A OBJETOS

    Programacin con Ciclos FORInstruccionesPaso 1:Descarga el esqueleto de la aplicacin. Abre el proyecto en NetBeans, complalo y crrelo para

    verificar que todo funcione correctametne. Deber aparecer una pantalla similar a la siguiente:

    Como puedes ver el esqueleto que vamos a utilizar en esta sesin es exactamente igual que el que

    utilizamos en la sesin 13. Utilizando este esqueleto vamos a implementar las mismas funciones que

    implementamos en ese laboratorio pero ahora en lugar de utilizar el while vamos a utilizar el for.

    Primero que nada selecciona el botn de elevar a una potencia (x^y) y ve al cdigo. Si recuerdas, en el

    laboratorio pasado tenamos un cdigo similar al siguiente:

    Para poder pasar eso a un ciclo for tendramos que utilizar el siguiente cdigo:

    Como puedes ver, de todas maneras tenemos el acumulador y el cdigo dentro del ciclo es casi igual, lo

    nico que cambia es que en el cdigo del for ponemos todo el manejo del contador en una misma lnea,

    por lo que la mayora de las veces es ms sencillo de entender.Utilizando el mtodo de ejemplo convierte todos los ciclos de la sesin de while a ciclos for. Recuerda crear un

    mtodo para las series de nmeros.

  • 8/4/2019 Guia Java Bsico UTS

    48/89

  • 8/4/2019 Guia Java Bsico UTS

    49/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    49

    PROGRAMACION ORIENTADA A OBJETOS

    Tipos de mtodos

    Mtodos estticos: Son mtodos de la clase o compartidos. No necesitan una instancia de la clase parapoder correr. Un ejemplo muy utilizado es un mtodo que cuente el nmero de objetos que se han

    creado. Los mtodos estticos siempre deben tener como tipo de mtodo la palabra clave static. publicstaticvoid incrementCreated() {} public static int getNumCreated() {}

    Recuerdas el mtodo showMessageDialog(), recuerdas que siempre ponamos el nombre de la clase yno el de una instancia? Es porque es un mtodo esttico.

    Mtodos abstractos: Son mtodos que no tienen implementacin. Puede parecer que estos mtodos sontotalmente intiles pero cuando veamos programacin orientada a objetos veremos por qu nos sirven.

    Getters y setters: Nos permiten obtener y cambiar las propiedades de un objeto. Por convencin losgetters (que nos permiten obtener el valor) empiezan con get y los setters con set. Un ejemplo esgetText() para obtener la propiedad text de un JTextField y setText() para cambiar la propiedad text.

    Constructores: Tienen una sintaxis especial y nos sirven para construir un objeto. Estos mtodos sonlos nicos quejams devuelven nada (es decir, no tienen valor de retorno) y siempre deben ser pblicos.

    Su sintaxis es: publicNombreClase ([parametros]) {}

    Destructores: En Java se implementan con el mtodo dispose() y se encargan de liberar la memoria queocupa un objeto, pero no son necesarios porque en la mayora de los casos Java se encarga de esto

    automticamente.

    Por qu utilizar mtodos Utilizamos mtodos porque nos permiten no volver a escribir cdigo repetido y adems nos permiten

    hacer que el cdigo sea mucho ms fcil de entender.

    En el cdigo anterior podemos ver el mtodo calculateArea() que nos devuelve el rea calculada.Aunque en este caso no logramos reducir mucho cdigo repetido s logramos hacer ms fcil de entender

    el cdigo.

    En el ejemplo anterior la implementacin de calculateArea() es:

    Qu visibilidad tiene el mtodo? Qu valor de retorno tiene el mtodo? Qu parmetros recibe?

    Como podemos ver en la implementacin que hay una lnea que inicia con return. Esta es una palabraclave que regresa ese valor como valor de retorno.

    Ejemplos de mtodos

    Los getters y setters probablemente son el tipo de mtodo ms utilizado, aunque todava no es objetivoque los conozcamos podemos ver su sintaxis:

  • 8/4/2019 Guia Java Bsico UTS

    50/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    50

    PROGRAMACION ORIENTADA A OBJETOS

    En ese caso el this es una referencia al mismo objeto, es decir Mi nombre es el nombre que pasaroncomo parmetro.

    Muchas veces podemos utilizar mtodos para hacer tareas repetitivas de la interfaz grfica, por ejemplo,limpiar todos los campos:

    Ms adelante veremos que los mtodos tambin nos sirven cuando queremos leer y escribir archivos. Los mtodos pueden tener varios valores de retorno diferentes dependiendo de lo que reciban como

    parmetro, por ejemplo el siguiente mtodo recibe un nombre de usuario y una contrasea y slo

    devuelve verdadero si el nombre de usuario esMagus y el password es superpass, en caso contrario

    regresa falso.

    Otro ejemplo muy similar:

    Alcance de variables Variables Globales

    Una variable declarada fuera de algn mtodo es considerada global y la puede utilizar cualquiermtodo.

    Variables Privadas Una variable declarada dentro de un bloque (un conjunto de lneas de cdigo que se encuentran

    entre llaves { }) slo puede ser leda dentro de ese mismo bloque. Como puedes ver en el cdigo el metodo2() no puede leer la variablePrivada porque no tiene acceso a

    ella ya que es parte del metodo1().

    Qu sucede cuando declaras una variable dentro de un if?

  • 8/4/2019 Guia Java Bsico UTS

    51/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    51

    PROGRAMACION ORIENTADA A OBJETOS

    Cundo utilizar mtodos

    Como ya vimos podemos utilizar mtodos para una gran cantidad de tareas, pero cmo saber cundodebemos utilizar un mtodo y cuando es mejor dejar el cdigo como esta?

    Regularmente podemos seguir tres reglas: Si vas a repetir algunas lneas de cdigo deberan estar en un mtodo Si va a hacer ms claro el cdigo debera estar en un mtodo Un mtodo largo debera romperse en sub-mtodos para que sea ms claro

    Graphics

    Graphics es una clase que se encarga de dibujar las pantallas, los componentes y algunas imgenes fuerade pantalla.

    Esta clase contiene encapsulada mucha complejidad como: Manejo de fuentes (tipos de letra) Manejo de colores Dibujo de formas geomtricas

    Dibujo de polgonos

    Mtodos de la clase Graphics

    Algunos de los mtodos de la clase Graphics que podemos utilizar para dibujar son: drawLine(x1, x2, y1, y2) drawOval(x, y, width, height) drawRect(x, y, width, height) drawString(string, x, y)

    Adems podemos utilizar mtodos para cambiar cmo dibujamos: setFont(font) setColor(color)

  • 8/4/2019 Guia Java Bsico UTS

    52/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    52

    PROGRAMACION ORIENTADA A OBJETOS

    Cmo funcionan los mtodos Algunas veces es difcil acostumbrarse a los mtodos de Graphics porque el plano cartesiano que

    utilizan para dibujar no es estndar sino que tiene el origen en la orilla superior izquierda y de ah se

    mueve el eje positivo hacia la derecha y hacia abajo.

    Tomando esto en cuenta los mtodos son un poco complicados de entender al principio. Veamos algunosejemplos de manera grfica.

    Lnea g.drawLine(x1, y1, x2, y2);

    g.drawLine(30, 30, 450, 150);

    Fjate como en las coordenadas se utiliza el plano cartesiano que inicia el la orilla superior izquierda.

    Rectngulo y valo g.drawRect(x, y, width, heigth);

    g.drawRect(30, 30, 420, 120); g.drawOval(x, y, width, height);

    g.drawOval(30, 30, 420, 120);

    String En la clase del mtodo drawString() las cosas cambian un poco ms porque el String no se dibuja hacia

    abajo como esperaramos sino se dibuja hacia arriba de la siguiente manera:

    g.drawString(str, x, y) g.drawString(Hola mundo!, 30, 50)

  • 8/4/2019 Guia Java Bsico UTS

    53/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    53

    PROGRAMACION ORIENTADA A OBJETOS

    Otros mtodos El mtodo setFont() me permite cambiar el tipo de fuente y recibe un objeto de tipo Font. El constructor

    de este objeto es:

    newFont(name, type, size) newFont("Arial", Font.BOLD, 30);

    Algunas de las constantes que podemos usar en type son: Font.PLAIN Font.BOLD Font.ITALIC

    El mtodo setColor() nos permite cambiar el color del pincel con el que se va a dibujar. Este mtodorecibe un objeto de tipo Color al que se va a cambiar el color. El constructor de Color es el siguiente:

    newColor(red, green, blue) Donde red, green y blue pueden ser int (0 - 255) o float (0.0f - 1.0f).

    newColor(30, 255, 100) newColor(0.2f, 0.8f, 0.4f)

    Por qu Graphics?

    Podemos utilizar la clase Graphics para tres tareas fundamentalmente: Dibujar imgenes dentro de nuestros programas Crear grficas e informacin visual Crear controles especiales ms amigables

    El profe utiliza Graphics para crear las grficas de las estadsticas. Algunos programas cambian la apariencia visual al cambiar cmo se dibujan los controles. Un ejemplo de aplicacin que cambia los controles normales de Java es Judoku, un juego de Java basado

    en Sudoku.

    Los controles que se ven en la fotografa son JButton

  • 8/4/2019 Guia Java Bsico UTS

    54/89

    UNIDADES TECNOLOGICAS DE SANTANDER

    INGENIERIA DE TELECOMUNICACIONES

    54

    PROGRAMACION ORIENTADA A OBJETOS

    Clase String

    En programacin un String es un conjunto de smbolos ordenados que son tomados de un conjunto desmbolos.

    En Java un String es un conjunto de char, que al ser unidos pueden entenderse como palabras yoraciones.

    Algo muy importante que recordar en Java es que todos los String son inmutables, es decir, una vezcreados no pueden cambiar.

    Existen varias operaciones que se pueden realizar con un String, pero las tres ms importantes son: Concatenacin: La concatenacin consiste en unir dos objetos de tipo String. A lo largo del

    curso hemos visto varios ejemplos y sabemos que el operador de concatenacin en Java es +.

    Substring: Un substring es un String que se encuentra dentro de otro de un ndice inicial a unndice final, es decir: El substring desde 0 hasta 3 de Hola Mundo es Hola y el substring

    desde 5 hasta 10 es Mundo

    Largo: Nos permite saber el largo de un String. Las dems operaciones con String se pueden obtener utilizando las tres primeras, algunas otras

    operaciones utilizadas son: Comparacin: Saber si dos objetos String son iguales. Bsqueda: Encontrar si un String contiene otro. Obtener caracteres: Encontrar el carcter que se encuentra en la quinta posicin. Expresiones regulares: Son una manera algo complicada pero extremadamente poderosa de

    validar que un String tenga un cierto formato.Por qu