45
JAVA BASICO Ing. Marco Antonio Toscano Freire

Fundamentos de Java

Embed Size (px)

DESCRIPTION

Diapositiva donde se explica los fundamentos de Java, su estructura, operadores.

Citation preview

Page 1: Fundamentos de Java

JAVA BASICO

Ing. Marco Antonio Toscano Freire

Page 2: Fundamentos de Java

CONCEPTOS BÁSICOS

do -while

while

for

Page 3: Fundamentos de Java

::.Estructura Programa JAVA.::::.Estructura Programa JAVA.::

• Un programa java al igual que cualquier lenguaje de programación

presenta una estructuración en cuanto a su diseño, en el caso de JAVA se

puede apreciar los siguiente elementos:

– Paquete

– Librería(s)

– Definición Clase

– Definición de Variables

– Constructor(es)

– Método(s)

– Innerclass(es)

Page 4: Fundamentos de Java

Qué es un Paquete?

Un paquete no es más que una

agrupación de clases que nos permiten

organizar mejor nuestro trabajo

separando nuestras clases que cumplen

con una cierta funcionalidad de otras. La

razón principal para usar paquetes es

garantizar un único nombre de clases.

El paquete se denota con la palabra

reservada package y es la primera línea a

colocarse en una aplicación java.

::.Paquetes.::::.Paquetes.::

Page 5: Fundamentos de Java

Las librerías de Java son distribuidas a través de paquetes agrupados

de acuerdo a su funcionalidad, por ejemplo las clases relacionadas con

la manipulación de operaciones aritméticas se encuentran agrupadas

en el paquete llamado java.math, las clases relacionadas con

interfaces de usuario, imágenes y gráficos están en el paquete

java.awt.

::.Paquetes.::::.Paquetes.::

Page 6: Fundamentos de Java

Los paquetes físicamente representan

carpetas organizadas jerárquicamente, por

ejemplo si creamos un paquete llamado

curso.java.basico en nuestra

computadora tendremos la siguiente

estructura de carpetas:

::.Paquetes.::::.Paquetes.::

Page 7: Fundamentos de Java

Qué es un Librería?

Una librería es conjunto de clases agrupadas en paquetes que nos

brindan cierta funcionalidad para poder utilizarla dentro de nuestros

programas. JAVA cuenta con un sinnúmero de librerías como por

ejemplo: librerías para el manejo de fechas, sonido, impresión, red etc.

Para utilizar una librería en JAVA debemos utilizar la palabra

reservada import , lo cual va siempre luego del paquete. Para poder

utilizar una librería(s) se puede realizarlo de dos maneras:

Ya sea importando solamente la clase donde esta la funcionalidad

que necesitemos

Importando todas las clases referidas a ese ámbito.

::.Librerías.::::.Librerías.::

Page 8: Fundamentos de Java

Los modificadores de acceso nos permiten acceder o no a ciertas

clases, métodos, variables dentro de nuestra aplicación.

En Java manejamos cuatro niveles de acceso pero solo tres

modificadores de acceso los cuales son public, private, protected,

el cuarto nivel de acceso es conocido como package o default el

cual es utilizado por defecto cuando no se hace uso de ninguno otro.

Los tres modificadores de acceso son aplicables mara la mayoría de

declaración de métodos y variables.

En cuanto a lo que respecta a la declaración de las clases éstas solo

pueden ser public o default.

::.Modificadores de Acceso.::::.Modificadores de Acceso.::

Page 9: Fundamentos de Java

Cuando declaramos una clase como public estamos dando permiso a que todas

las clases de todos los paquetes puedan acceder a ella.Se debe tener en cuenta

que se puede modificar una declaración de clase usando las palabras reservadas

final, abstract.

Cuando una variable o método es declarada public significa que todas las otras

clases independiente del paquete al que pertenece pueden acceder al miembro

pero siempre que la clase sea pública (visible).

Solo puede haber una sola clase pública en un archivo java.

Acceso Público

::.Modificadores de Acceso.::::.Modificadores de Acceso.::

Page 10: Fundamentos de Java

Los miembros declarados como private no pueden ser accedidos por

algún código en alguna otra clase que la clase en la cual el miembro

privado fue declarado.

Acceso Privado

Acceso Protegido y por Defecto

Los modificadores de acceso protected y default son casi similares

pero con diferencia crítica . Un miembro default puede ser accedido

solo si la clase que está accediendo al miembro pertenece al mismo

paquete mientras que un miembro protected puede ser accedido por

una subclase aún si la subclase está en un diferente paquete.

::.Modificadores de Acceso.::::.Modificadores de Acceso.::

Page 11: Fundamentos de Java

::.Resumen Visibilidad.::::.Resumen Visibilidad.::

A continuación se muestra una tabla resumen donde podemos apreciar un cuadro resumido del nivel de visibilidad que tienen los miembros de una clase (atributos, métodos) dentro de todo el espectro de un programa.

Cuadro referenciado del manual de la Sun

Representación:1Col: Clase Propiamente2Col: Dentro del paquete3Col: Fuera del paquete4.Col: General (Todo)

Page 12: Fundamentos de Java

Para definir una clase tenemos la siguiente sintaxis:

<otros><acceso>class nombreClase

<extend><clasePadre><implements> <clas1><clas2>

{

cuerpo

}

Se debe tomar en cuenta ciertas reglas en cuanto a la definición de la

clase en JAVA:

• El nombre de la clase debe ser el mismo nombre del archivo

físico.

• No puede existir más de una clase public sin embargo puede

existir un sinnúmero de clases embebidas(innerclases) dentro de

la clase principal.

::.Definición Clase.::::.Definición Clase.::

Page 13: Fundamentos de Java

• El identificador <otros> dentro de la sintaxis se refiere a dos palabras

reservadas específicamente abstract y final las cuales utilizándolas

juntamente en la definición de la clase le dan otro comportamiento.

• El identificador <acceso> dentro de la sintaxis se refiere al grado de

visibilidad que va a tener nuestra clase el cual puede ser public,

package o default (no se le escribe).

• Por convención los nombres de clases comienzan con una letra capital

y capitalizan la primera letra de cada palabra que incluya el

identificador; es decir, si el nombre de la clase consta de dos palabras.

Cada primera letra de la palabra irá con mayúscula ejm: TipoCategoria.

::.Definición Clase.::::.Definición Clase.::

Page 14: Fundamentos de Java

• La palabra reservada extends se utiliza para denotar o representar el

paradigma de herencia, debemos destacar que en JAVA no existe

herencia múltiple.

• La palabra reservada implements se utiliza para implementar una o

varias interfaces.

::.Definición Clase.::::.Definición Clase.::

Page 15: Fundamentos de Java

::.Variables.::::.Variables.::

• Una variable es un ítem de dato nombrado por un identificador. Una

variable está conformado por dos elementos importantes que son :

Tipo, Nombre

• El nombre de la variable debe ser un identificador válido, el cual está

determinado por las siguientes características:

– El identificador no puede comenzar con números. Debe comenzar

con letras, con caracteres como ($), ó (_)

– No se puede utilizar palabras reservadas

– Java es sensitivo en cuanto al uso de identificadores, es decir no es

lo mismo prueba que PRUEBA.

– El identificador no puede contener símbolos matemáticos ni

elementos utilizados dentro del lenguaje.

Page 16: Fundamentos de Java

• En lo que respecta al tipo , cada variable maneja un tipo de dato el

cual determina que valor puede manejar la misma y cuales son

operaciones están permitidas sobre ésta.

• Java maneja dos categorías en cuanto a tipo de datos:

– Primitivos: float, int, double, etc…

– Referencia: Array, Clases, Interfaces

Variables: Tipo Dato

Tipo Primitivo.- Una variable de tipo primitivo contiene un simple

valor de tamaño y formato apropiado para su tipo como: un número,

una letra.

::.Variables.::::.Variables.::

Page 17: Fundamentos de Java

::.Variables.::::.Variables.::

Tipo Referencia.- Una variable de tipo referencia es una referencia a un

valor o conjunto de valores representados por la variable, podemos decir

que es como un puntero o referencia a una localización en memoria.

Page 18: Fundamentos de Java

Para definir una variable tenemos la siguiente sintaxis:

<nivel acceso> <static><final>tipo dato identificador

En lo respecta al nivel de acceso una variable puede ser public,

private, protected, package o default los cuales denotan el

grado de visibilidad que tiene la variable en la aplicación.

El tipo de dato puede ser un tipo de dato primitivo o referencial.

Por ejemplo:

::.Definición Variable.::::.Definición Variable.::

Page 19: Fundamentos de Java

El identificador es un nombre para esa variable que cumple con las

reglas básicas de definición para las variables dentro de JAVA.

La palabra reservada static aplicada a una variable permite dos

situaciones:

La variable ocupe un solo lugar de memoria, es decir su valor

puede ser utilizado y manipulado a un modo compartido

A pesar de que pertenezca a la clase, no se necesita instanciar la

clase para poder ocuparla.

En lo respecta a la palabra reservada final , ésta permite que una

variable solo puede ser asignada con un valor una sola vez, cuyo valor

se calcula en tiempo de ejecución. Se puede hacer uso de la

combinación de las palabras reservadas static final para formar una

constante en JAVA.

::.Definición Variable.::::.Definición Variable.::

Page 20: Fundamentos de Java

::.Definición Variable.::::.Definición Variable.::

Page 21: Fundamentos de Java

Para inicializar los diferentes variables (atributos) de una clase o

ejecutar cierta llamada a un método para que realice alguna

operación. JAVA utiliza un “método “ con características adicionales

llamado constructor el cual puede ser implícito o explícito.

Entre las características adicionales que tiene un constructor

tenemos:

Debe ser public

Debe tener el mismo nombre de la clase a la cual pertenece.

No de retornar ningún tipo de dato.

::.Definición Constructor.::::.Definición Constructor.::

Page 22: Fundamentos de Java

Una clase JAVA puede tener varia sobrecarga de constructores, es

decir varios constructores todo dependerá del los tipos de inicialización

que se le quiere dar.

::.Definición Constructor.::::.Definición Constructor.::

Page 23: Fundamentos de Java

Para definir una método tenemos la siguiente sintaxis:

<nivel de acceso><final> <static> tipoRetorno nombreMétodo

(argumentos){cuerpo}

Para el nivel de acceso, se aplican los mismos modificadores de acceso

denotados para las variables los cuales son public, private, protected,

package o default.

La palabra reservada final nos asegura que un método no puede ser

redefinido en una clase que no sea la que se definió.

La palabra reservada static determina que un método no necesite ser

instanciado para poder ser utilizado, para lo cual debemos utilizar variables

tipo static dentro del bloque. Similar a la programación procedimental.

::.Definición Métodos.::::.Definición Métodos.::

Page 24: Fundamentos de Java

El tipo de retorno puede ser void o cualquier otro tipo de dato ya

sea primitivo o referencial

La sintaxis para la definición de los argumentos que toma el

método como parámetros es la siguiente:

(tipoDato variable1, tipoDato variable2, .......... tipoDato

variableN)

::.Definición Métodos.::::.Definición Métodos.::

Page 25: Fundamentos de Java

• Un operador nos permite ejecutar una operación sobre uno, dos o tres

operandos (variables) retornando un valor el cual depende de los

operandos involucrados en la operación.

• En JAVA tenemos tres tipos de operadores:

– Unary Operators.- Soportan notación pos y pre fija, es decir el operador

puede ir antes o después. Por ejemplo: variable++, ++ variable

– Binary Operators.- Utilizan una notación intermedia (infix) , lo cual

significa que los operadores aparecen en medio de los operandos. Por

ejemplo: variableUno = variableDos

– Ternary Operators.- En Java solo existe un operador ternario que

es el siguiente ?: También utiliza una notación intermedia, por

ejemplo: variableA ? variableB : variableC.

::.Operadores.::::.Operadores.::

Page 26: Fundamentos de Java

• Casi todos los operadores funcionan únicamente con datos primitivos.

Las excepciones las constituyen “=" , "==" y "!=", que funcionan con

todos los objetos.

• Los operadores se dividen en cinco categorías:

– Operadores Aritméticos

– Operadores Relaciones y Condicionales:

– Operadores de Desplazamiento

– Operadores de Asignación

– Otros Operadores

::.Operadores.::::.Operadores.::

Page 27: Fundamentos de Java

• Java soporta varios operadores aritméticos para todos los números

enteros y de punto flotantes. Entre estos operadores tenemos: Adición

( + ), Substracción ( - ), Multiplicación ( * ), División ( / ), Módulo

( % ) .

• Cuando se efectúa operaciones entre tipos de datos diferentes el

resultado puede variar de acuerdo a los miembros utilizados en la

operación. Los resultados obedecen al cuadro mostrado a

continuación:

::.Operadores Aritméticos.::::.Operadores Aritméticos.::

Page 28: Fundamentos de Java

Retornado

Tipos de datos

long Ningún operador debe ser flotante o double. Al menos un operador del tipo long

int Ningún operador debe ser flotante o double. Ningún operador long

double Al menos un operador es un double

float Al menos un operador es un float, Ningún operador es un double

::.Operadores Aritméticos.::::.Operadores Aritméticos.::

Page 29: Fundamentos de Java

Adicional a los operadores aritméticos anteriormente mencionados

tenemos los operadores aritméticos cortos (Shorcut Arithmetic

Operators) que muestran en la figura a continuación:

Operador

Tipos de datos

ope++ Incrementa ope en 1, evalúa el valor de ope antes de incrementarlo

++ope Incrementa ope en 1, evalúa el valor de ope después de incrementarlo

ope -- Decrementa ope en 1, evalúa el valor de ope antes de decrementarlo

--ope Decrementa ope en 1, evalúa el valor de ope después de decrementarlo

::.Operadores Aritméticos.::::.Operadores Aritméticos.::

Page 30: Fundamentos de Java

Entre los operadores relacionales que soporta JAVA tenemos los

siguientes: (<), (>), (<=), (>=), (==) y (!=).

Entre los operadores condicionales que soporta JAVA tenemos 5

binarios y 1 unitario, como se muestra a continuación.

::. Operadores Relacionales y Condicionales.::::. Operadores Relacionales y Condicionales.::

Ope Uso Descripción

&& ope1 && ope2 Retorna true si los dos operandos son verdaderos

|| ope1 || ope2 Retorna true si uno de los operadores es verdadero.

! !ope Retorna true si operador es falso.

& ope1 & ope2 Retorna true si ambos operados son booleanos y verdaderos, siempre evalúa ambos operadores

| ope1 | ope2 Retorna true si ambos son booleanos y uno de los operadores es verdadero, siempre evalúa ambos operadores.

ˆ ope1 ˆ ope2 Retorna true si ambos operadores son diferentes

Page 31: Fundamentos de Java

Los operadores de desplazamiento ejecutan manipulación de bits sobre los

datos desplazándolos los bits del primer operando a la izquierda o derecha del

mismo.

El desplazamiento de bits esta dado por el número de posiciones indicados

por el operador derecho, esto ocurre en la dirección indicada por el operador

propiamente. Entre los operadores de desplazamiento tenemos los siguientes

Operador

Uso Descripción

<< ope1 << ope2 Llena con cero bits el lado derecho

>> ope1 >> ope2 Lleno con bits de más alto signo alado izquierdo.

>>> ope1 >>> ope2 Llena con cero bits en el lado izquierdo

::. Operadores de Desplazamiento.::::. Operadores de Desplazamiento.::

Page 32: Fundamentos de Java

La asignación se lleva a cabo con el operador = , para asignar un valor a

otro generalmente de derecha a izquierda.

Java también provee algunos operadores de asignación cortos

(Shorcut Assignment Operators) que permiten ejecutar operaciones

aritméticas, desplazamiento y operadores de asignación todo con un solo

operador, entre estos tenemos los siguientes:

Operadores Uso Equivalencia

[ + ][ - ][ * ][ / ][ % ] =

ope1 [ + ][ - ][ * ][ / ][ % ] = ope2

op1 = op1 [ + ][ - ][ * ][ / ][ % ] op2

[ & ] [ | ] [ ˆ]= ope1 [ & ] [ | ] [ ˆ] = ope2 op1 = op1 [ & ] [ | ] [ ˆ] op2

[>>] [<<] [>>>]=

ope1 [>>] [<<] [>>>] = ope2

op1 = op1 [>>] [<<] [>>>] op2

::. Operadores Asignación.::::. Operadores Asignación.::

Page 33: Fundamentos de Java

• Hay un uso especial en Java de un operador: el operador + puede

utilizarse para concatenar cadenas de caracteres. Parece un uso

natural del + incluso aunque no encaje con la manera tradicional de

usar el +.

• El uso del + de String tiene algún comportamiento interesante. Si una

expresión comienza con un String, entonces todos los operandos que

le sigan deben ser de tipo String (recuerde que el compilador

convertirá una secuencia de caracteres entre comas en un String):

int x = O, y = 1, z = 2;String cadEle= "x, y, z ";System.out.println(cadEle + x + y + z);

::. Operador String.::::. Operador String.::

Page 34: Fundamentos de Java

JAVA maneja un operador ternario (tres operandos), que produce un valor

dependiendo de una expresión condicional sea verdadero o falso, a

diferencia de la sentencia if-else ordinaria que se verá en la siguiente

sección de este capítulo. La expresión es de la forma:

exp-booleana : valor0 : valor1

Entre otros de los operadores que maneja Java tenemos el

instanceOf que nos permite determinar si una variable es instancia de

otra.

::. Otros Operadores.::::. Otros Operadores.::

Page 35: Fundamentos de Java

Expresiones.- Una expresión es una serie de variables, operadores y invocaciones a métodos los cuales son construidos acorde a la sintaxis del lenguaje que son evaluadas a un simple valor.

Cada expresión ejecuta una operación y retorna un valor por lo que podríamos decir que el uso de operadores es una expresión.

String uno = “Uno” ;System.out.println(“Imprimir prueba #" + uno);a + b / 100a + (b/100)

::.Expresiones, Sentencias y Bloques.::::.Expresiones, Sentencias y Bloques.::

Page 36: Fundamentos de Java

Sentencias.- Una sentencia forma una unidad completa de ejecución que termina con una semicolon ( ; ) . Existen tres tipos de sentencias:

Sentencias de Declaración.- Declaran una variable Sentencias de Expresión.- Ejecutan una instrucción simple como

expresiones de asignación, uso de operador de incrementos u otros, invocación de métodos, creación de objetos.

valor = 123; valor++; System.out.println(valor); Integer integerObject = new Integer(valor);

Sentencias de Control de Flujo.- Regulan el orden en el cual las sentencias son ejecutadas, el loop, for , if etc son ejemplos de sentencias de control de flujo

::.Expresiones, Sentencias y Bloques.::::.Expresiones, Sentencias y Bloques.::

Page 37: Fundamentos de Java

Bloques.- Es un grupo de cero o más sentencias equilibradas entre llaves que puede ser usada donde quiera como una simple sentencia.

If( nombre.equals(“Pepito”){edad = 13;

}

::.Expresiones, Sentencias y Bloques.::::.Expresiones, Sentencias y Bloques.::

Page 38: Fundamentos de Java

• Java provee algunas sentencias para controlar el flujo de ejecución,

las cuales utilizan en la mayoría de sus casos la certeza o falsedad

de una expresión de condición para determinar el cauce de su

ejecución. Entre estos tenemos los siguientes:

Control de Ejecución

Tipo de Expresión Palabras Clave

Looping while, do –while, for

Decisión If-else, switch-case

Manejo de Excepciones try-catch-finally, throw

Branching break, continue, label:, return

::.Controles de Flujo.::::.Controles de Flujo.::

Page 39: Fundamentos de Java

• Las sentencias while, do-while y for son para el control de bucles,

y en ocasiones se clasifican como sentencias de iteración. Se repite

una sentencia hasta que la expresión condicional controladora se

evalúe a falsa.

La sentencia while evalúa la expresión al inicio del bucle, la forma de

un bucle while es:

while (expresion condicional)

Sentencia(s)

::.Controles de Flujo:. Looping.::::.Controles de Flujo:. Looping.::

Page 40: Fundamentos de Java

• Java provee otro sentencia similar al while que es el do – while que se

diferencia del anterior porque evalúa la expresión condicional al final

del bucle, por lo cual la sentencia del do-while se ejecuta

siempre, al menos, una vez, incluso aunque la expresión se evalúe

como falsa la primera vez. En un while, si la condicional es falsa la

primera vez, la sentencia no se ejecuta nunca.

• La forma de un bucle do-while es:

• do { sentencia(s) } while (expresion condicional);

• En la práctica, do-while es menos común que while.

::.Controles de Flujo:. Looping.::::.Controles de Flujo:. Looping.::

Page 41: Fundamentos de Java

• Un bucle for lleva a cabo la inicialización antes de la primera iteración.

Después, lleva a cabo la comprobación condicional y, al final de cada

iteración, hace algún tipo de "paso". La forma del bucle for es:

for(inicialización; expresión; incremento/decremento)

{ Sentencia(s)}

• A partir de la versión 5.0 de JDK una nueva mejora de la sentencia for

enhanced fue creada exclusivamente para el manejo de arreglos y

colecciones. Tiene la siguiente forma:

for(Elemento: <Colleccion/Arreglo>){ Sentencia(s)}

::.Controles de Flujo:. Looping:For.::::.Controles de Flujo:. Looping:For.::

Page 42: Fundamentos de Java

• La sentencia if-else es probablemente la manera más básica de controlar

el flujo de un programa. El else es opcional, por lo que puede usarse if de

dos formas:

• Otra forma de utilizar la sentencia else, es con else if, ejecuta una

sentencia basada en otra expresión.

Sentencia IF-ELSE-ELSEIF

if (expresion condicional) sentencia

if(expresion condicional) sentenciaelse sentencia

if(expresion condicional) sentenciaelse if (expresion condicional) sentenciaelse sentencia

::.Controles de Flujo.::. Decisión::.Controles de Flujo.::. Decisión

Page 43: Fundamentos de Java

• La sentencia switch ejecuta sentencias basadas en expresiones

enteras, de tipo numerada; es decir, realiza sus decisiones basadas

en números enteros simples o valor enumerado. Adicionalmente a

partir del (JDK 1.7) también soporte expresiones basadas en

cadenas, la estructura de una sentencia switch es la siguiente:

switch (selector-entero/cadena) { case valor-entero1/cadena : sentencia; break; case valor-entero2/cadena : sentencia; break; case valor-entero3/cadena : sentencia; break; case valor-entero4/cadena : sentencia; break; case valor-entero5/cadena : sentencia; break; // ... default : sentencia;}

::.Controles de Flujo.::. Decisión::.Controles de Flujo.::. Decisión

Page 44: Fundamentos de Java

• La sentencia break es usada para terminar el flujo de control de las

sentencias switch, for, while y do-while .

• La sentencia continue es usada para omitir o saltar la actual

iteración de las sentencias for, while y do-while.

• La sentencia return nos permite salir del actual método en donde

nos encontramos pasando el control al anterior método de donde fue

llamado retornando o no valores.

Sentencias break , continue and return

::.Controles de Flujo.::. Branching::.Controles de Flujo.::. Branching

Page 45: Fundamentos de Java

http://www.dzone.com/links/index.html - Papers

http://www.parleys.com/display/PARLEYS/Home -

Conferencias

http://www.javahispano.org/ - Noticias

http://java.sun.com/reference/docs/ - Documentación

Canal Youtube Matoosfe– Vídeos Java

Sitios Web

::.Recursos.::::.Recursos.::