Story Transcript
Introducción a java
UNIDAD 1.- INTRODUCCIÓN A JAVA Historia de java
Creado por Sun Microsystems Inc. en 1990, como un proyecto para desarrollar un sistema que controlara electrodomésticos. Se pretendía crear un hardware polivalente, con un Sistema Operativo eficiente (SunOS) y un lenguaje de desarrollo denominado Oak (roble), el proyecto finalizó en 1992 y debido a su alto costo en relación a otros proyectos del mismo tipo que ya existían, fue declarado como un fracaso. En 1995 el proyecto fue retomado y gracias a una acertada decisión de distribuir libremente el lenguaje por Internet, se popularizó lográndose que una gran cantidad de programadores lo depuraran y terminaran perfilar según lo que ellos necesitaban, se añadieron numerosas clases. El nombre del lenguaje tuvo que ser cambiado ya que existía otro lenguaje llamado Oak. Se buscaban un nombre que evocara la esencia de la tecnología (viveza, animación, rapidez, interactividad…). Java fue elegido de entre muchísimas propuestas. No es un acrónimo, sino mas bien un nombre inspirado en lago que a muchos programadores les gusta beber en grandes cantidades: una taza de café (Java en argot Inglés americano). De esta forma, Sun lanzó las primeras versiones de Java a principios de 1995. Debido a la explosión tecnológica de estos últimos años Java ha desarrollado soluciones personalizadas para cada ámbito tecnológico, agrupando cada uno de esos ámbitos en una edición distinta: o J2SE (Java 2 Stantard Edition) o J2EE (Java 2 Enterprise Edition) o J2ME (Java 2 Micro Edition)
Funcionamiento de Java
Fuente Java : archivo .java o Archivo utilizado durante la fase de programación. o El único archivo realmente inteligible para el programador. Byte-Code Java : archivo .class o Código objeto destinado a ser ejecutado en toda Maquina Virtual de Java o Procede de la compilación del código fuente Maquina Virtual Java o Interprete de java convirtiendo el código a un lenguaje entendible para la máquina, ejecuta el ByteCode Java.
Visión general y elementos básicos del lenguaje
En Java, prácticamente todo son clases (objetos). El lenguaje obliga a la programación orientada a objetos y no permite la posibilidad de programar mediante ninguna otra técnica que no sea ésta. Por esta razón, un programa estará formado por uno o varios archivos fuente y en cada uno de ellos tendrá definida una o varias clases. El lenguaje Java, distingue entre mayúsculas y minúsculas, por lo que es importante transcribirlo literalmente. También hay que comentar que en el nombre del archivo fuente también se hace distinción entre mayúsculas y minúsculas a la hora de compilarlo, aunque el sistema operativo empleado no haga esta distinción. La extensión del mismo debe ser .java 1
Aurelio López Ovando
Introducción a java
1.- Programa que imprime el mensaje "Hola mundo" en pantalla. class hola { public static void main(String arg[]) { System.out.println("Hola mundo"); } }
Objetivo: Comenzar a familiarizarse con el entorno de java Como guardarlo. Como compilar y ejecutar. Función principal main Comentarios
Un archivo fuente puede contener más de una clase, pero sólo una puede ser public. El nombre del archivo fuente debe coincidir con el de la clase public. Una aplicación está constituida por varias clases, cada una realiza funciones particulares, permitiendo construir aplicaciones con gran modularidad e independencia entre clases. La aplicación se ejecuta por medio del nombre de la clase que contiene la función main(). 2.- Programa que muestra un mensaje en pantalla utilizando una clase diferente. class saludo { public void saludar() { System.out.println("Hola mundo..."); } }
Objetivo: Familiarizarse con la declaración de otras clases. Definir una clase. Crear una clase. Invocar una clase.
class hola_2 { public static void main(String arg[]) { saludo x = new saludo(); x.saludar(); } }
3.- Declarar una clase que imprima los datos del curso: Escuela, nombre del curso, nombre del instructor. import java.io.*; class curso { public void imprime_datos() { System.out.println("CURSO: Java "); System.out.println("INSTITUCION: ITESSCAM"); System.out.println("INSTRUCTOR: Aurelio Lopez Ovando"); } } class datos_curso { public static void main(String arg[])throws IOException { curso Curso = new curso(); Curso.imprime_datos(); } }
2
Aurelio López Ovando
Introducción a java
Tipos de datos Tipos de dato simples: Pueden utilizarse directamente en un programa, sin necesidad del uso de clases (POO). TIPO
DESCRIPCIÓN
LONG.
RANGO
byte short int
byte entero corto entero
1 byte 2 bytes 4 bytes
long
entero largo
8 bytes
float
32 bits 64 bits
1,7*10-308 … 1,7*10308
char
real en coma flotante real en coma flotante carácter
- 128 … 127 - 32.768 … 32.767 - 2.147.483.648 … 2.147.483.647 -9.223.372.036.854.775.808… 9.223.372.036.854.775.807 3,4*10-38 … 3,4*1038
2 bytes
0 … 65.535
boolean
lógico
1 bit
true / false
double
Tipos de datos referenciales: Son las clases, en las que se basa la programación orientada a objetos. Se les llama referencias porque en realidad lo que se almacena en los mismos son punteros a zonas de memoria donde se encuentran almacenadas las estructuras de datos que los soportan. Dentro de este grupo se encuentran las clases (objetos) y también se incluyen las interfaces, los vectores y los Strings.
Declaración de variables La declaración de una variable contiene el nombre (identificador de la variable) y el tipo de dato al que pertenece. El ámbito de la variable depende de la localización en el programa donde es declarada. Las variables pueden ser inicializadas en el momento de su declaración, siempre que el valor que se les asigne coincida con el tipo de dato de la variable.
Identificadores Los identificadores son los nombres que se les da a las variables, clases, interfaces, atributos y métodos de un programa.
Reglas para la creación de identificadores: 1. Java hace distinción entre mayúsculas y minúsculas, por lo tanto, nombres o identificadores como var1, Var1 y VAR1 son distintos. 2. Pueden estar formados por cualquiera de los caracteres del código Unicode, por lo tanto, se pueden declarar variables con el nombre: añoDeCreación, raïm, etc. (se acabó la época de los nombres de variable como ano_de_creacion), aunque eso sí, el primer carácter no puede ser un dígito numérico y no pueden utilizarse espacios en blanco ni símbolos coincidentes con operadores. 3. La longitud máxima de los identificadores es prácticamente ilimitada. 4. No puede ser una palabra reservada del lenguaje ni los valores lógicos true o false. 5. No pueden ser iguales a otro identificador declarado en el mismo ámbito. 6. Por convenio, los nombres de las variables y los métodos deberían empezar por una letra minúscula y los de las clases por mayúscula. Además, si el identificador está formado por varias palabras la primera se escribe en minúsculas (excepto para las clases) y el resto de palabras se hace empezar por mayúscula (por ejemplo: añoDeCreación). Estas reglas no son obligatorias, pero son convenientes ya que ayudan al proceso de codificación de un programa, así como a su legibilidad. Es más sencillo distinguir entre clases y métodos o variables.
3
Aurelio López Ovando
Introducción a java
4.- Declarar dos variables numéricas y mostrar la suma de estas dos variables class operaciones { public void resultado() { int n1=8, n2=10; int s = n1+n2; System.out.println("La suma es: " + s); } }
Objetivo: Empezar a declarar variables. Utilizar los tipos de datos conscientemente. Inicializar variables. Alcance de las variables. Imprimir el contenido de una variable.
class suma { public static void main(String arg[]) { operaciones x = new operaciones(); x.resultado(); } }
Operadores aritméticos: Operador
Formato op1 - op2 -op1 op1 * op2 op1 % op2 op1++ ++op1 op1--- op1 op1 / op2 op1 + op2
* % ++ -/ +
Descripción Resta aritmética de dos operandos. Cambio de signo Multiplicación de dos operandos. Resto de la división entera ( o módulo) Incremento unitario Decremento unitario División entera de dos operandos. Suma aritmética de dos operandos.
Operadores relacionales: Operador > < >= op2 op1 < op2 op1 >= op2 op1 = == != && || = += -= *= /= %=
5.- Programa que pida el nombre de una persona y lo salude por su nombre. import java.io.*; class persona { public void get_name()throws IOException { String nombre; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Como te llamas? "); nombre = in.readLine(); System.out.println("Hola " + nombre); } } class pide_datos { public static void main(String arg[])throws IOException { persona x = new persona(); x.get_name(); } }
Objetivo: Aprender a introducir datos desde el teclado. Como incluir una biblioteca Biblioteca io. Como leer datos desde el teclado. El operador de asignación = Manejo de errores. Modificar el programa para que lea datos de distintos tipos.
El método String readLine() perteneciente a BufferReader lee todos los caracteres hasta encontrar un '\n' o '\r' y los devuelve como un String (sin incluir '\n' ni '\r'). Este método también puede lanzar java.io.IOException.System.in es un objeto de la clase InputStream. BufferedReader pide un Reader en el constructor. El puente de unión necesario lo dará InputStreamReader, que acepta un InputStream como argumento del constructor y es una clase derivada de Reader.
5
Aurelio López Ovando
Introducción a java
6.- Preguntar los datos de una persona (nombre, edad, estatura). import java.io.*; class persona { public void get_name()throws IOException { String nombre; int edad; float estatura; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Como te llamas? "); nombre = in.readLine(); System.out.println("Hola " + nombre); System.out.print("Que edad tiene? "); edad = Integer.parseInt(in.readLine()); System.out.print("Tu estatura? "); estatura = Float.parseFloat(in.readLine()); System.out.println("Edad: " + edad); System.out.println("Estatura: " + estatura); System.out.println("Adios " + nombre); } } class pide_datos { public static void main(String arg[])throws IOException { persona x = new persona(); x.get_name(); }
Leer diferentes tipos de datos. Conversores con String. Imprimir los datos en pantalla.
7.- Programa que pida un número y determine si es par o impar import java.io.*; class test_par { public void is_par()throws IOException { int nume; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Teclea un numero: "); nume = Integer.parseInt(in.readLine()); if(nume % 2 ==0) System.out.println("Es par..."); else System.out.println("No es par"); } }
Objetivo: Entender el uso de condiciones. Una condición evalúa una expresión como verdadero o falsa. Puede contener o no un bloque de código dependiendo del número de líneas que tenga. Explicar el operador %
class par { public static void main(String arg[])throws IOException { test_par x = new test_par(); x.is_par(); } } 6
Aurelio López Ovando
Introducción a java
8 .- Determinar en base a un promedio se un alumno es acreedor de una beca, para ser acreedor de una beca se debe cumplir con un promedio general mayor de 9.0 y no haber tenido ninguna falta durante el ciclo escolar. import java.io.*; class becado { public void becalo()throws IOException { float prom; int faltas; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Promedio del alumno: "); prom = Float.parseFloat(in.readLine()); System.out.print("Numero de faltas en el ciclo escolar: "); faltas = Integer.parseInt(in.readLine()); if(prom > 9.0 && faltas == 0) { System.out.println("El alumnos puede ser becado"); System.out.println("Favor de iniciar los trámites correspondientes."); } else { System.out.println("El alumno no puede ser becado"); if(prom0) System.out.println("Ha tenido faltas..."); } } }
Condiciones anidadas Operadores lógicos Bloques de código
class beca { public static void main(String arg[])throws IOException { becado x = new becado(); x.becalo(); } }
CONVERSIONES En muchas ocasiones hay que transformar una variable de un tipo a otro, por ejemplo de int a double, o de float a long. La conversión entre tipos primitivos se realiza de modo automático (conversiones implícitas), estas conversiones se hacen al mezclar variables de distintos tipos en expresiones matemáticas o al ejecutar sentencias de asignación en las que el miembro izquierdo tiene un tipo distinto (más amplio) que el resultado de evaluar el miembro derecho . Las conversiones de un tipo de mayor a otro de menor precisión requieren una orden explícita del programador, pues son conversiones inseguras que pueden dar lugar a errores (por ejemplo, para pasar a short un número almacenado como int, hay que estar seguro de que puede ser representado con el número de cifras binarias de short). A estas conversiones explícitas de tipo se les llama cast. El cast se hace poniendo el tipo al que se desea transformar entre paréntesis, por ejemplo, long result; result = (long) (a/(b+c));
7
Aurelio López Ovando
Introducción a java
9.- A un trabajador se le paga 80.00 por hora de trabajo, su jornada normal de trabajo a la semana debe ser de 40 horas, si hace mas de ese número cada hora extra se le pagará una bonificación de $20.00 por cada hora extra, hacer un programa que en base al número de horas trabajadas determine cuanto se le debe pagar a un trabajador. import java.io.*; class salario { public void calcular()throws IOException { int ht,he=0; float the,th,tp; BufferedReader dat = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Horas trabajadas: "); ht = Integer.parseInt(dat.readLine()); if(ht>40) he = ht - 40; th = (float)(ht * 80.00); the = (float)(he * 20.00); tp = th + the; System.out.println("Total a pagar: " + tp); } } class jornada_trabajo { public static void main(String arg[])throws IOException { salario Salario = new salario(); Salario.calcular(); } }
Mostrar las conversiones implícitas y explicitas
Ciclos Son estructuras de repetición. Bloques de instrucciones que se repiten un número de veces mientras se cumpla una condición o hasta que se cumpla una condición. Existen tres construcciones para estas estructuras de repetición: Bucle for. Bucle do-while. Bucle while.
Ciclo for Como regla general puede decirse que se utilizará el ciclo for cuando se conozca de antemano el número exacto de veces que ha de repetirse un determinado bloque de instrucciones. for (inicialización ; condición ; incremento) bloque instrucciones
Ciclo do … while Se utilizará el ciclo do-while cuando no se conoce exactamente el número de veces que se ejecutará el bucle pero se sabe que por lo menos se ha de ejecutar una. Ciclo do-while. do bloque instrucciones while (Expresión); 8
Aurelio López Ovando
Introducción a java
Ciclo while Se utilizará el bucle while-do cuando es posible que no deba ejecutarse ninguna vez. while (Expresión) bloque instrucciones
8.- Mostrar los primeros 50 números naturales Ciclo for class ciclo_1 { public void muestra() { int i; for(i=0;i0;i--) System.out.println(i); } }
Ciclo do…while class ciclo_1 { public void muestra() { int i=0; do { System.out.println(i); i++; } while(i