Qu significa la palabra dato? Es una representacin simblica (numrica,
alfabtica, algortmica etc.)
Atributo o caracterstica de una entidad.
No tiene valor semntico (sentido) en s mismo
Si recibe un tratamiento (procesamiento) apropiado, se puede utilizar en la realizacin de clculos o toma de decisiones.
Es de empleo muy comn en el mbito informtico y, en general, prcticamente en cualquier disciplina cientfica.
En programacin, un dato es la expresin general que describe las caractersticas de las entidades sobre las cuales opera un algoritmo.
CONCEPTOS BSICOS Qu es Informacin? Es el resultado del procesamiento de datos
Es un conjunto de datos organizados con un propsito especial CONCEPTOS BSICOS Qu es Sistema? Un sistema de informacin (SI) es un conjunto de elementos orientados al tratamiento y administracin de datos de informacin
Organizados y listos para su posterior uso, generados para cubrir una necesidad (objetivo). Dichos elementos formarn parte de alguna de estas categoras:
CONCEPTOS BSICOS Qu es Sistema? Dichos elementos formarn parte de alguna de estas categoras:
Personas. Datos. Actividades o tcnicas de trabajo. Recursos materiales en general (informticos, pero sin ser indispensables).
CONCEPTOS BSICOS Qu es Sistema? Todos estos elementos interactan entre s para procesar los datos (incluyendo procesos manuales y automticos)
Dando lugar a informacin ms elaborada y distribuyndola de la manera ms adecuada posible en una determinada organizacin en funcin de sus objetivos.
Los problemas La mayora de problemas tienen algunos elementos en comn:
Un estado inicial; Una meta, lo que se pretende lograr; Un conjunto de recursos, lo que est permitido hacer y/o utilizar; Un dominio, es decir, los conocimientos, habilidades de quien va a resolverlo. Estrategias para resolver problemas Ensayo y error: Consiste en actuar hasta que algo funcione. Puede tomar mucho tiempo y no es seguro que se llegue a una solucin.
Heurstica: Se basa en la utilizacin de reglas producto de la experiencia, para llegar a una solucin.
Algoritmos: Consiste en aplicar adecuadamente una serie de pasos detallados que aseguran una solucin correcta.
Lluvia de ideas: Consiste en formular soluciones viables a un problema.
Pasos para resolver un problema Un mtodo heurstico formulado por el matemtico George Polya indica que cuando se resuelven problemas, intervienen cuatro operaciones mentales:
Definicin del problema - Entender el problema Trazar un plan Ejecutar el plan (resolver) Revisar Definicin del Problema Trazar un plan Ejecutar el plan Revisar 1. Definicin del Problema Entender el problema Leer el problema varias veces Qu datos me dan en el enunciado del problema? Cul es la pregunta que me da el problema? Qu debo lograr? Cul es la incgnita del problema? 2. Anlisis del Problema Organizar la informacin: Variables que se debe usar (todas y cada una)
Identificar el tipo de las variables
Revisar el proceso al que se debe someter esas variables para obtener los resultados esperados 3. Diseo del Algoritmo Dibujar un algoritmo donde pueda observar la manera en que se van a comportar los datos
Revisarlo a travs de una prueba de escritorio, de tal manera que al ingresar datos, se obtenga los resultados esperados 4. Uso de un lenguaje de programacin Implementar el algoritmo con el uso de un lenguaje de programacin
Realizar pruebas con el usuario final, para verificar que lo que l requiere si est contemplado en el programa
LENGUAJE DE PROGRAMACIN Conjunto de instrucciones que son interpretadas por una computadora para realizar operaciones, mostrar datos por pantalla, sacar listados por impresora, entrar datos por teclado, etc. Tipos de programas Programa fuente: Permite escribir un algoritmo mediante un lenguaje formal, a lo que se le denomina codigo fuente.
Programa objeto: Es el producto de traducir un programa fuente para obtener un lenguaje comprensible por la mquina. Tipos de programas Traductores de programas: Convierten el cdigo de un lenguaje en otro.
Ejemplo: compilador que traduce el cdigo fuente en o bjeto.
Tipos de traductores: Ensambladores, preprocesadores, intrpretes, compiladores Tipos de programas Ensambladores: Tipo de traductor que convierte un programa escrito en ensamblador a cdigo de mquina
Preprocesadores: Traduce un lenguaje de aloto nivel, cuando no puede pasar facilmente a lenguaje de mquina.
Intrpretes: Traductores-ejecutores: Lectura-traduccin- ejecucin, lentos pero muy apropiados para depurar programas.
Compiladores: Traductores ms conocidos; traduce cdigo fuente en cdigo mquina
Fundamentos de programacin en java 19 Conceptos Bsicos de Java - Netbeans Caractersticas de la Programacin en Java
Sensible a maysculas/minsculas. Palabras reservadas. Comentarios. Lenguaje de formato libre. Identificadores. Variables y constantes. Convenciones de nomenclatura. Tipos de datos. Operadores.
20 Caractersticas de la Programacin en Java
Sensible a maysculas/minsculas
Se distingue entre maysculas y minsculas. Los identificadores Cat, cat y CAT son diferentes. Todas las palabras reservadas del lenguaje van en minsculas.
Palabras reservadas 21
Paquetes: Es un conjunto de clases e interfaces relacionadas que proveen acceso protegido y administracin de nombres.
Las clases e interfaces que son parte de la Plataforma Java estn agrupadas en paquetes de acuerdo con su funcin:
java.applet : para manejo de Applets. java.io: para manejo de entrada/salida. java.awt: para manejo de la GUI.
22 El programador agrupa sus clases e interfaces en paquetes, anteponiendo la clasula package NombreDel Paquete a las declaraciones de todas las clases e interfaces agrupadas.
La plataforma JAVA importa automticamente los siguientes paquetes: el default package, el paquete java.lang y el paquete actual.
El alcance de la sentencia package es todo el archivo fuente.
Ejemplo: 23 Paquetes
Sentencia import: indica al compilador dnde estn ubicadas las clases que estamos importando.
Ejemplos:
Para importar slo una clase de un paquete:
import <nombre.paquete>.<NombreClase>;
import java.lang.String;
Para importar todas las clases de un paquete:
import <nombre.paquete>.*;
import java.lang.*;
24 Caractersticas de la Programacin Comentarios. Existen tres formas de introducir comentarios:
Comentario en una lnea
// Comentario de una lnea
Comentario en una o ms lneas
/* Comentario de ms de una lnea */
Comentario de documentacin. Se usa con javadoc
/** Mtodo XYZ: Realiza la labor X sobre los datos Y devolviendo Z */
javadoc Fichero.java > Fichero.html Caractersticas de la Programacin
Lenguaje de formato libre.
La disposicin de los elementos dentro del cdigo es libre. Sentencias: lnea simple de cdigo terminada en ; total = a + b + c + d ; Bloque de cdigo: conjunto de sentencias agrupadas entre llaves { x = x + 1; y = y + 1; } Java permite espacios en blanco entre elementos del cdigo x1 = y * delta ; x2 = (y+1) * delta ; Variables y constantes Variables: Lugar de memoria cuyos valores van a cambiar durante la ejecucin <tipo> <identificador> ; <tipo> <identificador> , <identificador> ... ;
ejemplo: int x, y, z ;
Constantes: Parte de memoria cuyos valores no cambian
final <tipo> <identificador> = <valor> ; ejemplo: final double PI = 3.14159265 ;
Asignacin de Variables: Se hace con el operador asignacin =
<variable> = <expresin> ;
La parte izquierda siempre debe ser una variable.
La parte derecha puede ser un literal, una variable, una expresin, una funcin o una combinacin de todos.
Se puede asignar un valor a una variable en el momento de declararla. ejemplo: int i = 0 ;
Identificadores Son nombres de clases, variables o mtodos. No tienen longitud mxima. El primer carcter del identificador debe ser: A-Z, a-z, _, $. El resto: A-Z, a-z, _, $, 0-9. No se permite utilizar palabras reservadas como identificador. Ejemplos vlidos anioDeNacimiento2 _otra_variable NombreDeVariableMuyLargoNoImporta BotonPulsacion
Ejemplos NO vlidos Razn 3valores (nmero como primer carcter) Dia&mes & Dos ms (espacio) Dos-valores
Convenciones de nomenclatura
Los identificadores que proporciona Java siguen una convencin segn el elemento: Clases: primera letra en mayscula de cada palabra Empleado, LibroDeCuentas, String
Variables: primera letra en minscula y la primera letra de cada palabra en mayscula contador, numeroTotalAccesos, string
Convenciones de nomenclatura
Los identificadores que proporciona Java siguen una convencin segn el elemento:
Constantes: todo en maysculas, separando cada palabra por el carcter _ PI, ANCHO_IMAGEN
Convenciones de nomenclatura
Mtodos: siguen el mismo formato que las variables seguidas de parntesis ( ) sumar(), obtenerResultado()
Estructuras de control: utilizar llaves englobando a todas las sentencias de una estructura de control, aunque slo haya una sentencia
if ( <condicin> ) { // hacer algo }else{ // hacer otra cosa }
Tipos de Datos Los tipos primitivos son ocho agrupados en cuatro lgico: boolean texto: char entero: byte, short, int, long real: float, double
Tipos Primitivos Tipo Lgico Tipos Numricos Integrales Punto Flotante Caracteres Nmeros Enteros boolean char byte short int long float double
Los tipos referencia son punteros a objetos Tipos de Datos
Tipos Referencia
Un tipo referencia guarda un puntero a la direccin donde se ubica el objeto Slo puede almacenar direcciones de objetos de su propio tipo Todas las clases son de tipo referencia El valor que toma por defecto una variable de tipo referencia es null Operadores Dispondremos de operadores para realizar desde operaciones aritmticas sencillas hasta operaciones a nivel de bit, ellos son:
Aritmticos Relacionales Lgicos A nivel de bit De asignacin El ternario Precedencia de los operadores. Operadores aritmticos Operador Descripcin + Suma - Reta * Multiplicacin / Divisin % Mdulo ++ Incremento -- Decremento Operadores relacionales Operador Descripcin == Igual != Distinto > Mayor que < Menor que >= Mayor o igual <= Menor o igual Operadores lgicos Operador Descripcin & AND | OR ^ XOR && AND en cortocircuito || OR en cortocircuito ! NOT Tipos bsicos de datos Los bloques en los que se encuentran divididos los tipos bsicos en java son:
Enteros: Son cuatro tipos que nos permiten representar nmeros enteros.
Coma flotante: Son dos tipos usados para representar datos reales.
Caracteres: Un tipo que nos permite representar caracteres de cualquier idioma mundial.
Lgicos: Un tipo para representar valores lgicos. Operadores a nivel de bit Operador Descripcin ~ NOT & AND | OR ^ XOR >> Desplazamiento a la derecha >>> Desplazamiento a la derecha sin signo << Desplazamiento a la izquierda Operadores de asignacin Operador Descripcin ~ NOT += Suma y asignacin -= Resta y asignacin *= Multiplicacin y asignacin /= Divisin y asignacin %= Mdulo y asignacin &= AND y asignacin |= OR y asignacin ^= XOR y asignacin <<= Desplazamiento a la izquierda y asignacin >>= Desplazamiento a la derecha y asignacin >>>= Desplazamiento a la derecha sin signo y asignacin El operador tenario El operador ? : es el operador ternario.
Puede sustituir a una sentencia if-then-else.
Su sintaxis es: exp1 ? exp2: exp3;
Donde exp1 es una expresin booleana. Precedencia de los operadores Operador Asociatividad () [] . izquierda a derecha ++ - ! +(unario) -(unario) () (cast) new izquierda a derecha * / % izquierda a derecha + - izquierda a derecha >> >>> << izquierda a derecha > >= <= > instanceof izquierda a derecha == != izquierda a derecha & izquierda a derecha izquierda a derecha | izquierda a derecha && izquierda a derecha || izquierda a derecha ? : izquierda a derecha = += -= *= /= %= &= |= = <<= >>= >>>= izquierda a derecha Enteros Nombre Tamao Rango long 64 bits -9.233.372.036.854.775.808L a 9.233.372.036.854.775.808 int 32 bits -2.147.483.648 a 2.147.483.647 short 16 bits -32.768 a 32767 byte 8 bits -128 a 127 Coma flotante Nombre Tamao Rango float 32 bits 3.40282347E+38F double 64 bits 1.79769313486231570E+308 Caracteres Secuencia Descripcin \b Retroceso \t Tabulador \r Retorno de carro \n Nueva lnea \ Comilla simple \ Comilla doble \\ Barra invertida Lgicos Para representar valores lgicos Java utiliza, el tipo boolean, el cual permite tomar dos valores: verdadero y falso. Envoltorios Tipo Envoltorio int Integer long Long float Float double Double short Short byte Byte char Character boolean Boolean void Void Literales y constantes Tipo Literal Comentarios int 123 Todos los enteros por defecto son int long 123L Es necesario indicar una L char a Comillas simples float 5.9F Es posible usar tambin la notacin exponencial 1.8E9 double 7.9 Todos los reales por defecto son double. Se pueden finalizar con una D boolean true true y false son los nicos valores vlidos String hola Comillas dobles Variables La forma ms sencilla de almacenar informacin es utilizar variables.
Antes de usar cualquier variable, independientemente de su tipo, es necesario declararla. Declaracin de variables La declaracin de estas puede realizarse en cualquier parte de una clase o mtodo.
La forma de declarar indica el nombre y el tipo de la misma , pero puede ir acompaada de ms informacin, como el valor inicial o la
Declaracin de ms variables del mismo tipo.
Tipo identificador[=valor] [, identificador[=valor]]; int i=0, j; double d = Math.sqrt(i*5); mbito y tiempo de vida de variables El mbito se produce dentro de un bloque de cdigo.
El tiempo de vida es el tiempo que transcurre entre la declaracin de la variable y su destruccin. { int a; a=9; { int b=a+1; } a=10; }
Uso bsico de cadenas de caracteres Es posible definir literales de tipo cadena entrecomillando texto con comillas dobles, imprimir con
System.out.println() estas cadenas e incluso concatenarlas usando el operador +.
System.out.println(Hola+ mundo);
Tambin se puede hacer de sta manera:
String a, b; a=Hola; b= mundo; String c=a+b; System.out.println(c);
Operadores
Operadores unarios: +, -
Operadores aritmticos: +, -, *, /, % (resto de la divisin)
Operadores relacionales: == (igual), != (distinto), >, <, >=, <= Operadores Operadores lgicos: && (AND), || (OR), ! (NOT), & (AND), | (OR) && y || realizan evaluacin perezosa: op1 && op2 => si op1 es false, no se evala op2 op1 || op2 => si op1 es true, no se evala op2 & y | siempre evalan los dos operadores
Operador instanceof: <objeto> instanceof <clase> determina si un objeto pertenece a una clase
Operadores a nivel de bits: >>, <<, >>>, &, |, ^, ~
Control de Flujo (2) if if (<exprBooleana>) <sentencia> ; ------------------------------------------------------- if (<exprBooleana>) {
<grupoSentencias>; } ------------------------------------------------------- if (<exprBooleana>) { <grupoSentencias>; }else{ <grupoSentencias>; } ------------------------------------------------------- if (<exprBooleana>) { <grupoSentencias>; }else if (<exprBooleana>){ <grupoSentencias>; }else{ <grupoSentencias>; } if (cont == 0) System.out.println(cont = cero); ------------------------------------------------------------------------------- if (cont == 0) { System.out.println(cont = cero); System.out.println(otra sentencia); } ------------------------------------------------------------------------------- if (cont == 0) { System.out.println(cont = cero); }else{ System.out.println(cont != cero); } ------------------------------------------------------------------------------- if (nota<4) { System.out.println("Insuficiente"); }else if (nota<6) { System.out.println("Suficiente"); }else{ System.out.println(Muy Bien"); } Control de Flujo de las instrucciones de Seleccin : if, if-else y switch. Iteracin : while, do-while y for. Transferencia : break, continue, return, try-catch-finally y assert.
Sentencia if-else Sirve para tomar decisiones, nos permite decidir entre dos posibles opciones excluyentes.
La sintaxis es la siguiente:
If (expresin) sentencia-1 [else sentencia-2] Sentencia switch Sirve para reemplazar if anidados.
La sintaxis es la siguiente:
switch(expresin) { case valor1: sentencia; .. [break;]
[default : sentencia; sentencia;] } Bucle while En este bucle una serie de sentencias se repiten mientras se cumple una determinada condicin.
Una caracterstica es que el cuerpo del bucle se ejecuta 0 o N veces.
La sintaxis es:
While (expresin) sentencia Bucle for Es equivalente a un bucle while con la diferencia de que permite realizar asignaciones y cambios en la variable de control dentro del mismo bucle.
La sintaxis es:
for(exp1;exp2;exp3) Sentencia
Pueden omitirse cualquiera de las tres expresiones, pero los punto y coma deben permanecer. Bucle do-while La comprobacin de la condicin del bucle se evala despus de ejecutar el cuerpo
La sintaxis es: do sentencia while(expresin); Se ejecuta 1 o N veces.i Ejercicio Ejercicio arreglado Control de Flujo switch switch ( <variable> ) {
case literal1: [<grupoSentencias1>;] [break;]
case literal2: [<grupoSentencias2>;] [break;] ...
case literalN: [<grupoSentenciasN>;] [break;]
[default:<grupoSentencias>;] } int da = 4; switch (da) { case 1: System.out.println("Lunes"); break;
case 2: System.out.println("Martes"); break; case 3: System.out.println("Mircoles"); break; case 4: System.out.println("Jueves"); break; case 5: System.out.println("Viernes"); break; case 6: System.out.println("Sbado"); break; case 7: System.out.println("Domingo"); break; default: System.out.println(Error"); } Control de Flujo for for ( <inicializacin>; <exprBooleana>; <actualizacin> ) { <grupoSentencias>; }
<inicializacin> asignacin del valor inicial de las variables que intervienen en la expresin <exprBooleana> condicin booleana <actualizacin> nuevo valor de las variables en <inicializacin>
for ( int i = 0; i < 10; i++ ) { System.out.println(valor del contador: + i ); }
Control de Flujo while while (<exprBooleana>){ <grupoSentencias>; } int cont = 0; while (cont++ < 10) { System.out.println(contador: + i ); } do while do{ <grupoSentencias>; }while (<exprBooleana>); int cont = 0; do{ System.out.println(contador: + i ); } while (cont++ < 10); Control de Flujo
Break La instruccin break sirve para abandonar una estructura de control, tanto de las alternativas (if-else y switch) como de las repetitivas o bucles (for, do-while y while). En el momento que se ejecuta la instruccin break, el control del programa sale de la estructura en la que se encuentra. resultado Iteracin: 1 Iteracin: 2 int i; for (i=1; i<=4; i++) { if (i==3) break; System.out.println("Iteracin: "+i); } Continue La instruccin continue sirve para transferir el control del programa desde la instruccin continue directamente a la cabecera del bucle (for, do-while o while) donde se encuentra. resultado Iteracin: 1 Iteracin: 2 Iteracin: 4 int i; for (i=1; i<=4; i++) { if (i==3) continue; System.out.println("Iteracin: "+i); }
Clases
public class Fecha { private int dia; private int mes; private int anio; public Fecha(int vdia, int vmes, int vanio) { dia = vdia; mes = vmes; anio = vanio; } public void mostrarFecha() { System.out.println (dia+/+mes+/+anio); } public static void main(String[] args) { Fecha MiFecha = new Fecha(10, 08, 2003); } } Variable Constructor Mtodo Mtodo principal de la aplicacin Creacin de un objeto Clases
Creacin de Objetos Se utiliza la palabra reservada new <NombreClase> <refObjeto>; <refObjeto> = new <NombreClase>() ; <NombreClase> <refObjeto> = new <NombreClase>() ; ejemplo: Fecha MiFecha ; MiFecha
MiFecha = new Fecha (10, 08, 2003) ;
MiFecha
0xFFFF0000 ???? 2003 anio 08 mes 10 dia Clases
Modificadores de clase: son palabras reservadas que se anteponen a la declaracin de clase.
Sintaxis: modificador class NombreClase
Los modificadores posibles son los siguientes:
public. Toda clase public debe ser declarada en un fichero fuente con el nombre de esa clase pblica: NombreClase.java. De esta afirmacin se deduce que en un fichero fuente puede haber ms de una clase, pero slo una con el modificador public.
abstract. Las clases abstractas no pueden ser instanciadas. Sirven nicamente para declarar subclases que deben redefinir aquellos mtodos que han sido declarados abstract.
final. Una clase declarada final impide que pueda ser superclase de otras clases. Dicho de otra forma, ninguna clase puede heredar de una clase final.
Clases
Atributos: sirven para almacenar valores de los objetos que se instancian a partir de una clase.
Sintaxis:
[modifmbito][static][final][transient][volatile] tipo nombreAtributo
Tipos de Atributos:
De Objeto: son variables u objetos que almacenan valores distintos para instancias distintas de la clase (para objetos distintos).
De Clase: son variables u objetos que almacenan el mismo valor para todos los objetos instanciados a partir de esa clase.
Clases
Declaracin de Atributos:
static. Mediante la palabra reservada static se declaran atributos de clase.
final. Sirve para declarar constantes, no se permite la modificacin de su valor.
otros modificadores: transient, volatile.
modific. de mbito: public, protected, private, (default)
Clases mbito de una variable. En Java se dispone de tres tipos de variables:
Variables miembro pertenecientes a una clase Argumentos de un mtodo de la clase
Variables locales de un mtodo de la clase
class Ejemplo { int x ; // variable miembro void metodo ( int y ){ // argumento int z ; // variable local x = y + z ; } }
Las variables miembro son visibles desde cualquier parte de la clase
Los argumentos y variables locales slo son visibles dentro del mtodo al que pertenecen. Dejan de existir al finalizar el mtodo. Mtodos
Los Mtodos son bloques de cdigo (subprogramas) definidos dentro de una clase. Sintaxis: <tipoRetorno> <nombreMtodo> ( <listaArgumentos> ) donde <tipoRetorno> tipo devuelto por el mtodo. <nombreMtodo> identificador vlido en Java. <listaArgumentos> sucesin de pares tipo-valor separados por coma
ejemplo: String darFormato (String dia, String mes, String anio) { String s ; s = dia + / + mes + / + anio ; return s ; }
Un mtodo tiene acceso a todos los atributos de su clase. Pueden ser llamados o invocados desde cualquier sitio. Un mtodo puede invocar a otros mtodos. En Java no se puede definir un mtodo dentro de otro. La ejecucin de todos los programas se inician con el mtodo main(). Mtodos
static. Los mtodos static son mtodos de clase (no de objeto) y por tanto, no necesita instanciarse la clase (crear un objeto de esa clase) para poder llamar a ese mtodo.
abstract. Se declaran en las clases abstract. Cuando se declara un mtodo abstract, no se implementa el cuerpo del mtodo, slo su signatura.
Mtodos
Modificadores de mtodos:
Los modificadores posibles son los siguientes:
final. Los mtodos de una clase que se declaran de tipo final no pueden ser redefinidos por las subclases.
native. Los mtodos native, son mtodos que se encuentran escritos en otro lenguaje de programacin distinto a Java (ej: C).
synchronized. Son mtodos especiales para cuando varios threads (subprocesos) pueden acceder concurrentemente a los mismos datos y se desea que una seccin crtica se proteja (bloquee) para que los threads accedan en exclusin mutua a la misma. Mtodos
Constructor: Es un mtodo especial de las clases que sirve para inicializar los objetos que se instancian como miembros de una clase. public class Fecha { private int dia; private int mes; private int anio; public Fecha(int vdia, int vmes, int vanio) { dia = vdia; mes = vmes; anio = vanio; } public void mostrarFecha() { System.out.println (dia+/+mes+/+anio); } public static void main(String[] args) { Fecha MiFecha = new Fecha(10, 08, 2003); } } Referencia this
this: Es una palabra clave que hace referencia al objeto o instancia actual. Usos:
Cuando se hace referencia a una variable miembro cuyo identificador coincide con el identificador de un parmetro.
public class Fecha { private int dia; private int mes; private int anio; public Fecha(int dia, int mes, int anio) { this.dia = dia; this.mes = mes; this.anio = anio; } public void mostrarFecha() { System.out.println (dia+/+mes+/+anio); } public static void main(String[] args) { Fecha MiFecha = new Fecha(10, 08, 2003); } } Referencia this
Cuando se hace referencia al objeto actual en un mtodo que devuelve un objeto del tipo de referencia.
public class Fecha { private int dia; private int mes; private int anio; public Fecha(int dia, int mes, int anio) { this.dia = dia; this.mes = mes; this.anio = anio; } public Fecha getObjetoFecha() { return this; } public static void main(String[] args) { Fecha MiFecha = new Fecha(10, 08, 2003); Fecha MiFecha2 = MiFecha.getObjetoFecha(); } } Referencia this
Cuando se invoca a otros constructores de la clase.
public class Fecha { private int dia; private int mes; private int anio; public Fecha(int dia, int mes, int anio) { this.dia = dia; this.mes = mes; this.anio = anio; } public Fecha() { this(01,01,1900); } public static void main(String[] args) { Fecha MiFecha = new Fecha(10, 08, 2003); Fecha MiFecha2 = new Fecha(); } } Herencia
Herencia: Es el mecanismo por el que se crean nuevos objetos definidos en trminos de objetoa ya existentes. Sintaxis: class NombreClaseHija extends NombreClasePadre
class Padre { String variable; void metodo() { variable = Padre; } } class Hija extends Padre { String variable; void metodo() { variable = Hija; super.metodo(); System.out.println(variable); System.out.println(super.variable); } } Herencia Simple public class Employee { public String name = ""; public double salary; public Date birthDate; public String getDetails() {...} }
public class Manager extends Employee { public String department; } ENTORNO NETBEANS ELEMENTOS DE LA PANTALLA ENTORNO NETBEANS Barra de mens Barra de Herramientas AREA DE PROYECTOS rea de Trabajo Se desarrolla el diseo de los componentes que va a visualizar en la ventana rea de Trabajo Modo Cdigo Fuente Paleta Encontramos componentes necesarios para empleados para el diseo de ventanas Ventana Activar la ventana necesaria Propiedades Se puede observar las caractersticas de cada componente Inspector Permite ver la lista de los componentes que se emplean en el desarrollo del proyecto. Ventana de Salida Informa sobre la ejecucin del programa, indicando los errores. Definicin variables Error de sintaxis Error lgico Ventana de Tareas Presenta de manera detallada la descripcin del archivo que se est trabajando y su localizacin. NETBEANS
Netbeans IDE 7.2 es una herramienta de programacin integrada. Enfocado al lenguaje de Programacin Java, pero actualmente soporta PHP, C/C++, JavaScript, HTML entre otros.
Editor de funciones completas.
Plataforma para el desarrollo de aplicaciones usando Java y a un IDE (Integrated Development Environment)
Conjunto de componentes de software (mdulos)
Fundado en Junio de 2000 PAQUETES ADICIONALES NETBEANS NetBeans Enterprise Pack Pack de movilidad de NetBeans Profiler de NetBeans C/C++ native development module Visual web Pack Ruby LENGUAJES QUE OFRECE NETBEANS JAVA Java SE Java ME Java EE Maven C + + PHP Groovy
VERSIONES Versin Fecha de lanzamiento NetBeans 7.3 21 de febrero de 2013 NetBeans 7.2 noviembre de 2012 NetBeans 7.1.2 Mayo de 2012 NetBeans 7.0.1 01 de agosto de 2011 NetBeans 7.0 20 de abril de 2011 NetBeans 6.9.1 4 de agosto de 2010 NetBeans 6.9 15 de junio de 2010 NetBeans 6.8 10 de diciembre de 2009 NetBeans 6.7.1 27 de julio de 2009 NetBeans 6.7 29 de junio de 2009 NetBeans 6.5 25 de noviembre de 2008 NetBeans 6.1 28 de abril de 2008 NetBeans 6.0 3 de diciembre de 2007 NetBeans 5.5.1 24 de mayo de 2007 NetBeans 5.5 30 de octubre de 2006 NetBeans 5.0 enero de 2006 NetBeans 4.1 mayo de 2005 NetBeans 4.0 diciembre de 2004 NetBeans 3.6 abril de 2004 NetBeans 3.5 junio de 2003 NETBEANS NetBeans est escrito en Java
Por lo que se puede ejecutar en cualquier JVM (Java Virtual Machine) compatible instalado.
Un JDK (Java Development Kit) es necesario para la programacin de Java
NETBEANS
Proporciona un entorno de desarrollo integrado para un desarrollador de aplicaciones
Haciendo muy fcil y rpido su trabajo
Las aplicaciones que se basan en la plataforma NetBeans pueden ser extendidas por otros desarrolladores.
Qu es Netbeans? NB es un entorno integrado de desarrollo o IDE (Integrated Development Environment)
Tareas que ofrece un lenguaje de programacin:
Editar el cdigo Compilarlo Ejecutarlo Depurarlo NETBEANS IDE (Integrated Development Environment)
En un mismo programa es posible escribir el cdigo Java, compilarlo y ejecutarlo? NETBEANS PLATAFORMA Las aplicaciones basadas en la plataforma NetBeans pueden incluir el mdulo de actualizacin
Esto permite a los usuarios de la aplicacin descargar actualizaciones de firma digital y las nuevas caractersticas de la aplicacin directamente en la aplicacin que se ejecuta
Algo muy importante, si la actualizacin est disponible, los usuarios solo actualizaran lo estrictamente necesario
Puede funcionar bajo windows, linux, Mac OS, Solarix PLATAFORMA La plataforma ofrece muchas caractersticas, tales como:
Gestin de la interfaz de Usuario (por ejemplo, los mens y barras de herramientas)
Configuracin de administracin de usuarios
Gestin del almacenamiento (guardando y cargando cualquier tipo de datos)
Ventana de gestin
Asistente marco (soporta paso a paso los cuadros de dilogo)
Herramientas de desarrollo integrado
PLATAFORMA La plataforma ofrece muchas caractersticas, tales como:
Herramientas de depuracin
Proyecto de Construccin en. Jar
Interfaz grfica de usuario
La Interfaz grfica de usuario es tambin conocido como Proyecto Matisse.
La interfaz grfica de diseo de la herramienta permite a los desarrolladores arrastrar y posicionar los componentes de interfaz grfica de usuario.
ESTRUCTURA Clases: La clase tiene el mismo nombre que el archivo
Si por alguna razn se cambia, se genera inmediatamente un error, o so la primera letra de cada palabra no es igual, tambin genera error. ESTRUCTURA Main: Es mas largo y hace referencia a un vector
// para hacer comentarios
Java trabaja con libreras, que permite buscar comandos necesarios en un momento determinado, abriendo una serie de cuadros de dilogo
ESTRUCTURA Mtodos de Entrada y Salida:
Mdulos: Es un grupo de clases java que provee una aplicacin con unas caractersticas especficas.
CREACION DE PROYECTO Qu es un Proyecto de Netbeans:
1. Es un conjunto de Clases Java Relacionadas
2. Los archivos usados por esas clases
3. Las Libreras de Clase Java CREACION DE PROYECTO METODO COMENTARIOS CONCEPTOS BSICOS CLASE: Es un grupo de datos (variables o campos) y funciones (mtodos) que operan sobre esos datos:
Public es opcional Todos los mtodos y variables deben ser definidos dentro de un bloque de la clase
La clase tiene el mismo nombre que el archivo
Si por alguna razn se cambia, se genera inmediatamente un error, o so la primera letra de cada palabra no es igual, tambin genera error. CLASE Generalizacin de las caractersticas de los objetos.
Hace referencia a los objetos que representan los mismos tipos de datos y mtodos para manejarlos y comunicarse con otros.
Por ejemplo, el componente botn es una clase , igualmente los componente de la Paleta
CLASE Caractersticas: Atributo y Mtodo
a) Atributos (propiedades): Informacin de identificacin, descriptiva o de estado.
Ejemplo: La clase botn tiene la caracterstica de llevar un nombre.
CLASE Caractersticas: Atributo y Mtodo
b) Mtodo o comportamiento: Funcionalidad o conducta ante solicitudes.
Ejemplo: Al dar clic sobre un botn, se lleva a cabo una funcin
OBJETO Instancia particular de una clase
Se crea a partir de ella y ocupa espacio en memoria
Tiene una duracin, pues se crea y se destruye
Ejemplo:
La clase botn de la paleta, cuando se arrastra al rea de trabajo, se crea automticamente un objeto.
Si se arrastran ms botones, se crean ms objetos de la misma clase y cada uno tiene su atributo (tamao, nombre) y su mtodo (aceptar, cancelar, buscar, etctera). OBJETO Instancia particular de una clase
Se crea a partir de ella y ocupa espacio en memoria
Tiene una duracin, pues se crea y se destruye
Ejemplo:
La clase botn de la paleta, cuando se arrastra al rea de trabajo, se crea automticamente un objeto.
Si se arrastran ms botones, se crean ms objetos de la misma clase y cada uno tiene su atributo (tamao, nombre) y su mtodo (aceptar, cancelar, buscar, etctera). Herencia Visibilidad o Acceso Overriding de mtodos en herencia public class Employee { protected String name; protected double salary; protected Date birthDate; public String getDetails() { return Name: + name + \n + Salary: + salary; } } public class Manager extends Employee { protected String department; public String getDetails() { return Name: + name + \n + Salary: + salary + "\n" + Manager of: + department; } } Los mtodos overridden NO PUEDEN ser menos accesibles public class Parent { public void doSomething() {} } public class Child extends Parent { private void doSomething() {} // illegal } public class UseBoth { public void doOtherThing() { Parent p1 = new Parent(); Parent p2 = new Child(); p1.doSomething(); p2.doSomething(); } } Referencia super
super: Es una palabra clave que se utiliza para referenciar atributos o mtodos de la superclase que han sido sobrescritos por la clase hija. Usos: Cuando se hace referencia a un atributo de la clase padre. class Padre { String variable; void metodo() { variable = Padre; } } class Hija extends Padre { String variable; void metodo() { variable = Hija; super.metodo(); System.out.println(variable); System.out.println(super.variable); } } Referencia super
Cuando se hace referencia a un mtodo de la clase padre.
class Padre { String variable; void metodo() { variable = Padre; } } class Hija extends Padre { String variable; void metodo() { variable = Hija; super.metodo(); System.out.println(variable); System.out.println(super.variable); } } Referencia super
Cuando se hace referencia a un constructor de la clase padre.
class Padre { String variable; public Padre(String nombrevar) { variable = nombrevar; } } class Hija extends Padre { String variable; public Hija() { super(Padre); variable = Hija; } } Super
public String getDetails() { return super.getDetails() + \nDepartment: " + department; } public class Manager extends Employee { protected String department; public String getDetails() { return Name: + name + \n + Salary: + salary + "\n" + Manager of: + department; } } Polimorfismo
Polimorfismo: indica muchas formas. Una clase slo tiene una forma, pero una variable que hace referencia a la superclase de una jerarqua puede tener muchas formas (una por cada subclase). Objetos Polimrficos Employee [] staff = new Employee[1024]; staff[0] = new Manager(); staff[1] = new Employee(); staff[2] = new Engineer(); public class TaxService { public void chargeTax(){ TaxService taxSvc = new TaxService(); Manager m = new Manager(); TaxRate t = taxSvc.findTaxRate(m); } public TaxRate findTaxRate(Employee e) { } }
Operador instanceof public class Employee extends Object public class Manager extends Employee public class Engineer extends Employee ---------------------------------------- public void doSomething(Employee e) { if ( e instanceof Manager ) { .. } else if ( e instanceof Engineer ) { .. } else {
} } Casting de objetos public void doSomething(Employee e) { if ( e instanceof Manager ) { Manager m = (Manager) e; System.out.println(This is the manager of + m.getDepartment()); } .. } Clases Abstractas
Clases Abstractas: una clase abstracta representa un concepto abstracto.
Una clase abstracta slo puede ser heredada, pero nunca puede ser instanciada.
Se declara anteponiendo el modificador abstract a la palabra clave class.
Una clase abstracta puede contener mtodos abstractos y mtodos con implementacin.
Un mtodo es abstracto si se declara con el modificador abstract (dentro de una clase abstracta), pero no se implementa.
Las subclases de una clase abstracta deben implementar los mtodos abstractos que tenga definidos.
Sintaxis: abstract class NombreClase Clases Abstractas public class Count { private int serialNumber; public static int counter = 0; public Count() { counter++; serialNumber = counter; } } static Ejemplo para atributos: public class OtherClass { public void incrementNumber() { Count.counter++; } } llamando desde otra clase public class Count2 { private int serialNumber; private static int counter = 0; public static int getTotalCount() { return counter; } public Count2() { counter++; serialNumber = counter; } } Static Ejemplo para mtodos:
public class TestCounter { public static void main(String[] args) { System.out.println("Number of counter is " + Count2.getTotalCount()); Count2 counter = new Count2(); System.out.println("Number of counter is " + Count2.getTotalCount()); } } llamando desde otra clase public class Count3 { private int serialNumber; private static int counter = 0; public static int getSerialNumber() { return serialNumber; // COMPILER ERROR! } } Los mtodos static no pueden ser accedidos como variables de instancia !!!! Conceptos Bsicos de Java Static Ejemplo para mtodos:
public class Count4 { public static int counter; static { counter = Integer.getInteger("myApp.Count4.counter").intValue(); } } public class TestStaticInit { public static void main(String[] args) { System.out.println("counter = "+ Count4.counter); } } Inicializadores Static
Interfaces
Interfaces: una interfaz es una coleccin de definiciones de mtodos sin implementacin y declaraciones de constantes, agrupadas bajo un nombre.
Define un protocolo de comportamiento que debe ser implementado por cualquier clase que pretenda utilizar ciertos servicios, con independencia de las relaciones jerrquicas.
Las interfaces sirven para:
Declarar mtodos que sern implementados por una o ms clases. Define un conjunto de mtodos pero no los implementa. Definir la interfaz de programacin de un objeto, sin mostrar el cuerpo actual de la clase.
Interfaces
Una interfaz permite a objetos no relacionados interactuar.
Una clase que implementa una interfaz debe implementar cada uno de los mtodos que sta define.
Una interfaz puede extender mltiples interfaces. Por lo tanto, se tiene herencia mltiple de interfaces. Una interfaz slo puede ser extendida por otra interfaz.
Una clase puede implementar varias interfaces. Interfaces
Declaracion: System Properties Lo usamos para dialogar con las variables del entorno del sistema operativo
System.getProperties, devuelve un objeto Properties
System.getProperty, devuelve un String con el valor de determinada propiedad
El objeto Properties tiene un mtodo propertiesNames() que se recorre con un Enumeration Uso bsico de cadenas de caracteres Es posible definir literales de tipo cadena entrecomillando texto con comillas dobles
Imprimir con System.out.println() estas cadenas e incluso concatenarlas usando el operador +.
System.out.println(Hola+ mundo);
Tambin se puede hacer de sta manera:
String a, b; a=Hola; b= mundo; String c=a+b; System.out.println(c); Arrays Es un conjunto de datos homogneos que ocupan posiciones de memoria contiguas y que es posible referenciar a travs de un nombre nico. Declaracin de arrays de una dimensin La declaracin de la referencia del array se realiza especificando el tipo del array seguido de []
Despus viene el nombre de la variable. int[] a;
Una vez que se tiene la referencia, se tiene que reservar la memoria para almacenar el array, para ello se utiliza el operador new.
New se utiliza cuando se quiere crear un nuevo elemento de forma dinmica dentro de los programas.
a=new int [10]; Acceso a un array de una dimensin Se accede mediante la referencia y un ndice nico, el ndice del array es un nmero entero comprendido entre 0 y la dimensin -1. int a[]={1,2,3}; System.out.println(b[1]);
Se imprimir 2 Declaracin de un array multidimensional Un array bidimensional, es un array de arrays y se lo define de la siguiente manera:
int [][] tabla=new int [2][3];
Pero solo es obligatorio indicar el nmero de filas, despus se puede reservar memoria para el resto de forma independiente.
int [][] tabla=new int [2][]; tabla [0]=new int [3]; tabla [1]=new int [3]; Acceso a un array multidimensional Es de la misma manera que en los arrays de una dimensin, solo se le aumenta un nuevo grupo de corchetes con el ndice de la siguiente dimensin.
System.out.println(tabla[1][1]); Ejemplo Consola I/O System.out : salida estndar al monitor Genera un objeto de tipo PrintStream
System.in : entrada estndar del teclado Genera un objeto de tipo InputStream
System.err : escribe un error estndar Ejercicio 1 leer del teclado Ejercicio 2 para leer del teclado Ejemplo de uso Array Declaracin char s[]; Point p[]; char[] s; Point[] p; Un array es un objeto. Se crea con new
public char[] createArray() { char[] s; s = new char[26]; for ( int i=0; i<26; i++ ) { s[i] = (char) (A + i); } return s; } public void printElements(int[] list) { for (int i = 0; i < list.length; i++) { System.out.println(list[i]); } } Longitud del array Ejemplo de uso Array Crear un Array con valores iniciales 1) String[] names; names = new String[3]; names[0] = "Georgianna"; names[1] = "Jen"; names[2] = "Simon"; 2) String[] names = { "Georgianna", "Jen", "Simon" }; 1) MyDate[] dates; dates = new MyDate[3]; dates[0] = new MyDate(22, 7, 1964); dates[1] = new MyDate(1, 1, 2000); dates[2] = new MyDate(22, 12, 1964); 2) MyDate[] dates = { new MyDate(22, 7, 1964), new MyDate(1, 1, 2000), new MyDate(22, 12, 1964) }; Ejemplo de uso Array Multidimensional (matrices)
int[][] twoDim = new int[4][]; twoDim[0] = new int[5]; twoDim[1] = new int[5]; int[][] twoDim = new int[][4]; // illegal int[][] twoDim = new int[4][5];
String [][] ciudades={{"BsAs","Sao Pablo","Madrid"}, {"Argentina","Brasil","Espaa"}}; for ( int i=0; i<ciudades.length; i++ ) { for (int j=0; j<ciudades[i].length; j++ ) { System.out.println(ciudades[i][j]) ; } } Recorriendo Array public void printElements(int[] list) { for ( int element : list ) { System.out.println(element); } }
Este FOR, puede ser leido como: Para cada elemento en list hacer.
Redimensionando un Array Qu hacemos entonces? Usamos ARRAYCOPY
NO SE PUEDE HACER
int[] myArray = { 1, 2, 3, 4, 5, 6 }; // nuevo array ms grande int[] hold = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; // copia todo lo de myArray al array hold