manual de java

25
Jesús Navarro | Programación orientada a objetos | 01 de noviembre de 2015 Manual interno de Java JAVA SE 8

Upload: jesus-navarro

Post on 14-Feb-2017

238 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Manual de Java

Jesús Navarro | Programación orientada a objetos | 01 de noviembre de 2015

Manual interno de JavaJAVA SE 8

Page 2: Manual de Java

P á g i n a | 1

JavaJava es un lenguaje de programación orientado a objetos que se popularizó a partir del lanzamiento de su primera versión comercial de amplia difusión, la JDK 1.0 en 1996. Actualmente es uno de los lenguajes más usados para la programación en todo el mundo.

Este manual está basado en Java SE (Standard Edition) en su versión 8 cuya fecha de lanzamiento fue en marzo del 2014. Para mayo del 2015 Java se ejecuta en más de 7 billones de dispositivos y tiene una comunidad de más de 9 millones de desarrolladores a nivel mundial.

Palabras reservadasLas palabras reservadas son identificadores predefinidos que tienen un significado para el compilador y por tanto no pueden usarse como identificadores creados por el usuario en los programas.

abstract continue for       new          switchassert default goto package synchronize

dboolean do if private thisbreak      double   implements protected throwbyte       else      import       public         throwscase      enum instanceof  return        transientcatch     extends   int          short          trychar      final    interface   static         voidclass      finally  long         strictfp       volatileconst      float    native       super          while

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 3: Manual de Java

P á g i n a | 2

Tipo de datosTipos de datos primitivos

Tipo de dato

Representación

Tamaño (Bytes)

Rango de valores

Valor por defecto

Clase asociada

byte Numérico Entero con

signo

1 -128 a 127 0 Byte

short Numérico Entero con

signo

2 -32768 a 32767 0 Short

int Numérico Entero con

signo

4 -2147483648 a 2147483647

0 Integer

long Numérico Entero con

signo

8 -9223372036854775

808 a 9223372036854775

807

0 Long

float Numérico en Coma flotante de precisión

simple Norma IEEE 754

4 ± 3.4x10-38 a ± 3.4x1038

0.0 Float

double Numérico en Coma flotante de precisión

simple Norma IEEE 754

8 ± 1.8x10-308 a ± 1.8x10308

0.0 Double

char Carácter Unicode

2 \u0000 a \uFFFF \u0000 Character

boolean Dato lógico - True o False false Boolean

void - - - - Void

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 4: Manual de Java

P á g i n a | 3

Operadores aritméticos

Nombre Símbolo Asignación Ejemplo

Suma “+” “+=” “x+y”

Resta “-” “-=” “x-y”

Multiplicación “*” “*=” “x*y”

División “/” “/=” “x/y”

Modulo “%” “%=” “x%y”

Incremento “x++” n/d “x++”

Decremento “x--” n/d “x—“

Operadores relacionales y lógicos

Nombre Símbolo Ejemplo

Asignación “ = ” “ x=5 ”

Comparación “ == ” “ x==y ”

Diferente “ != ” “ x!=y ”

Menor que “ < ” “ x<y ”

Menor o igual que “ <= ” “ x<=y ”

Mayor que “ > “ “ x>y ”

Mayor o igual que “ >= ” “ x=>y ”

NOT “ ! ” “ !x ”

AND “ && ” “ x&&y ”

OR “ || ” “ x||y ”

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 5: Manual de Java

P á g i n a | 4

XOR “ ^ ” “ x^y ”

DocumentaciónCada programa que se realice deberá contar con la información necesaria para saber quién lo hizo, versión y fecha, así como el debido uso de los comentarios necesarios para el mantenimiento del código.

Cada programa contara con la siguiente información:

Programa: Hacer referencia al nombre del programa

Utilidad: Para qué sirve el programa

Programador: Siempre puede haber más de uno

Fecha: La fecha en que se realiza la última modificación a la versión correspondiente

Versión: Modificaciones mayores hacen que cambie el primer digito, menos solo el decimal

Changelog: Lista de cambios entre versiones del programa

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 6: Manual de Java

P á g i n a | 5

Variables y ConstantesUna variable es una zona de memoria donde se almacena un valor dado, asignándole un nombre para su posterior referencia. Una constante es una variable a la que no se le puede modificar el valor después de su declaración. Para declarar una constante en Java se utiliza la palabra final delante de la declaración de la variable.

Modificadores de accesoSe utilizan para definir el nivel de ocultación o visibilidad de los atributos, funciones y métodos, así como el de la misma clase. Ordenados de menor a mayor visibilidad los modificadores de acceso son los siguientes:

Modificador de acceso Efecto Aplicable en

private Solo puede ser usado en el interior de su propia clase

Atributos

Métodos

Sin modificador Solo puede ser usado por las clases dentro de su mismo paquete

Clases

Atributos

Métodos

protected El elemento puede ser utilizado por cualquier clase dentro de su paquete y por cualquier subclase

Atributos

Métodos

public El elemento es visible Clases

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 7: Manual de Java

P á g i n a | 6

desde cualquier clase Atributos

Métodos

Programación estructuradaLa programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación.

SENTENCIA IFEn programación, una sentencia condicional es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición. (Ejemplo 1).

Código

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 8: Manual de Java

P á g i n a | 7

SWITCHLa instrucción switch es una forma de expresión de un anidamiento múltiple de instrucciones if ... else. Su uso no puede considerarse, por tanto, estrictamente necesario, puesto que siempre podrá ser sustituida por el uso de if. No obstante, a veces nos resultará útil al introducir mayor claridad en el código. (Ejemplo 2).

Código

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 9: Manual de Java

P á g i n a | 8

BUCLE FOREl bucle for se utiliza para repetir una o más instrucciones un determinado número de veces. De entre todos los bucles, el for se suele utilizar cuando sabemos seguro el número de veces que queremos que se ejecute. (Ejemplo 3).

BUCLE WHILEEl Bucle while o bucle mientras es una estructura cuyo propósito es repetir un bloque de código mientras una condición se mantenga verdadera. (Ejemplo 4).

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 10: Manual de Java

P á g i n a | 9

BUCLE DO WHILELa sentencia de iteración do-while es de tipo pos prueba. Primero realiza las acciones luego pregunta. (Ejemplo 5).

Arreglos Un array (arreglo) en Java es una estructura de datos que nos permite almacenar un conjunto de datos de un mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar luego durante la ejecución del programa, como sí puede hacerse en otros lenguajes. Los arrays se numeran desde el elemento cero, que sería el primer elemento, hasta el n-1 que sería el último elemento. Es decir, si tenemos un array de 5 elementos, el primer elemento sería el cero y el último elemento sería el 4.

Aclarar que los valores por defecto son los siguientes:

a) Para números el valor cero “0”

b) Para cadenas y letras el valor vacío

c) Para booleanos el valor false

Array unidimensional (Ejemplo 6):

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 11: Manual de Java

P á g i n a | 10

ARRAY MULTIDIMENSIONALEn Java es posible crear arrays con más de una dimensión, pasando de la idea de lista, vector o matriz de una sola fila a la idea de matriz de “m x n” elementos, estructuras tridimensionales, tetra dimensionales, etc. Gráficamente podría ser descrito así:

int array1 [][] = new int [2][3];

[0][0] [0][1] [0][2]

[1][0] [1][1] [1][2]

Hay que recordar que los elementos empiezan a numerarse por 0. Así, la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [1][2].

Array multidimensional (Ejemplo 7);

FuncionesUna función es un fragmento de código que es llamado por su nombre. Se pueden pasar los datos a operar en (parámetros) y, opcionalmente, puede devolver datos (el valor de retorno).

Función void (No regresa datos)

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 12: Manual de Java

P á g i n a | 11

Función return (Regresa datos)

Llamada a una función (Ejemplo 8)

Programación orientada a objetosLa programación Orientada a objetos (POO) es un paradigma de programación más cercano a como expresaríamos las cosas en la vida real. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita entender un poco con este tipo de programación. A continuación, se resumen los conceptos básicos de POO.

Objeto: Entidad existente en la memoria del ordenador que tiene unas propiedades (atributos o datos sobre sí mismo almacenados por el objeto) y unas operaciones disponibles específicas (métodos).

Clase: Representa al conjunto de objetos que comparten una estructura y un comportamiento comunes. Se puede considerar como una plantilla: Define los atributos que componen ese tipo de objetos y los métodos que pueden emplearse para trabajar con esos objetos. Las clases siguen una jerarquía: Superclase, Clase y Subclase.

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 13: Manual de Java

P á g i n a | 12

Abstracción: Podríamos definir la abstracción como la "acción de aislar

mentalmente o considerar por separado las cualidades de un objeto, considerar un objeto en su esencia". ¿Qué quiere decir esta definición? A través de la abstracción conseguimos extraer las cualidades principales sin detenernos en los detalles.

Encapsulamiento: Se denomina así al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que sólo se pueda cambiar mediante las operaciones definidas para ese objeto. Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado, se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

Herencia: Consideraremos la herencia como la transmisión de los métodos y atributos de una clase a otra. Gracias a la herencia se pueden establecer jerarquías entre clases. Establecer una jerarquía es un proceso subjetivo, que depende del programador y de los matices de apreciación de cada uno.

Polimorfismo: Esta característica permite definir distintos comportamientos para un método dependiendo de la clase sobre la que se realice la implementación. En todo momento tenemos un único medio de acceso, sin embargo, se podrá acceder a métodos distintos.

MétodosUn método es una función que es propiedad de un objeto (en algunos orientado a objetos de sistemas, es más correcto decir que es de titularidad de una clase). Ser "propiedad" de un objeto/clase significa que se refiere al método a través del objeto/clase; por ejemplo, en Java si desea invocar el método "SumaNumeros()" propiedad de la clase "Ejercicio8" entonces se puede crear una instancia llamada “Operación” y se escribe "Operación.SumaNumeros()". Para mandar llamar un método necesitamos instanciar la clase donde se encuentra y después mandamos llamar el método.

Instancia de un objeto (Ejercicio 9)

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 14: Manual de Java

P á g i n a | 13

SOBRECARGA DE METODOS (OVERLOADING)Un método sobrecargado (Ejemplo 10) se utiliza para reutilizar el nombre de un método, pero con diferentes argumentos. Las reglas para sobrecargar un método son las siguientes:

-Los métodos sobrecargados deben de cambiar la lista de argumentos

-Se puede cambiar el tipo de retorno

-Se puede cambiar el modificador de acceso

-Se pueden crear nuevas o extender las excepciones

-Un método puede ser sobrecargado en la misma clase o en una subclase

La forma en que se manda llamar un método sobrecargado es como cualquier otro método, para diferenciar entre el método original y el sobrecargado es dependiendo del tipo de argumento que se envié, es decir, si tenemos dos métodos, uno que acepta de parámetro un float y el otro un int, dependiendo del tipo de parámetro que le pasemos será el método que se ejecuta.

SOBRESCRITURA DE METODOS (OVERRIDING)La sobrescritura es la forma por la cual una clase que hereda puede re-definir los métodos de su clase Padre, de esta manera puede crear nuevos métodos con el mismo nombre de su superclase. Es decir, si se tiene un método en la clase padre llamado revisar() se puede crear en la clase hija un método también llamado revisar() pero implementando lo que se necesite. Existen reglas para sobre-escribir métodos que son las siguientes:

-A diferencia de los métodos sobrecargados los argumentos en los métodos sobrescritos no deben de cambiar

-En un método sobrescrito no se puede cambiar el tipo de retorno, excepto por los subtipos del tipo declarado originalmente

-Las excepciones en estos métodos pueden reducirse o eliminarse, pero no se pueden crear nuevas o ampliar las ya establecidas

-Los modificadores de acceso no pueden hacerse más, pero si pueden ser menos restrictivos

-En los métodos sobrecargados los argumentos son los que determinan que método es el que se invocara sin embargo en los métodos sobrescritos el tipo de objeto determina que método es el elegido

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 15: Manual de Java

P á g i n a | 14

Librería MathEn cuanto a las funciones matemáticas en Java, las funciones disponibles vienen definidas en la clase Math. Hay muchas funciones disponibles. Se puede consultar la lista completa en la documentación oficial del API de Java (según versión de Java en uso, por ejemplo, para la versión 8 ver http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html).

Funciones de mayor importancia en la librería Math

Función Matemática

Significado Ejemplo Resultado

abs Valor absoluto int x = Math.abs(2.3); x=2;

atan Arco Tangente double x = Math.atan(1);

x= 0.7853981633;

sin Seno double x = Math.sin(0.5);

x= 0.479425538;

cos Coseno double x = Math.cos(0.5);

x = 0.87758256189037;

tan Tangente double x = Math..tan(0.5);

x = 0.54630248984379;

exp Exponenciación

double x = Math.exp(1);

x= 2.71828182845904;

log Logaritmo double x= Math.log(2.7172);

x= 0.99960193833500;

pow Potencia double x = Math.pow(2.3);

x = 8.0;

round Redondeo double x = Math.round(2.5);

x = 3;

random Numero aleatorio

double x = Math.random();

x= 0.20614522323378;

Observaciones:

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 16: Manual de Java

P á g i n a | 15

- Las funciones matemáticas, al pertenecer a la clase Math, se invocan siempre de la siguiente manera: Math.funcion(argumentos)

- Las funciones relacionadas con ángulos (atan, cos, sin, tan) trabajan en radianes. Por tanto, para operar con grados, tendremos que realizar la conversión oportuna

- La función random, permite generar números aleatorios en el rango ]0,1[. Por tanto, el 0 y el 1 están excluidos

- La función exponenciación neperiana o exponenciación de e, matemáticamente significa ex, que en Java sería Math.exp(x), donde x es un número real y la base es la constante neperiana e= 2.7172...

- La función logaritmo neperiano, matemáticamente significa Ln x, que en Java correspondería a la expresión Math.log(x).

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 17: Manual de Java

P á g i n a | 16

EjemplosEJEMPLO 1

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 18: Manual de Java

P á g i n a | 17

EJEMPLO 2

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 19: Manual de Java

P á g i n a | 18

EJEMPLO 3

EJEMPLO 4

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 20: Manual de Java

P á g i n a | 19

EJERCICIO 5

EJERCICIO 6

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 21: Manual de Java

P á g i n a | 20

EJERCICIO 7

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 22: Manual de Java

P á g i n a | 21

EJERCICIO 8

EJERCICIO 9

MANUAL INTERNO DE JAVA | JAVA SE 8

Page 23: Manual de Java

P á g i n a | 22

EJERCICIO 10

EJERCICIO 11

MANUAL INTERNO DE JAVA | JAVA SE 8