Sei sulla pagina 1di 66

Java Nivel Inicial en J2SE (Nivel 1)

Introduccin
Lenguaje programacin serio

Middleware ( cliente db )

Portabilidad,Red,Multithreaded Dispositivos Moviles No intenta reescribir programas actuales si no aprovechar las nueva generacin de aplicaciones

Introduccin
Java como herramienta de programacin

de los mejores para programacin en serio ) Potencialmente un gran lenguaje ( compatibilidad ascendente y aceptar cambios ) Mejoras en Java. No lenguaje. Bibliotecas de java. Utilidad
Buen lenguaje de programacin ( uno

Introduccin
Ventajas
Entorno de ejecucin independiente de plataforma Orientado completamente a Objetos OOP ( proyectos complejos )

Introduccin
Carcteristicas de Diseo de Java

Simple Orientado a Objetos Distribuido Robusto Seguro Arquitectura neutral Portable Interpretado Alto rendimiento Multrithread Dinamico

Introduccin
Simple
Fcil programacion-sintaxis clara No confundir con entornos programacin visuales que suministran la infraestructura de aplicacin Pequeo:interprete basico + clases apoyo threads

(microkernel)=175kb
Las bibliotecas grficas son muchisimo mas grandes

Introduccin
Orientado a Objetos
30 aos de OOP ya demostraron su valor El lenguaje permite modelar el problema

datos(=objetos) y relaciones entre estos.

Introduccin
Distribuido
Manejo de recursos sobre TCP/IP via HTTP y FTP. Acceso no solo a recursos locales sino a cualquiera

en la red Ej: abrir conexin de un socket. Servlets, RMI,..., webservices

Introduccin
Robusto
Fiabilidad del producto final Medios: Comprobacion sintaxis del compilador Simplicidad del lenguaje No delegar manejo memoria al programador

Introduccin
Seguro
Pensado para entornos distibuidos o en red. Mucho

enfasis en la seguridad.
Grupos de auditoria de seguridad Son publicas las implementaciones internas. Java hace extremandamente dificil saltearse mecanismos

de seguridad Clases Firmada El mas seguro pero es imposible demostrar que es completamente seguro.

Introduccin
Arquitectura neutral
Formato de fichero objeto independiente de la

arquitectura. Bytecode. No relacionado con la arquitectura del procesador. El conjunto de instrucciones Bytecode funciona bien en la mayoria de las arquitecturas actuales. Diseado para traducirse facilmente a codigo maquina.

Introduccin
Portable
No posee aspecto relacionado con la

implementacion: Mantener productos en diversas plataformas era un trabajo heroico.

Introduccin
Interpretado
Interprete Java JRE Ejecuta bycode Acelera el desarrollo.

Introduccin
Alto rendimiento
Si bien el funcionamiento interpretado es razonable

hay situaciones que exigen mayor rendiento. Traduccion a codigo maquina previo a su ejecucion Compiladores Just-intime y optimizadores.

Introduccin
Multithreaded
Mayor sensacion de interactividad Mejor comportamiento en tiempo real Simplicidad de programacion Muy atractivo para desarrollo del lado del servidor.

Introduccin
Dinamico
Diseado para un entorno en constante evolucin. Las bibliotecas evolucionan sin afectar a clientes

que utilizan. Descubrir informacion en tiempo de ejecucion es sencillo.

Introduccin
Java e Internet
Descargar bycode por internet y ejecucion local Ejecucion en navegador Applet Problemas de Ancho Banda y Navegadores Ejecucin en el Servidor Servidores de Aplicacion

Introduccin
Conceptos erroneos sobre java
Java es una extension de HTML Utilizo XML asi que no necesito Java Java es un lenguaje de programacion fcil de

aprender Java tiene un entorno fcil de programar Java se va convertir en un lenguaje de programacion universal para todas las plataformas. Java es interpretado, es muy lento para aplicaciones serias Javascript es una version mas sencilla de java.

Fundamentos de Programacin Orientada a Objetos en Java

Fundamentos POO
Que es un Objeto?

Que es un Mensaje?
Que es una Clase?

Qu es un Objeto?
Observar Objetos del mundo Real
Caracteristicas: Estado Comportamiento

Objetos de Software
Miembros Variables (identificadores) Mtodos (funciones)

Modelar Objetos:
Reales Abstractos

Instancia de un ObjetoEncapsulacin
Objeto Bicicleta
Estados (variables): Velocidad Ritmo de Pedaleo Marcha Comportamientos(mtodo

Bicicleta en particular
Variables de Instancia: Velocidad: 10km/h Ritmo de Pedaleo: 20 rpm Marcha: 3 Mtodos de Instancia: Frenar -> Disminuir Veloc.(10) Cambiar el Ritmo de Pedaleo Cambiar la Marcha

s):
Frenar Cambiar el Ritmo de

Pedaleo Cambiar la Marcha

ENCAPSULACIN:

variables de instancia solo son accedidas desde los mtodos


INSTANCIA: Una

Encapsulacin
ENCAPSULACIN:
variables de instancia solo son accedidas desde los

mtodos Modificadores de Acceso


Beneficios:
Modularidad: Escribir/Mantener Cdigo independiente de otros. Ocultar Informacin: Interface Pblica Implementacin Privada

Qu es un Mensaje?
Funcionalidad Alto Nivel es un conjuntos de objetos interactuando Mensaje:
comunicacin/interaccion entre objetos.

Partes Mensaje:
Objeto Destinatario
Mtodo Parmetros

Beneficios:
Mensajes permite acceder Comportamiento sin acceso

variables Mensajes permiten a Objetos interactuar aunque no esten en el mismo proceso y/o equipo

Qu es una Clase?
Existen Objetos de la misma naturaleza/tipo que

comparten caracteristicas similares Definicin: una CLASE es un Modelo/Plano que define las variables y mtodos comunes a todos los OBJETOS de un cierto TIPO.

Objeto - Clase
Un OBJETO es una instancia de

una CLASE Instanciar Objeto:


Se identifica al Objeto Reserva Memoria para cada

VARIABLE (VARIABLE DE INSTANCIA ) Las variables de instancia son independientes

Variables/Mtodos de Clase
una VARIABLE de Clase es

comn a todas las INSTANCIAS de una CLASE Al Instanciar el PRIMER Objeto:


Reserva Memoria para cada

VARIABLE DE CLASE. TODOS los objetos COMPARTEN la misma Variables


Un METODO de CLASE es un

Mtodo que a la clase como un todo, no a un objeto en

Clases - Reusabilidad
OBJETOS proveen los beneficios de Modularidad

y Ocultamiento de Informacin. CLASES proveen los beneficios de REUSABILIDAD El lenguaje JAVA va acompaado de CLASES de propsitos varios que permiten al Programador REUTILIZAR fcilmente cdigo de la plataforma JAVA (J2EE,J2SE,J2ME..)

Estructuras Fundamentales de la Programacin JAVA

Introduccin
Programa

Identificadores
Tipos de Datos Variables Asignaciones e Inicializaciones Operadores Cadenas de Caracteres Control de Flujo de un Programa

Programa
Es una Clase

Contenida en un Archivo .java


Contiene un Mtodo main
public class Hello { /**

My first Java program


*/ public static void main( String[] args ){ //prints the string "Hello world"

System.out.println("Hello world");
} }

Identificadores
Un identificador es un nombre que se le asigna

a los distintos elementos de un programa Reglas: Contener digitos (0 al 9), letras ( a-z , A-Z ), signos _ y $ No debe comenzar con digitos

Palabras Reservadas
Son identificadores que tienen un significado

especial para el compilador. No puden ser utilizadas como identificadores definidos por el programador ( variables, etc. )

Palabras Reservadas

Variables
Una Variable es un identificador que referencia

una posicin de memoria. Propiedades:


Posicin de Memoria que almacena el valor Tipo de Datos Almacenado Nombre de la posicin de Memoria

Sintaxis: <tipo de datos> <nombre1> [ ,<nombre2> . ,<nombreN>];

Valores Literales
Un Literal es un valor que es constante.

Existen diferentes tipos de Literales para cada

tipo de dato:
Literales Enteros Literales de Punto Flotante Literales Booleanos Literales de Caracteres Literales de Strings

Literales de Enteros
Literales de Enteros en diferentes formatos:
decimal (base 10) hexadecimal (base 16) octal (base 8).

Notacin especial:
Decimal No tiene notacin especial ejemplo: 12 Hexadecimal Precedido por 0x o 0X ejemplo: 0xC Octal Precedido por 0 ejemplo: 014

Literales de Nmeros de Punto Flotante Representan decimales con parte fraccional


Ejemplo: 3.1416 ( atencin con el punto no coma )

Pueden expresarse con notacion estandard

ocientfica.
Ejemplo: 583.45 (standard), 5.8345e2 (scientific)

Literales Boolean
Los literales Booleanos tienen solo dos valores

true (verdadero) o false (Falso).

Literales: Character
Un literal Character representa un carcter

Unicode simple. Caracter Unicode


es un conjunto de caracteres de 16-bits que

reemplaza el conjunto de caracteres ASCII de 8bits. Unicode permite la inclusin de simbolos y caracteres especiales para otros lenguajes.

Literales: Character
Para utilizar un litereal Character, coloque el

caracter entre comillas simples. Ejemplo


La letra a, es representada como a. Caracteres especiales como newline, se

representa con una barra oblicua (\) seguida por el cdigo de caracter. Por ejemplo, \n para el caracter de nueva linea, \r para el retorno de carro, \b para el backspace.

Literales String
Un literal String representa multiples caracteres y

se colocan entre comillas dobles. Un ejemplo de un literal String es, Hello World.

Tipos de Datos Primitivos


El lenguaje de programacin Java define 8 tipos

de datos primitivos.
boolean char byte

short
int long double float

T.Datos Primitivos: Logicosboolean


Representan 2 estados: true ( verdadero) y false

( Falso ). Ejemplo: boolean result = true; Este ejemplo declara una variable boolean y le asigna un valor true (literal booleano que representa verdadero).

Tipos de Datos Primitivos: char


El tipo de datos caracter(char), representa u

simple caracter Unicode. Debe estar encerrado entre comillas simples ( ). Ejemplo, a //The letter a \t //A tab Para representar caracteres especiales como ' (comilla simple) o " (comilla doble), se utiliza el caracter de escape \. Ejemplo, '\'' //for single quotes '\"' //for double quotes

Tipo de Dato Primitivo: Textos


Aunque, String no es un tipo de dato primitivo (es

una Clase), se introduce String en esta seccion. Un String representa un tipo de datos que contiene mltiples caracteres. No es un tipo primitivo es una Clase. Un literal String esta encerrado entre comillas dobles(). Ejemplo, String message=Hello world!;

T.Datos Primitivos: Enteros byte, short, int & long


Tiene 3 formatos: decimal, octal or hexadecimal. Ejemplos,

2 // valor decimal 2 077 // inicia con 0 indica que es un valor Octal 0xBACC // inicia con 0x indicando que es un valor hexadecimal Los numeros enteros por defecto son int. Se puede definir un valor como long agregando la letra l o L al final del numero Ejemplo: 10L

T.Datos Primitivos: Enteros byte, short, int & long Rangos

T.Datos Primitivos: Punto Flotante float and double


Los tipos de punto flotante tienen a double como tipo

de dato por defecto. Un literal de punto flotante incluye el punto decimal o uno de los posfijos, E or e //(agrega valor exponencial) F or f //(float) D or d //(double) Ejemplos, 3.14 // un valor simple( double) 6.02E23 // A large floating-point value 2.718F // A simple float size value 123.4E+306D //Un valor double

T.Datos Primitivos: Punto Flotante float and double Rangos

Variables
Una variable es un item de datos que es utilizado

para almacenar el estado de objetos. Una variable tiene:


Tipo de Dato Indica que tipo de valores puede almacenar.

Nombre El nombre sigue la reglas definidas para los identificadores.

Declarando e inicializando Variables


Sintaxis:

<tipo de dato> <nombre> [=valor inicial]; Nota: los valores entre <> son requeridos, mientras que aquellos entre [] son opcionales.

Declarando e inicializando variables: Guias de Codificacin Siempre es bueno inicializar las variables cuando son declaradas. Utilice nombres descriptivos para sus variables. Por ejemplo, si tienen que definir una variable que contenga el grado de un estudiante, utilice grado y no una secuencia de caracteres aleatorios que uds. elija. Declare una variable por linea.
(System.out.println)

Variables Referenciales vs. Variables Primitivas


Hay 2 tipos de variables en Java:
Primitivas Referenciales

Variables Primitivas
variables con tipo de datos primitivos. Almacenan el dato en la ubicacin de memoria

identificada por el nombre de la Variable


Variables Referenciales
variables que almacenan una direccion su ubicacin de

memoria. Apuntan otra ubicacin de memoria donde se encuentra el dato. Cuando se declara una variable de cierta Clase, se esta declarando una variable de referencia a un objeto de dicha clase.

Operadores
Diferentes tipos de operadores:
Aritmticos Relacionales Lgicos Condicionales

La aplicacin de los operadores en expresiones

tienen una PRECEDENCIA. Esta le indica al compilador como evaluarla en el caso que existan mlltiples operadores en una sentencia.

Operadores Aritmticos

Nota: Cuando un Entero y un Punto Flotante son utilizados como operadores con un operador aritmtico, el resultado es un valor de Punto Flotante. El Entero es implicitamente convertido a flotante previo a efectuar la operacin.

Operadores de Incremento/Decremento operador unitario de incremento (++) operador unitario de decremento (--) operadores que incrementa o decrementan el valor almacenado en la variable por 1. Ejemplo, la expresin,
count=count + 1;//increment the value of count by 1 es equivalente a, count++;

Operadores de Incremento/Decremento

Pre/Pos de Incremento/Decremento
cuando el operador es colocado antes del operando, esto

causa que primero es aplicado el operador al valor de la variable y el nuevo valor resultante es utilizado en la expresin en la que forma parte. int i = 10; int j = 3; int k = 0; k = ++j + i; //will result to k = 4+10 = 14 cuando el operador es colocado luego del operando, el viejo valor de la variable es utilizada en la expresin donde aparece. int i = 10; int j = 3; int k = 0; k = j++ + i; //will result to k = 3+10 = 13

Operadores Relacionales
Los operadores relacionales comparan dos

valores y determinan la relacin estre estos. El resultado de la evaluacin es un valor boolean, true o false.

Operadores Lgicos
Los operadores Lgicos tienen uno o dos

operadores booleanos y tiene por resultado un valor tambin booleano. Existen 6 operadores lgicos:
&& (logical AND )

& ( boolean logical AND)


|| (logical OR) | (boolean logical inclusive OR) ^ (boolean logical exclusive OR) ! (logical NOT)

Op.Lgicos: &&(logical) and &(boolean logical) AND Diferencia bsica entre los operadores && y &:
&& soporta evaluaciones de circuito corto (or

evaluacin parcial), mientras que & no las soporta.


Dada una expresin:
exp1 && exp2 && evaluar la expresin exp1, e inmediatamente

retornar false si el valor de la expresin exp1 es false. Si exp1 es false, el operador nunca evalua la expresion exp2 porque el resultado del operador ser false sin importar que valor tiene la exp2.
Por el contrario, el operador & siempre evalua

ambas expresiones exp1 y exp2 antes de retornar la respuesta.

Op.Lgicos: || (logical) and | (boolean logical) inclusive OR La diferencia bsica entre los operadores || y I :
|| soporta evaluaciones de circuito corto (o

evaluacion parcial), mientras que | no lo soporta.


Dada la siguiente expresin:
exp1 || exp2

|| evaluar la expresin exp1, e inmediatamente

retornar un valor true si la exp1 es true Si exp1 es true, el operador nunca evaluar la exp2 ya que el resultado siempre ser true independiente del valor de la exp2. De manera diferente, el operador | simpre evaluar ambas expresiones, exp1 and exp2, antes de retornar la respuesta.

Op.Lgicos: ^ (boolean logical exclusive OR) El resultado de una operacion de OR Exclusivo es true si y solo si un operando es true y el otro false. Note que ambos operadores deben ser evaluados antes de calcular el resultado del OR Exclusivo.

Op.Lgicos: ! ( logical NOT)


El operador de Negacin utiliza un solo

argumento, que puede ser una expresin, una variable o una constante.

Op.Lgicos: Operador Condicional (?:)


El operador condicional ?:
es un operador ternario. Significa que utiliza tres argumentos para conformar la expresin condicional. La estructura de la expresin que utiliza el operador

condicional es

exp1?exp2:exp3 donde, exp1 es una expresin booleana que puede tener valor true o false
El resultado: Si exp1 es true, exp2 es el valor resultante. Si es false, entonces la exp3 es el valor resultante.

Potrebbero piacerti anche