sábado, 10 de octubre de 2009

PROGRAMANDO EN JAVA

INTRODUCCION






¿Qué es JAVA?
Java es una plataforma virtual de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales (“Diferentes plataformas").
El lenguaje de programación, mismo. La máquina virtual de Java o JRE, que permite la portabilidad en ejecución. El API Java, una biblioteca estándar para el lenguaje.
Esta máquina virtual permite ejecutar más de un programa Java al mismo tiempo, mejorando mucho el manejo de la memoria. Por último, es posible encontrar bastantes benchmarks en donde los programas Java son más rápidos que programas C++ en algunos aspectos.



DESCRIPCION DE IDE DE ECLIPSE

Usualmente se utiliza un programa llamado Eclipse, (Eclipse es una plataforma basada en programación para JAVA, ya que permite la ejecución de datos.) ya que es muy sencillo de manejar y entender.






















Primero dejaremos definido que significa IDE que es un entorno de desarrollo integrado o en inglés Integrated Development Environment ('IDE') es un programa compuesto por un conjunto de herramientas para un programador.



FUNDAMENTOS DEL LENGUAJE JAVA.

Introducción.
Muchos lectores que hayan programado en algún lenguaje, comprenderán sin dificultad este capítulo. Sin embargo, se recomienda leerlo con atención ya que incluso en los aspectos básicos hay diferencias entre unos lenguajes y otros. En esta introducción aprenderemos aspectos básicos del lenguaje Java: la primera aplicación, los comentarios, los tipos básicos de datos, los operadores, las sentencias condicionales e iterativas.
Clases y objetos.
Este capítulo es fundamental para entender la Programación Orientada a Objetos. Aprenderemos el concepto de clase, a crear objetos de una determinada clase, a acceder desde dichos objetos a los miembros dato y a los miembros función, a distinguir entre miembros estáticos y no estáticos, y muchas otras cosas más. Estudiaremos dos entidades muy importantes en cualquier lenguaje de programación: los arrays, y las cadenas de caracteres o strings, además de otras clases importantes en lenguaje Java
La herencia y el polimorfismo.
Este es otro de los aspectos fundamentales de la Programación Orientada a Objetos. Trataremos de la herencia, de la reutilización del código, del concepto de clase abstracta y su diferencia con el concepto de interface. El significado de polimorfismo y de enlace dinámico. Aprenderemos que todas las clases en Java descienden de la clase base Object, que proporciona una funcionalidad mínima. La utilidad de las clases y de los métodos finales.
La parte más difícil de entender es el polimorfismo, es decir, la técnica que permite pasar un objeto de una clase derivada a funciones que conocen el objeto solamente por su clase base.
Las excepciones.
Los programadores en cualquier lenguaje se esfuerzan por escribir programas libres de errores. Sin embargo, es muy difícil que los programas reales se vean libres de ellos. Aunque el lenguaje Java es muy robusto, existen situaciones que pueden provocar un fallo en el programa, a estas situaciones se denominan excepciones. Vamos a ver cómo se capturan las excepciones estándar, y aprenderemos a definir nuestras propias excepciones, a lanzarlas cuando se produce una situación peculiar, y a capturarlas.
Pasando datos a una función.
Pasar datos a una función es uno de las dificultades con las que se enfrenta un programador del lenguaje C++, ya que hay tres formas: por valor, por dirección y por referencia. En el lenguaje Java lo simplifica extraordinariamente, ya que todo se pasa por valor, pero los efectos son distintos, cuando se pasan tipos básicos de datos, de cuando se pasan objetos de una determinada clase.
También, hay una gran diferencia en el mecanismo que nos permite duplicar un objeto, o de crear un objeto que es idéntico a otro dado. En el lenguaje C++ se emplea el constructor copia, mientras que en el lenguaje Java se redefine la función miembro clone de la clase base Object.
Las clases Vector y StringTokenizer.
Finalmente trataremos dos clases que son muy útiles para el programador: la clase Vector, y la clase StringTokenizer. La clase Vector es similar a un array, pero no pone límite en el número máximo de objetos que se pueden guardar. Además, nos proporciona un conjunto de métodos para acceder, añadir o eliminar elementos.
La clase StringTokenizer, nos permite dividir un string dado en trozos o tokens. Su utilidad se pone de manifiesto en el tratamiento de los datos que se introducen un un control área de texto.
Archivos.
Este capítulo no es esencial para el estudio de los applets ya que por razones de seguridad los applets no pueden acceder a los archivos del ordenador cliente, por lo que puede ser omitido en una primera lectura de este curso.
Sin embargo, el lenguaje Java no está diseñado exclusivamente para crear applets que corren en una ventana del navegador, sino también aplicaciones como cualquier otra que corremos en los entornos Windows, Unix, Macintosh o Linux. Muchas aplicaciones tienen acceso a los dispositivos estándar y a los archivos en disco, por lo que el lenguaje Java define un conjunto de clases agrupadas en jerarquías que describen los distintos flujos de datos.
Una de las facetas más potentes del lenguaje Java es la denominada serialización, que permite convertir los objetos en un flujo de bytes, marcando tan solo la clase que describe dichos objetos como Serializable. A su vez, esta característica del lenguaje nos permite reconstruir los objetos leyendo un flujo de datos que proviene de una fuente normalmente un archivo en disco o incluso de la propia Red.



ESTRUCTURAS DE UNA CLASE
Para insertar una clase nueva debemos seleccionar el botón de “New JAVA Class”.









Y después nos abrirá un cuadro en el cual se tiene que insertar el nombre de la clase y el tipo clase.















Después se le da Finish y creara una clase.
















IDENTIFICADORES
Los identificadores son un conjunto de palabras y números, siendo la primera una letra. Java posee identificadores reservados por lo que hay ciertas palabras que no podremos definirlas nosotros.
























Si el usuario define variables de entrada y las llama de la misma manera que un identificador el programa marcara un error y se verá obligado a cambiar el nombre.Datos de algunos identificadores.



TIPOS DE DATOS
El manejo de la información en cualquier lenguaje de programación se realiza mediante diferentes clases de datos.

Entero (Integer) Números enteros sin parte decimal.
Caracter (Char) Caracteres del código ASCII
Boleano (Boolean) Pueden contener los valores de falso o verdadero
Real Números que pueden incluir una parte decimal
Cadena (String) En una secuencia de caracteres que se trata como un solo dato.




Tipos de datos
Un programa debe ser capaz de manejar diferentes tipos de datos, como pueden ser números enteros, reales, caracteres, cadenas de caracteres, etc. Para lograr el manejo de toda esta información . Algunos de los más importantes se citan en seguida:

Tipos enteros
En esta categoría generalmente cuenta con 5 tipos diferentes, cada uno abarca un rango específico de valores y utilizan una diferente cantidad de memoria dependiendo de ese rango. Naturalmente el trabajar con rangos menores nos ofrece una mayor velocidad y menor espacio en memoria, pero si se utilizan enteros largos se cuenta con mayor precisión. Los tipos de enteros en son:

Tipo Rango de valores que acepta
Integer (Entero) -32,768 a 32,767
Word (Palabra) 0 a 65535
ShortInt (Entero corto) -128 a 127
Byte 0 a 255
LongInt (Entero largo) -2,147,483,648 a 2,147,483,648




Al utilizar los tipos enteros es posible representar en el programa un número en formato hexadecimal, para hacer esto solo se le antepone el símbolo "$" al valor hexadecimal, al momento de visualizar dicho valor, o utilizarlo en alguna operación será como decimal.
Tipos realesLos números reales son aquellos que cuentan con una parte decimal. En algunos lenguajes de programación se tienen varios tipos de datos reales, pero no se puede utilizar, más que el tipo real, en máquinas que no cuenten con un coprocesador matemático. Los tipos de datos reales son:

Tipo Rango de valores que acepta
Real ) 2.9E-39 a 1.7E38
Single 1.5E-45 a 3.4E38
Double 5.0E-324 a 1.7E308
Extended 1.9E-4851 a 1.1E4932
Comp -9.2E18 a 9.2E18




Los números reales deben llevar por fuerza al menos un dígito de cada lado del punto decimal así sea éste un cero. Como ejemplo, el número 5 debe representarse como: 5.0, el .5 como 0.5, etc. En este tipo de datos se utiliza la notación científica, que es igual a la de las calculadoras, el dígito que se encuentra a continuación de la E representa la potencia a la que se elevará el número 10 para multiplicarlo por la cantidad a la izquierda de dicha E:


3.0E5 = 3.0 * 10^5 = 3.0 * 100000 = 300000
1.5E-4 = 1.5 * 10^-4 = 1.5 * 0.0001 = 0.00015




Tipos carácter
Los caracteres son cada uno de los símbolos que forman el código ASCII.. Los caracteres se especifican entre apostrofes.


El tipo Char es un tipo ordinal en algunos lenguajes de programación, esto quiere decir que sus elementos válidos siguen una secuencia ordenada de valores individuales. La secuencia de caracteres para este tipo corresponde al número del código ASCII, del 0 al 255.
Es posible accesar a cada uno de los caracteres utilizando un signo # antes de su valor correspondiente, por ejemplo, la letra A puede ser representada como #65, el retorno de carro, o enter, se representa como #13, y así cualquier carácter. El tamaño por defecto para un tipo string es de 255 caracteres, pero es posible definir uno más pequeño utilizando el siguiente formato: Variable: Cadena [Tamaño]. Donde Variable es la variable a definir y Tamaño es el número máximo de caracteres que podrá contener esa variable (naturalmente mayor a 0 y menor a 256). Es posible acceder a un solo carácter de una cadena utilizando inmediatamente después del nombre de la misma la posición del carácter encerrada entre corchetes.
Tipo cadenaLas cadenas son secuencias de caracteres o arreglos que tienen una longitud máxima de 255 caracteres. Se definen entre apostrofes.


Tipos lógicos
Este tipo de datos tienen la peculiaridad de que solo pueden tomar dos tipos de datos: verdadero o falso, el verdadero puede ser representado por su nombre en inglés: True y el falso por False; también se representan por 1 y por 0 respectivamente.
El tipo está definido como Boolean. Los datos lógicos tienen una enorme aplicación en la evaluación de ciertos procesos, así como en el control de flujo de los programas.




ENTRADA Y SALIDA DE DATOS.


Para que eclipse identifique la entrada de datos por el usuario se debe de poner la siguiente instrucción:
import java.util.Scanner;
Esta instrucción indica que en esta clase se van a introducir datos (Entrada de datos)
Scanner entrada=new Scanner (System.in);
En esta instrucción el programa pedirá los datos al usuario.
Ahora para la salida de datos se utiliza la siguiente instrucción.
System.out.print();
Si el dato que va de salida está entre comillas imprimirá tal y como esta.

OPERADORES Y EXPRECIONES.

Los operadores relacionales son símbolos que se usan para comparar dos valores en los cuales existen varios tipos.
Operadores Aritméticos: Los habituales
· Suma + .
· Resta - .
· Multiplicación * .
· División / .
· Resto de la División % .
· Operadores de Asignación: El principal es '=' pero hay más operadores de asignación con distintas funciones que explicamos brevemente ahora.
· '+=' : op1 += op2 à op1 = op1 + op2
· '-=' : op1 -= op2 à op1 = op1 - op2
·'*=' : op1 *= op2 à op1 = op1 * op2
·'/=' : op1 /= op2 à op1 = op1 / op2
· '%=' : op1 %= op2 à op1 = op1 % op2
Operadores Unarios: El mas (+) y el menos (-). Para cambiar el signo del operando. Operador Instanceof: Nos permite saber si un objeto pertenece a una clase o no.
· NombreObjeto instanceof NombreClase
Operadores Incrementales: Son los operadores que nos permiten incrementar las variables en una unidad. Se pueden usar delante y detrás de la variable dependiendo de lo que queramos, es decir, si queremos que incremente o viceversa antes de utilizar o lo contrario.
· '++'
· '--'
Operadores Relacionales: Permiten comparar variables según relación de igualdad/desigualdad o relación mayor/menor. Devuelven siempre un valor boolean.
· '>': Mayor que
· '<': Menor que
· '==': Iguales
· '¡=': Distintos
· '>=': Mayor o igual que
· '<=': Menor o igual que
· Operadores Lógicos: Nos permiten construir expresiones lógicas.
·'&&' : devuelve true si ambos operandos son true.
·'' : devuelve true si alguno de los operandos son true.
·'!' : Niega el operando que se le pasa.
·'&' : devuelve true si ambos operandos son true, evaluándolos ambos.
·'' : devuelve true uno de los operandos es true, evaluándolos ambos.
Operador de concatenación con cadena de caracteres '+':
·Por Ejemplo: System.out.println("El total es"+ result +"unidades");
Operadores que actúan a nivel de bits: Son mucho menos utilizados por eso los explicamos mas por encima.
· '>>': desplazamiento a la derecha de los bits del operando
·'<<': desplazamiento a la izquierda de los bits de operando
·'&': operador and a nivel de bit.
· '': operador or a nivel de bit

Estructuras de control
Nos permite cambiar el orden de las declaraciones ejecutadas en nuestros programas. Hay dos tipos de estructuras de control:
Estructuras de selección / decisión control structures
Nos permite seleccionar secciones específicas del código para ser ejecutado, a partir de una condición.
Estructuras de iteración / repetition control structures
Nos permite ejecutar secciones específicas del código una cantidad determinada de veces.
Estructuras de selección
Estructuras de selección
Declaraciones que nos permiten seleccionar y ejecutar bloques específicos del código mientras otras partes son ignoradas.
Fuente: http://www.slideshare.net segun © 2009 SlideShare Inc.
FUNCIONES DE BIBLIOTECA.
Math.PI: es para sacar el π que es 3.1416
Math.abs: valor absoluto de x
Math.cos:coseno de x
Math.sin:seno de x
Math.tan:tangente de x
Math.atan:arcontangente de x
Math.exp:es el exponencial que vale 2.718281828 …
Math.log: logaritmo base 10 de x
Math.pow: elevacion de x
Math.sqrt: raiz cuadrada de x
Math.round: convertir al entero más cercano x
Math.floor: Devuelve el valor redondeado a la baja del número o expresión especificada
Math.min: el valor mínimo de x
Math.max: el valor máximo de x
Math.random: número aleatorio de x
Math.asin: es el arcoseno de x
Math.acos: arcocoseno de x
Math.cosh: es el coseno hiperbólico de x
Math.sinh: es el seno hiperbólico de x
Math.tanh: es la tangente hiperbólica de x
Math.trunc: extraer parte entera de x
Math.ln: logaritmo natural de x

No hay comentarios:

Publicar un comentario