1. Java Básico
Un objeto es un contenedor (repositorio) de datos y con un comportamiento que manipula a dichos datos.
Un objeto es un componente reutilizable de software que se modela en tèrminos comùnes a los utilizados para describir las cosas del mundo real.
Un objeto tiene propiedades o atributos, en las cuales se almacenan los datos.
El comportamiento del objeto està dado por los mètodos, que son rutinas que manipulan a los datos.
Una clase es un tipo de dato definido por el programador y que especifica las propiedades y mètodos de un objeto.
Un objeto es un ejemplar de una clase
Por cada clase, pueden existir uno o mas objetos.
Un objeto tiene un tipo de dato, que es la clase.
Cuando se crea un nuevo tipo de clase, se deben realizar dos etapas fundamentales: determinar los atributos y el comportamiento de los objetos.
Un objeto es una instancia de una clase.
Una clase tiene un nombre, una colecciòn de operaciones para manipular a sus instancias y una representaciòn.
Las operaciones que manipulan las instancias de una clase (los objetos) se llaman mètodos.
El estado o representaciòn de una instancia se almacena en variables de la instancia, llamadas propiedades o atributos.
El envìo de mensajes a objetos (instancias) es similar a la llamada a procedimientos en lenguajes de programaciòn tradicionales.
La programaciòn orientada a objetos es la tècnica de codificaciòn de software que se fundamenta en los conceptos de clase,objetos,mètodos, mensajes, herencia y polimorfismo.
Un objeto se compone de datos y mètodos que operan sobre esos objetos.
El enfoque orientado a objetos es reutilizar còdigo o clases ya existentes y construir nuevas clases. Este enfoque se conoce como bottom-up.
Difiere al de la programaciòn estructurada que obligaba a concebir todo el sistema desde la funciòn principal y que se fuera diviendo en funciones màs especificas (top-down); pero que no concebia la reutilizaciòn como parte de su enfoque y obligaba al programador a tener todo planeado al momento de codificar.
2. Elementos bàsicos de Java.
Java se originò en Sun Microsystems como un proyecto para los dispositivos electrodomèsticos inteligentes. Java se utiliza actualmente para crear aplicaciones, sistemas cliente/servidor, aplicaciones Web, y para aplicaciones de dispositivos mòviles.
Java actualmente està dividido en tres plataformas:
- Java 2 Standard Edition (J2SE) que ofreeece los elementos bàsicos del lenguaje (manipulaciòn de clases, estructuras de datos, archivos, componentes de interfase gràfica de usuario, comunicaciones TCP/IP y Web, multihilado, XML, multimedia, JavaBeans, còdigo movil como applets)
- Java 2 Enterprise Edition (J2EE) que offfrece componentes para programaciòn de sistemas cliente/servidor tales como componentes Web (Servlets,JSP), componentes transaccionales (Enterprise Java Beans), componentes de conectividad (Java Database Connectivity, Java Naming Directory Interface, JavaMail, Java Connector Architecture).
- Java 2 Micro Edition (J2ME) que ofrece componentes para programaciòn de dispositivos mòviles, con la implantaciòn de Midlets
Los programas en Java consisten en varias piezas que se llaman clases. Estas clases consisten de piezas llamadas mètodos, los cuales realizan tareas y devuelven informaciòn cuando completan esas tareas. La mayorìa de los programadores de Java utilizan las colecciones de clases existentes en las bibliotecas de clases Java.
Los nombres de archivos de còdigo fuente en Java terminan con la extensiòn .java. El nombre del archivo es idèntico al nombre de la clase.
El compilador de Java (javac) traduce un programa Java a còdigo de bytes (bytecodes): el lenguaje que el intèrprete de Java puede entender. Si un programa se compila correctamente, el compilador produce un archivo con la extensiòn .class. Este es el archivo que contiente los còdigos de bytes que interpretàn durante la fase de ejecuciòn.
Un programa Java debe colocarese en memoria antes de que pueda ejecutarse. De esto se encarga el cargador de clases, que toma el archivo (o archivos) .class que contiene los còdigos de bytes y los transfiere de la memoria principal. El archivo .class puede cargarse desde un disco en el sistema operativo o a travès de una red.
Una aplicaciòn es un programa que generalmente se guarda y se ejecuta en el equipo local del usuario. Las aplicaciones se cargan en memoria y despues se ejecutan mediante el intèrprete java.
Un applet es un programa que generalmente se guarda en un equipo remoto, al cual se conectan los usuarios mediante un navegador Web.
Una aplicaciòn en Java es un programa independiente qe se ejecuta utilizando el interprete java, que es la implantaciòn de la màquina virtual de Java (Java Virtual Machine o JVM)
Los programadores insertan comentarios para documentar los programas y mejorar su legibilidad. Un comentario que empieza con // es un comentario de una linea. Un comentario que empieza con /* y termina con */ es un comentario tradicional y puede abarcar varias lineas.
Una cadena de caracteres contenido entre comillas dobles se conoce como String.
En el còdigo Java, las lìneas en blanco, los caracteres de espacio, nueva lìnea y tabuladores son caracteres de espacio en blanco, que, cuando se encuentran fuera de las cadenas de caracteres, son ignorados por el compilador.
Las palabras clave estàn reservadas para uso en Java y deben aparecer completamente en minùsculas. Nunca utilizar esas palabras para nombres de clases, variables o mètodos.
Las palabras reservadas son:
abstract else int static
boolean extends inteface super
break false long switch
byte final native synchronized
case finally new this
catch float null throw
char for package throws
class goto private transient
continue if protected true
default implements public try
do import return void
double instanceof short volatile
while
La palabra class introduce la declaraciòn de una clase y va seguida por el nombre de la clase que, por convenciòn debe comenzar con mayùscula. Si el nombre de una clase contiene màs de una palabra, la primera letra de cada palabra debe estar en mayùscula.
Un identificador es una serie de caracteres que consisten en letras, digitos, guiones bajos (_) y signos de moneda ($) que no empieza cn un digio, no contiene espacios y no es una palabra reservada.
Java es sensible a mayùsculas y minùsculas, es decir, distingue la diferencia entre letras mayùsculas y minùsculas.
Una llave izquierda {, y una derecha }, delimita el cuerpo de la declaraciòn de una clase.
La sintàxis es
class NombreClase {
//cuerpo de la clase
}
Los mètodos puede realizar tareas y devolver informaciòn cuando las han complementado.
Las aplicaciones en Java comienzan su ejecuciòn en el mètodo main. La primera lìnea del mètodo main debe ser:
public static void main (String [] args)
Una llave izquierda {, y una derecha, }, delimitan el cuerpo de la declaraciòn de un mètodo.
System.out es el objeto de salida estàndar o pantalla. System.out prermite a las aplicacions en Java mostrar cadenas en la ventana de comandos en la que se ejecuta la aplicaciòn.
Los mètodos print y println del objeto System.out imprimen la informaciòn en la ventana de comandos. Cuando el mètodo print termina de mostrar su argumento, no coloca el cursor de salida al principio de la siguiente lìnea en la ventana de comandos. El siguiente caracter mostrado en la ventana de comandos aparece inmediatamente despuès del ultimo caracter mostrado con print. Cuando println completa su tarea, coloca el cursor de salida al principio de la siguiente lìnea en la ventana de comandos.
Cada instrucciòn Java debe terminar con un punto y coma (el terminador de la instrucciòn)
Java contiene muchas clases predefinidas que se agrupan en paquetes (categorìas de clases relacionadas). En conjunto, estos paquetes forman la biblioteca de clases de Java, conocida como la Interfaz de Programaciòn de Aplicaciones (Application Programming Interface o API) de Java.
Una variable es una ubicaciòn en la memoria de la computadora, en donde puede guardarese un valor para que un programador lo utilice. Todas las variables tienen un nombre, tipo, tamaño y valor. El nombre de una variable puede ser cualquier identificador vàlido. Todas las variables deben declararse con un nombre y un tipo para que puedan utilizarse en un programa.
Las declaraciones terminan con un punto y coma (;) y pueden dividirse en varias lineas,separando cada variable en la declaraciòn con una coma (formando una lista, separada por comas, de nombres de variables)
Las variables tienen los siguientes tipos
Tipo Tamaño Valores que puede tomar Uso habitual
boolean. 1 bit true o false banderas, condiciones para estructuras de control
byte 8 bits De -128 a 127 Bucles for, indices, manipulaciòn de flujos de archivos
char 16 bits De '\u0000' a '\uFFFF' Para representar un caracter en formato Unicode
short 16 bits De -32768 a 32767 Conteo, aritmetica de enteros
int 32 bits -2147483648 a 2147483647 Aritmetica de enteros en general
long 64 bits -923372036854775808 a Calculos con enteros en general
923372036854775807
float 32 bits IEEE 754 Precision de 7 digitos
double 64 bits IEEE 754 Precision de 15 digitos
Los anteriores tipos son conocidos como escalares o nativos.
Todos los que no estan en la lista, son no escalares o de tipo objeto o referencia.
Un ejemplo de un tipo no nativo es String.
Toda variable se declara como
tipodedato nombre;
donde tipodedato es escalar o referencia
el nombre sigue las reglas de un identificador
Toda variable que se declara en un metodo, antes de ser usada, debe ser inicializada.
3. Operadores y expresiones
Java soporta operadores unitarios, binarios y de otros tipos.
Una expresiòn es un elemento de un programa que toma un valor o realiza una operaciòn.
La sintaxis para usar expresiones:
variable = expresion
donde la variable es un identificador vàlido Java y declarado como variable
expresion es un constante, otra variable a la que se ha asignado previamente un valor o una formaula que se ha evaluado y cuyo resultado es del mismo tipo que el de la variable
Los operadores de asignaciòn en Java son
Simbolo Uso Equivalencia no abreviada Descripciòn
= a = b Asignar el valor de la variable b a la variable a
+= a+= b a=a+b Suma b con a y lo asigna a la variable a
-= a-= b a=a-b Resta b de a y lo asiiigna a la variable a
*= a*= b a=a*b Producto de b con a y lo asigna a la variable a
/= a/= b a=a/b Divide a entre b y lo asigna a la variable a
%= a%= b a=a%b Mòdulo o residuo de la division de a entre b y
lo asigna a la variable a
Los operadores aritmèticos son
Operador Tipo Entero Tipo Real
+ Suma Suma
- Resta Resta
* Producto Producto
/ Division entera Division con punto flotante
cociente
% Division entera No aplica
residuo
Los operadores aritmèticos unarios son + y -. El ùltimo convierte a valor negativo cualquier variable de tipo numèrico entera o real.
Los operadores de incremento y decremento son:
Operador Significado
a--
--a a=a-1;
a++
++a a=a+1;
b=a++ b=a; a=a+1;
b=++a a=a+1; b=a;
b=a-- b=a; a=a-1;
b=--a a=a-1; b=a;
Los operadores relacionales son utilizados para producir valores de tipo boolean, y comparan dos variables entre si.
Operador Significado
== Igual a
!= No igual a
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
Los operadores lògicos permite combinar varias expresiones de tipo boolean
Operador Significado Ejemplo
! No lògico !(x>=y)
^ XOr logico x9
|| Or logico m==5 || n>10
&& And logico mj
Tabla de verdad
a b a||b a&&b a^b
false false false false false
false true true false true
true false true false true
true true true true false
En Java se pueden realizar asignaciones de tipo boolean
boolean isMayor = (a>10) || (b>c);
boolean isIgual = x==y;
Los operadores de cadena de caracteres permiten concantentar una o mas variables de tipo String con tipos nativos
El operador es + y tiene la siguiente sintaxis
variable-string= variable-string + variable_string_o_nativa;
El operador ternario, ? tiene la siguiente sintaxis:
variable = expresion-boolean ?expresion-cierto: expresion-falso
y es equivalente a :
if (expresion-boolean)
variable=expresion-cierto
else
variable=expresion-falso
4. Instrucciones de Control.
Existen tres tipos de estructuras de control: secuencia, selecciòn y repeticiòn.
La estructura de secuencia està integrada en Java, de manera predeterminada, las instrucciones se ejecutan en el orden en el que aparecen.
Una estructura de selecciòn elige entre varios cursos alternativos de acciòn
La instrucciòn if ejectua una secciòn indica solamente cuando la condiciòn es verdadera
La sintaxis es
if (condicion)
instrucciones-bloque-if
Las instrucciòn if ... else especifica acciones separadas a ejecutar cuando la condiòn es verdadera y cuando es falsa.
if (condicion)
instrucciones-bloque-if
else
instrucciones-bloque-else
Cuando debe ejecutarse màs de una instrucciòn, las instrucciones deben ir encerradas entre llaves, formando un bloque.
Una instrucciòn vacia, la cual implica que no va a realizarse ninguna acciòn, se indica mediante un punto y coma (;)
Para probar varias condiciones, se puede usar if de la siguiente manera
if (condicion1)
instruccion-bloque-if
else if (condicion2)
instruccion-bloque-if
else if (condicion3)
instruccion-bloque-if
else
instrucciones-bloque-else
La instrucciòn switch case permite evaluar mùltiples condiciones sobre variables de tipo char, byte, short o int
La sintaxis es
switch (variable-condicion)
case constante1: instruccion-bloque-case
break;
case constante2:case constante3: instruccion-bloque-case
break;
case constante4: instruccion-bloque-case
break;
default: instruccion-bloque-default
break;
Una estructura de repeticiòn especifica que una acciòn va a repetirse mientras cierta condiciòn sea verdadera.
El formato para la instrucciòn while es
while ( condiciòn )
instrucciones-bloque-while
El formato para la instrucciòn do-while es
do
instrucciones-bloque-do
while (condicion-do);
El formato para la instrucciòn for es:
for (instruccion-inicio;condicion-for;cambio-variable-control-for)
instruccion-bloque-for
5. Clases y objetos
En Java, la unidad de còdigo es una clase.
Una clase se declara con sus atributos y mètodos.
La clase es la plantilla utilizada para construir objetos.
La estructura de una clase es
class NombreClase {
//atributos, propiedades o variables de la clase
tipoAtributo atributo1;
tipoAtributo atributo2;
tipoAtributo atributo3=valorInicial;
//constantes de la clase
public final static tipoConstante CONSTANTE1=VALOR1;
public final static tipoConstante CONSTANTE2=VALOR2;
public final static tipoConstante CONSTANTE3=VALOR3;
//
tipoRetorno metodo1(tipoParametro param1,tipoParametro param2) {
//cuerpo del metodo que consiste en
//declaraciones de variables del metodo
//estructuras de control condicional, ciclos
//instrucciones Java, expresiones
//invocacion a otros metodos de la clase
//creacion de objetos
//invocacion de metodos o manipulacion de atributos de un objeto
return variable_de_TipoRetorno;
}
tipoRetorno metodo2(tipoParametro param1,tipoParametro param2) {
//cuerpo del metodo
}
}
Donde
tipoAtributo puede ser cualquier tipo escalar o de tipo objeto (clase)
tipoConstante puede ser cualquier tipo escalar o de tipo objeto
tipoRetoron puede ser void, tipo escalar o de tipo objeto
En una clase se pueden declarar tantos atributos, constantes o mètodos se requieran.
Los atributos de la clase pueden ser declarados e inicializados.
NOTA: No incluir còdigo Java de instrucciones de control, expresiones o invocaciones a metodos u objetos en el cuerpo
de la clase. Solo se puede incluir en los metodos de la clase.
Una vez codificado una clase, se puede crear o instanciar un objeto del tipo de la clase.
Un objeto es manipulado por una variable de tipo referencia. La referencia tiene un tipo de dato, que es
el nombre de la clase del objeto.
Para crear un objeto
TipoObjeto variableReferencia = new TipoObjeto();
La variableReferencia recibe un valor que es igual a la localizaciòn del objeto creado en el modelo de memoria de la JVM.
Ese valor no tiene una interpretaciòn y es un identificador que permite a un programador al momento de depurar, el
diferenciar los valores tomados por las referencias
Una variableReferencia puede tomar un valor null, indicando que esta referenciando a un objeto no existente.
Otro valor posible que puede tomar es resultado de aplicar la operacion new
Tambien puede tomar el valor de una referencia del mismo tipo de clase, implicando que una o mas referencias pueden manipular
al mismo objeto.
Las operaciones que pueden realizarse sobre una referencia son:
+ Declaracio de una referencia
TipoObjeto variableReferencia;
+ Asignaciòn de un valor null
variableReferencia=null;
+ Creacion de un objeto
variableReferencia = new TipoObjeto();
+ Asignaciòn o modificaciòn de una propiedad del objeto
tipoAtributo variable = variableReferencia.atributo1;
variableReferencia.atributo2= valortipoAtributo; //puede ser tambien una expresion Java
+ Invocacion de un mètodo que retorna un resultado
tipoRetorno variable = variableReferencia.metodo1(param1, param2);
+ Invocacion de un mètodo que no retorna resultados ni recibe paràmetros
variableReferencia.metodo3();
+ Cuando una referencia es utilizada para invocar metodos o manipular atributos, se dice que se està enviando un mensaje al objeto.
+ Asignaciòn de una referencia a otra referencia del mismo tipo
TipoObjeto variableReferencia2 = variableReferencia
+ Comparacion de dos referencias (la referencia1 "ve" al mismo objeto que la referencia2?)
boolean bandera = ( variableReferencia2 == variableReferencia1)
+ Comparacion de dos referencias (la referencia1 "ve" a un diferente objeto que la referencia2?)
boolean bandera = ( variableReferencia2 != variableReferencia1)
Las propiedades de un objeto pueden ser de tipo referencia. Para iniciar el valor de una propiedad referencia, se puede aplicar el operador new en la misma sentencia de declaraciòn.
Si las propiedades no son inicializadas, el valor que toma es el mìnimo del tipo de dato (para los nativos numericos es el valor 0, para el tipo boolean false, para char es caracter nulo y para referencias el valor null
El operador ".", al ser utilizado en una referencia permite manipular propiedades o metodos.
EL UTILIZAR AL OPERADOR "." CON UNA REFERENCIA CON VALOR null, PROVOCA QUE LA JVM GENERE UN ERROR O EXCEPCION CONOCIDA COMO java.lang.NullPointerException
Al conjunto de valores que tienen las propiedades de un objeto, se llama estado del objeto.
En cualquier còdigo Java,pueden existir uno o mas objetos.
Para usar una constante de una clase NO ES NECESARIO crear un objeto, basta con usar el nombre de la clase, al operador "." y al nombre de la constante.
tipoConstante v= Clase.CONSTANTE1;
A la operaciòn de creaciòn de un objeto se le conoce como instanciar
6. Arreglos.
Un arreglo en Java es un objeto que contiene una secuencia de variables del mismo tipo
Cuando el tipo de dato de un arreglo es de tipo de dato clase, se conoce como un arreglo de objetos.
Todo arreglo en Java se trata como una referencia. Por lo tanto puede tomar dos valores, null o el valor asignado en el espacio de memoria de la JVM.
Las operaciones que se pueden realizar sobre un arreglo son:
+ Declaraciòn de un arreglo.
tipoArreglo [] referenciaArreglo;
+ Creaciòn de un arreglo
referenciaArreglo = new tipoArreglo[capacidadArreglo];
NOTA: Cuando un arreglo es creado, solo se pide espacio para cada celda del arreglo. Si el tipo del arreglo es escalar,
se inicializa con el valor minimo posible; si es de tipo de una clase, el valor es null. No se debe usar un arreglo de
objetos sin inicializar.
+ Preguntar la longitud de un arreglo
int capacidad= referenciaArreglo.length;
+ Inicializar un arreglo de objetos, llenando celda por celda
for (int i=0;i               ( geocities.com/gusdelact)