Upload
martosfre
View
185
Download
1
Embed Size (px)
DESCRIPTION
Diapositiva donde se explica los fundamentos de Java, su estructura, operadores.
Citation preview
JAVA BASICO
Ing. Marco Antonio Toscano Freire
CONCEPTOS BÁSICOS
do -while
while
for
::.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)
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.::
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.::
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.::
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.::
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.::
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.::
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.::
::.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)
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.::
• 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.::
• 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.::
::.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.
• 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.::
::.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.
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.::
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.::
::.Definición Variable.::::.Definición Variable.::
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.::
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.::
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.::
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.::
• 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.::
• 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.::
• 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.::
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.::
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.::
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
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.::
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.::
• 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.::
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.::
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.::
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.::
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.::
• 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.::
• 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.::
• 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.::
• 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.::
• 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
• 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
• 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
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.::