Você está na página 1de 37

Introduccin a la programacin en JAVA

Ctedra: Taller de Objetos y Abstraccin de Datos

www.themegallery.com

LOGO

Contenido
1 2 3 4 5
6 Estructura de un programa Identificadores Tipos, variables y valores

Expresiones Conversiones de tipo Enumerados

LOGO

Estructura de un programa
/** * @(#)Hola.java * * Hola application * * @author * @version 1.00 2010/12/5 */

Comentario.

Definicin de clase. Comienza con { public class Hola { public static void main(String[] args) Definicin de mtodo. { // TODO, add your application code Sentencias. System.out.println("Hola a todos"); } }

y finaliza en }

LOGO

Identificadores
Es un nombre que permite identificar los elementos que se estn manejando en un programa. REGLAS: 1-. Debe empezar con una letra y seguir debe seguir una sucesin de letras y dgitos. 2-. Utilizar nombres significativos. 3-. Los nombres de mtodos y variables empiezan con minscula. No usar _ para separar nombres compuestos. n, numeroElementos, porValor, escribeTitulo, etc 4-. Los nombres de clases empiezan con MAYSCULA. VolumenCilindro, Alumno, ProgramaDePrueba, etc 5-. Los nombres de constantes se escriben en MAYSCULA y con la palabra reservada final. PI, TAMAO_MAXIMO, etc

LOGO

Tipos, Variables y Valores


Una variable guarda valores y esta queda determinada por: 1. Un nombre: Debe ser como se indic en el tema de Identificadores. 2. Un tipo: Permite conocer qu valores se pueden guardar en esa variable. 3. Un rango de valores que puede admitir: Depende del tipo de la variable.
Tipo Byte Short Int Long Descripcin Entero con signo Entero con signo Entero con signo Entero con signo Valor min./max. -128 a 127 -32.768 a 32.767 -2.147.483.648 a 2.147.483.647 -922117036854775808 a 922117036854775807 Tamao en bytes 1 2 4 8

Float

Real de simple precisin

3.40282347e+38 a 1.40239846e45 (7 dgitos importantes) 1.79769313486231570e30 8a 4.94065645841246544e+3 24 (16 dgitos importantes)

Double

Real de doble precisin

char Boolean

Caracteres Unicode Verdadero o falso

\u0000 a \uFFFF True o false

www.themegallery.com

LOGO

1bit

Expresiones
Sobre cada tipo de valor se puede utilizar un conjunto de operadores para formar expresiones: Nmeros Enteros y Reales: Unarias(+,-), multiplicativas(*), aditivas(+,-), incremento y decremento(++,--), relacin(>,>=,<,<=,), operadores de igualdad(==,!=), operadores de asignacin(=,+=,-=,*=,/=,%=). Booleanos: Negacin(!), Y lgico(&&, &), O lgico(||, |). Precedencia de operadores: 1. Operadores unarios. 2. Operadores multiplicativos, de izquierda a derecha. 3. Operadores aditivos de izquierda a derecha. 4. Operadores de relacin. 5. Operadores de asignacin. a = -3 + 5 + 2 * 4 6 / 4 * 3 5 % 2; resultado final: a=6 1 6 7 2 8 3 4 9 5

LOGO

Conversiones de tipo
Conversin automtica de tipos: Cuando el tipo al que se le asigna un valor es mayor, la conversin se realiza automticamente. double a = 2.3 * 5 Al hacer la multiplicacin el entero(5) se transforma a double y se hace la multiplicacin entre reales. En las conversiones el tipo destino siempre debe ser igual o mayor que el tipo fuente" Conversin explcita: Cuando no se cumple lo anterior , se coloca delante del valor a convertir y entre parntesis, el tipo al que se desea convertir, esto es lo que se llama hacer un Casting. (int)34.34 Se trunca el valor y se pierden los decimales. Conversin especial con valores de tipo char: char c = A; int n = 1; n = n + c; n=66

LOGO

Conversiones de tipo

Tipo Origen byte short char int long float

Tipo Destino double, float, long, int, char, short double, float, long, int double, float, long, int double, float, long double, float double

LOGO

Enumerados
Conjunto de valores constantes para los que no existe un tipo predefinido. enum DiaSemana {LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO} enum TurnoDeClase {MAANA, TARDE}
public class Hola { public enum DiaSemana {LUNES, MARTES, MIERCOLES, JUEVESS, VIERNES, SABADO, DOMINGO} public static void main(String[] args) { DiaSemana hoy = DiaSemana.LUNES; DiaSemana maana = DiaSemana.MARTES; System.out.println ("Hoy es: "+hoy+"\nMaana es: "+maana); } }

LOGO

Para programar.

LOGO

Ejemplo 1
Escriba un programa para calcular el rea y el volumen de un cilindro. Para ello declare una constante que guarde el valor de =3.14159265. Declare tambin variables para el dimetro y la altura del cilindro. Suponga para el ejemplo que el cilindro tiene un dimetro de 15,5cm y una altura de 42,4cm. Planteamiento: Se necesita dos variables para guardar los valores del dimetro y de la altura del cilindro, que debe ser del tipo double. Adems, hay que declarar una constante para el valor de . El clculo del rea y el volmen se realizan con las siguientes frmulas: area = 2 * PI * radio * radio + 2 * PI * radio *altura volumen = PI * radio * radio * altura

LOGO

Solucin Ejemplo 1

LOGO

Entrada desde Teclado


Qu necesitamos? 1-. Un objeto SYSTEM.IN 2-. Un objeto READER 3-. Un objeto BUFFEREDREADER Cmo funciona? El InputStream es una clase abstracta que declara mtodos para realizar operaciones basadas en bytes de entrada. El objeto System.in es un objeto flujo de entrada estndar que permite recibir bytes desde TECLADO. La clase Reader son flujos basados en CARACTERES Unicode. La clase InputStreamReader permite convertir en caracteres los bytes que se estn leyendo desde el teclado. InputStreamReader(...). Entre parntesis le pasamos el InputStream que queremos convertir a Reader, en este caso, el System.in. Como el InputStreamReader lee los caracteres sueltos necesitamos una clase que nos devuelva todos loss caracteress leidos de una sola vez, usamos la clase BufferedReader , la instanciamos y le mandamos como parmetro el Reader que es la clase InputStreamReader, eso lo convierte en String y nos lo devuelve. Para obtener el String usamos br.readLine(). BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); LOGO

Entrada desde Teclado

Aqui

www.themegallery.com

LOGO

Manejo de Excepciones
Una Excepcin es la indicacin de un problema que ocurre durante la ejecucin de un programa . El manejo de excepciones esta diseado para procesar errores sincrnicos, que ocurren cuando se ejecuta una instruccin(divisin entre 0, desbordamiento aritmtico, etc). Cuando un mtodo detecta problemas que es incapaz de manejar, lanza la Excepcin! Cmo solucionarlo? Utilizando un manejador de excepciones, para que ste capte y maneje la excepcin. TRY y CATCH: Es una de la soluciones para manejar las excepciones.

LOGO

Manejo de Excepciones
Cmo usar Try y Catch? En el bloque del TRY se encierra todo el cdigo que puede generar una excepcin. Este bloque va seguido de una o mas clusulas CATCH . Cada clusula CATH es un manejador de excepciones que especifica el tipo de excepciones que puede manejar. Si no se lanzan excepciones en un bloque TRY, se ignoran las clusulas CATCH para ese bloque, el programa reanuda la ejecucin despus de la ltima clusula CACTH. En una clusula FINALLY colocamos el cdigo que queremos que se ejecute independientemente de que se produzca una excepcin. try{} catch(Exception e){} finally{}

LOGO

Manejo de Excepciones

LOGO

Manejo de Excepciones

www.themegallery.com

LOGO

Para programar.

LOGO

Ejercicios
 Escriba un programa que defina dos variables enteras para describir las longitudes de los lados de un rectngulo. El programa debe calcular y escribir en la pantalla las longitudes de los lados, el permetro y el rea del rectngulo. Ingrese los valores de las longitudes por teclado. permetro=2*alto+2*ancho area=ancho*alto  Escriba un programa que solicite al usuario el tamao de lado de un triangulo equiltero y calcule su permetro y su rea. permetro=3*lado area=(3 / 4)*lado*lado

LOGO

Estructuras de control
 Estructuras de seleccin:
 { Sentencias } If(condicion) if(condicion) { Sentencias } else { Sentencias } switch(expresion) { case valor 1: sentencias; break; case valor2: sentencias; break;

default : sentencias; break;

 Estructuras de repeticin:
While(condicion) { Sentencias; } do { Sentencias; } while(condicion);

for(inicializacion; condicion; actualizacion) { Sentencias; }

LOGO

Para programar.

LOGO

Ejercicios
 Escriba un mtodo de nombre dibujaRectangulo que reciba dos valores enteros como parmetros, el mtodo debe dibujar un rectngulo en el que la base es mayor que la altura, por lo que se utilizar como base el mayor de los valores proporcionados como parmetro y como altura el menor.  Por ejemplo si se le pasa como argumento los valores 3 y 5 se dibujar el siguiente rectngulo
***** ***** *****

 Escriba un programa que juegue con el usuario a adivinar un nmero. El programa debe generar un nmero entre 1 y 100 y el usuario tiene que intentar adivinarlo. Para ello, cada vez que el usuario introduce un valor el programa debe indicarle al usuario si el nmero que tiene que adivinar es mayor o menor que el introducido. Cuando consiga adivinarlo debe indicrselo e imprimir en pantalla el nmero de veces que el usuario ha intentado adivinar el nmero. Si el usuario introduce algo que no es un nmero debe indicarlo de esta forma en pantalla y contarlo como un intento.

LOGO

Ejercicios

LOGO

Ejercicios

www.themegallery.com

LOGO

Ejercicios
 Escriba un mtodo de nombre dibujaTriangulo que reciba un entero como parmetros, el mtodo debe dibujar un triangulo como el que se muestra en el dibujo, despus de comprobar que el valor del parmetro es un nmero impar positivo  Por ejemplo si se le pasa como argumento el valor 7 se dibujara un triangulo con 7 asteriscos en la base * *** ***** ******* Escriba un mtodo de nombre dibujaRombo que recibe un entero como parmetro. El mtodo debe dibujar un rombo como el que se muestra en la figura despus de comprobar que el valor que se recibe como argumento, que indica la altura del rombo, es un numero impar mayor o igual a 3. * *** ***** *** *

LOGO

Estructura general de una clase en JAVA


/** * @(#)Hola.java * * Hola application * * @author * @version 1.00 2010/12/5 */
Atributos de la clase: Variables que definen el estado de los objetos. Declaracin de mtodos: Fragmentos de cdigo que hacen una determinada funcin

class NombreDeClase { // Declaracin de atributos de la clase // Declaracin de mtodos de la clase }

LOGO

www.themegallery.com

LOGO

www.themegallery.com

LOGO

www.themegallery.com

LOGO

www.themegallery.com

LOGO

Con POLIMORFISMO.

www.themegallery.com

LOGO

www.themegallery.com

LOGO

www.themegallery.com

LOGO

www.themegallery.com

LOGO

Tips
Lo primero que uno necesita para programar mejor es tener gusto para programar sin gusto es muy difcil que aprendas an pagues el curso ms caro. Necesitas tener iniciativa, un programador con iniciativa es alguien que se adelanta a los hechos, que investiga, que tiene un afn de ser mejor, un ejemplo puede ser la bsqueda constante de nuevas tecnologas, libreras, el aprender a utilizar cierta librera antes de que se le pida. Ser abierto a escuchar otras opiniones, no siempre nuestras formas de resolver las cosas son las mejores. Entiende y analiza bien las cosas antes de ponerte a codificar. Busca ejemplos similares, pregntale a alguien que haya hecho algo semejante, has pruebas de las ideas que tengas para solucionarlo. Siempre es mejor empezar con una idea de lo que se quiere. Cuando analices un problema busca los pros y contras de todas las posibles soluciones, de manera que puedas escoger la mas segura y la que mejor se adapte a tus necesidades. Si no sabes algo investiga para eso tenemos a nuestro amigo google y si el no te responde pregntale a alguien que ya haya tenido ese problema. Si tienes algn problema piensa que muchas otras personas han tenido ese mismo problema, investiga en google alguna solucin no te quedes pasmado y quebrndote la cabeza por algo que de seguro encontraras solucionado. No inventes el hilo negro ten por seguro que si necesitas alguna librera o funcin ha algn otro ya se le habr ocurrido hacerla investiga! si no encuentras una que te resuelva todas tus necesidades al menos encuentras una que te de una idea para que puedas realizar la tuya. Lean blogs, aprendan nuevos lenguajes, libreras, frameworks. Si te quedas con lo que has aprendido puedes quedar obsoleto. No esperes a aprender algo si no lo pruebas primero (a menos que seas un genio y solo con ver las cosas ya te las www.themegallery.com sabes).

LOGO

www.themegallery.com

LOGO