You are on page 1of 31

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR


PARA LA EDUCACIÓN UNIVERSITARIA
INSTITUTO UNIVERSITARIO DE TECNOLOGÍA
“CORONEL AGUSTÍN CODAZZI”
BARINAS EDO BARINAS

ENTORNO DEL LENGUAJE,


PROGRAMACIÒN Y MANEJO DE JAVA.

Autor: Torres, Miguel


Docente: Pedro Pérez
Asignatura: Lenguaje Fortran

Barinas, Febrero 2019


Contenidos

Pp.
Objetivos del Manual 1
Presentaciòn …………………………………………………….... 2
Entorno del lenguaje 3
Objetivos del lenguaje 5
Orientaciòn a Objetos.............................................................. 5
Polimorfismo....................................................... 6
Herencia............................................................................................ 6
Encapsulamiento de datos....................................................................... 7
Caracteristica de distinguido del lenguaje ............................................. 8
Seguro .................................................................................................. 8
Probable................................................................................................ 9
Dinàmico.............................................................................................. 10
Programaciòn en Java 11
Ambiente de desarrollo .......................................................... 11
Creaciòn de codigo fuente .................................................................. 12
Estructura de datos ...................................................................... 13
Algoritmos ............................................................................. 13
Variables en java ..................................................... 14
Operadores .......................................................... 15
Sentencia de asignaciòn .................................................................... 16
Sentencia de while ................................................................ 17
Sentencia do while ..................................................................... 18
Estructuras de programas y clases .................................................... 19
Comentarios .................................................................. 20
Comentario de implementaciòn y documentaciòn ................................. 21
Identificadores ............................ 21
Clases ….................................... 22
Modificador de Acceso .................................................. 23
Interfase y Atributos ......................................................................... 24
Estructuras de Almacenamiento 25
Arrays 25
Arraylist 26
Ejercicios propuestos 28
REFERENCIAS BIBLIOGRÀFICAS 29
OBJETIVOS DEL MANUAL

General

Brindar la información necesaria para poder tener conocimiento en cuanto al

entorno. Estructura y manejo de la programaciòn Java.

Específicos

 Describir el entorno del lenguaje Java .

 Definir claramente cada uno de los terminos utilizados en la programaciòn de

Java

 Detallar la estructura de programaciòn y clases

 Describir las principales estructuras de almacenamiento usadas en Java .

1
Presentaciòn

El presente manual tiene como finalidad describir el lenguaje de

programaciòn, sus entornos, estructuras, clases y formas de almacenamiento en el

lenguaje de programaciòn JAVA.

En este manual se harà un recorrido mundo de la programación de

computadoras a travès del lenguaje Java. Durante este, se proporcionaràn

diversas ejemplos resueltos para demostrar los diversos componentes que posee

dicho lenguaje, asì como ejercicios por resolver , ya que los programadores

necesitan ser buenos resolviendo problemas. Se presenta el material de una

manera sencilla y entendible a los usuarios .

Se describirà en forma detallada conceptos generales del entorno del

lenguaje Java, importa dirigir la atención a las características de Java que difieren

de otros lenguajes que conocen. En particular, debido a que C++ y Java son

lenguajes de programación muy similares, aunque el Java no requiere de algún tipo

de conocimiento previo para manejarlo.

Finalmente, con el lenguaje de progrmaciòn java, sus estructuras, clases y

estructuras de almacenamiento que se tratan en el siguiente manual de manera

explicativa y detallada van a permitir desarrollar cualquier tipo de programas, ya que

este es soportado en cualquier sistema operativo y diversos dispositivos.

2
Entorno del lenguaje Java

Un lenguaje de programación es un lenguaje que utiliza palabras

especialmente definidas, gramática y puntuación que una computadora entiende. Si

se intentara ejecutar instrucciones en seudocódigo, la computadora sería incapaz

de entenderlas. Pero, si se intentaran ejecutar instrucciones en un lenguaje de

programación (en código fuente), la computadora sí las entendería.

Así como hay muchos lenguajes que se hablan en el mundo (inglés, chino,

hindi, y otros.), también existe una infinidad de lenguajes de programación. Algunos

de los más populares son VisualBasic, C y Java. Cada lenguaje de programación

define sus propias reglas de sintaxis. Este manual se enfoca en el lenguaje de

programación Java.

A tal efecto, si se escribe un programa en código fuente de Java, deben

seguirse reglas precisas de sintaxis de Java en términos de palabras, gramática y

puntuación. Si se escribe código fuente de Java utilizando una sintaxis errónea (por

ejemplo, si se escribe una palabra incorrecta o se olvida introducir un punto y coma),

y se intenta ejecutar dicho código fuente en una computadora, ésta será incapaz de

entenderlo.de cliente-servidor de web, juegos, páginas web dinámicas entre otros.

El lenguaje de programación Java fue originalmente desarrollado por James

Gosling, de Sun Microsystems (constituida en 1982 y posteriormente adquirida el

27 de enero de 2010 por la compañía Oracle), y publicado en 1995 como un

componente fundamental de la plataforma Java de Sun Microsystems. Como se

señalo anteriormente, el Java tiene su propia estructura, reglas de sintaxis y

3
paradigma de programación.. El paradigma de programación del lenguaje Java se

basa en el concepto de programación orientada a objetos (OOP), que las funciones

del lenguaje soportan. El lenguaje Java es un derivado del lenguaje C, por lo que

sus reglas de sintaxis se parecen mucho a C: por ejemplo, los bloques de códigos

se modularizan en métodos y se delimitan con llaves ({ y }) y las variables se

declaran antes de que se usen. El lenguaje Java se describe por su sintaxis y su

semántica. La sintaxis define la estructura y apariencia de al escritura del código

Java. La semántica define lo que significa cada parte del código y cómo se

comportará cuando se ejecuta.

Los componentes básicos de la sintaxis son las palabras reservadas

(keywords) y componentes de léxico (tokens). Una palabra reservada es una

palabra o identificador que tiene un significado específico en el lenguaje. Las

palabras reservadas sólo se pueden utilizar en el mundo en que está definido en el

lenguaje. Los componentes de léxico( token) incluyen cada palabra, símbolo o

grupo de símbolos que aparecen en el código fuente del programa.

Una gramática se utiliza para llevar juntos todos los componentes de la

sintaxis y definir la estructura de unidades sintácticamente correcta del código Java.

La gramática Java específica el orden preciso en el que se puedan escribir las

palabras reservadas y los símbolos, y se utilizan por el compilador Java para

asegurar que el programador hace las cosas correctas. Cualquier código que no

esté escrito de modo correcto emitirá mensajes de error y no construirá un programa

ejecutable.

Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es

el mecanismo de espacio de nombres del lenguaje Java. Dentro de los paquetes se

4
encuentran las clases y dentro de las clases se encuentran métodos, variables,

constantes, entre otros.

El paradigma de programación del lenguaje Java se basa en el concepto de

programación orientada a objetos (OOP), que las funciones del lenguaje soportan.

Java como lenguaje considerò los siguientes objetivos; simple y orientado a

objetos, independiente de la arquitectura de harware y de la plataforma de sofware,

multidispositivo, seguro, Multithreading.

Simple

Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las

características menos usadas y más confusas de éstos. C++ no es un lenguaje

conveniente por razones de seguridad, pero C y C++ son los lenguajes más

difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido

y fácil aprendizaje. Java elimina muchas de las características de otros lenguajes

como C++, para mantener reducidas las especificaciones del lenguaje y añadir

características muy útiles. No es necesario preocuparse de liberar memoria, el

reciclador se encarga de ello y como es de baja prioridad, cuando entra en acción,

permite liberar bloques de memoria muy grandes, lo que limita en mucho la

fragmentación de la memoria.

Orientado a Objetos

Java implementa la tecnología básica de C++ con algunas mejoras y elimina

algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja

con sus datos como objetos y con interfaces a esos objetos. Soporta las tres

características propias del paradigma de la orientación a objetos: encapsulación,

herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++,

5
clases y sus copias, instancias. Estas instancias, como en C++, necesitan ser

construidas y destruidas en espacios de memoria. Java incorpora funcionalidades

inexistentes en C++ como por ejemplo, la resolución dinámica de métodos.

Definamos que es un Objeto

Objeto: entidad existente en la memoria del ordenador que tiene unas

propiedades (atributos o datos sobre sí mismo almacenados por el objeto) y unas

operaciones disponibles específicas (métodos).

Paradigmas que lo resapaldan:

En programación orientada a objetos se denomina polimorfismo a la

capacidad que tienen los objetos de una clase de responder al mismo mensaje o

evento en función de los parámetros utilizados durante su invocación. Un objeto

polimórfico es una entidad que puede contener valores de diferentes tipos durante

la ejecución del programa. Ejemplo: este método devuelve la suma de 2

parámetros, Function suma(int numero1,int numero2), este método devuelve la

suma de los 3 parámetros, Function suma(int numero1,int numero2, int numero3),

este método devuelve la concatenación de cadena1 y cadena2, Function

suma(String cadena1, String cadena2).

La herencia por su parte, es específica de la programación orientada a

objetos, donde una clase nueva se crea a partir de una clase existente. La herencia

(a la que habitualmente se denomina subclase) proviene del hecho de que la

subclase (la nueva clase creada) contiene las atributos y métodos de la clase

primaria. La principal ventaja de la herencia es la capacidad para definir atributos y

6
métodos nuevos para la subclase, que luego se aplican a los atributos y métodos

heredados.

El encapsulamiento por su parte en la programación orientada a Objetos


se ddefine de la siguiente manera;

Encapsulamiento ; Es el proceso de almacenar en una misma sección los


elementos de una abstracción que constituyen su estructura y su comportamiento;
sirve para separar el interfaz contractual de una abstracción y su implantación.

Pero..! ¿Cómo consigo esto?, ¡tranquilo! esto se consigue a través de la

ocultación de información, ¿No sabes que es la ocultación de información?,

¡Tranquilo!, Ocultación de información es el proceso de ocultar “Todos los

Secretos” de un objeto que no aportan a sus características específicas.

Para que la abstracción funcione como debe, la implementación debe estar

encapsulada, nunca está de más recordar que cada clase debe tener dos partes,

una interfaz y una implementación, tranquilo no te asustes si no sabes que es una

clase, ya llegaremos a ese tema, de momento manténgase concentrado en la

encapsulación.

Existen tres niveles de acceso para el encapsulamiento, los cuales son:

Público (Public): Todos pueden acceder a los datos o métodos de una clase

que se definen con este nivel, este es el nivel más bajo, esto es lo que se quiere

que la parte externa vea.

Protegido (Protected): Se puede decir que estás no son de acceso público,

solamente son accesibles dentro de su clase y por subclases.

7
Privado (Private): En este nivel se puede declarar miembros accesibles sólo

para la propia clase.

Distribuido

Java se ha construido con extensas capacidades de interconexión TCP/IP.

Existen librerías de rutinas para acceder e interactuar con protocolos como http y

ftp. Esto permite a los programadores acceder a la información a través de la red

con tanta facilidad como a los ficheros locales. Java en sí no es distribuido, sino que

proporciona las librerías y herramientas para que los programas puedan ser

distribuidos, es decir, que se corran en varias máquinas, interactuando.

Robusto

Java realiza verificaciones en busca de problemas tanto en tiempo de

compilación como en tiempo de ejecución. Java obliga a la declaración explícita de

métodos, reduciendo así las posibilidades de error. Maneja la memoria para eliminar

las preocupaciones por parte del programador de la liberación o corrupción de

memoria. Estas características reducen drásticamente el tiempo empleado en el

desarrollo de aplicaciones Java.

Seguro

La seguridad en Java tiene dos facetas. En el lenguaje, características como los

punteros o el casting implícito que hace el compilador de C y C++ se eliminan para

prevenir el acceso ilegal a la memoria. Cuando se usa Java para crear un

navegador, se combinan las características del lenguaje con protecciones de

sentido común aplicadas al propio navegador. En resumen, las aplicaciones de Java

resultan extremadamente seguras, ya que no acceden a zonas delicadas de

memoria o de sistema, con lo cual evitan la interacción de ciertos virus. Java no

8
posee una semántica específica para modificar la pila de programa o la memoria

libre o utilizar objetos y métodos de un programa sin los privilegios del kernel del

sistema operativo

Portable

Más allá de la portabilidad básica por ser de arquitectura independiente, Java

implementa otros estándares de portabilidad para facilitar el desarrollo. Los enteros

son siempre enteros y además, enteros de 32 bits en complemento a 2. Además,

Java construye sus interfaces de usuario a través de un sistema abstracto de

ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc

o Mac.

Interpretado

El intérprete Java (sistema run-time) puede ejecutar directamente el código

objeto. Enlazar (linkar) un programa normalmente consume menos recursos que

compilarlo, por lo que los desarrolladores con Java pasarán más tiempo

desarrollando y menos esperando por el ordenador. No obstante, el compilador

actual del JDK es bastante lento. Por ahora, que todavía no hay compiladores

específicos de Java para las diversas plataformas, Java es más lento que otros

lenguajes de programación, como C++, ya que debe ser interpretado y no ejecutado

como sucede en cualquier programa tradicional.

Multihilo

Al ser MultiHilo ( o multihilvanado, mala traducción de multithreaded), Java

permite muchas actividades simultáneas en un programa. Los hilos -a veces

llamados, procesos ligeros, o hilos de ejecución- son básicamente pequeños

procesos o piezas independientes de un gran proceso. Al estar estos hilos

9
construidos en el mismo lenguaje, son más fáciles de usar y más robustos que sus

homólogos en C o C++. El beneficio de ser multihilo consiste en un mejor

rendimiento interactivo y mejor comportamiento en tiempo real.

El subprocesamiento múltiple en java es un proceso de ejecución de varios

subprocesos simultáneamente. El hilo es básicamente un subproceso liviano, una

unidad de procesamiento más pequeña. Multiprocesamiento y multiproceso, ambos

se utilizan para lograr la multitarea. El multihilo se refiere a la ejecución concurrente

de múltiples procesos simultáneamente.

Dinámico

Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no

intenta conectar todos los módulos que comprenden una aplicación hasta el mismo

tiempo de ejecución. Las librería nuevas o actualizadas no paralizarán la ejecución

de las aplicaciones actuales -siempre que mantengan el API anterior. Java también

simplifica el uso de protocolos nuevos o actualizados.

Indiferente a la arquitectura.

Java está diseñado para soportar aplicaciones que serán ejecutadas en los más

variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones

de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para

acomodar requisitos de ejecución tan diversos o variopintos, el compilador de Java

genera bytecodes: un formato intermedio indiferente a la arquitectura diseñado para

transportar el código eficientemente a múltiples plataformas hardware y software. El

resto de problemas los soluciona el intérprete de Java.

10
Programación en Java

Hoy en día, los programadores utilizan Java en muchos ambientes diferentes,

tal como se indicò anteriormente, en esta ocasiòn , se aprenderá a introducir un

programa Java en una computadora, compilarlo y ejecutarlo, para realizar una

progrmaciòn estableciendo diversos terminos que se utilizan en la misma los cuales

se describe uno a uno a continuaciòn;

Ambientes de desarrollo

Existen diferentes formas de introducir un programa Java en una

computadora. Se puede utilizar un ambiente de desarrollo integrado o un editor de

texto plano. Se describirán brevemente ambas opciones. Un ambiente de

desarrollo integrado (IDE, por sus siglas en inglés) es más que una larga pieza de

software, que permite introducir, compilar y ejecutar programas. La introducción,

compilación y ejecución son parte del desarrollo de un programa y están integradas

juntas en un ambiente, de ahí el nombre “ambiente de desarrollo integrado”.

Un editor de texto plano es una pieza de software que permite al usuario

introducir y salvar texto a manera de archivos. Los editores de texto plano no saben

acerca de compilación y ejecución de programas. Si se utiliza un editor de texto

plano para introducir un programa, será necesario utilizar herramientas de software

separadas para compilar y ejecutar el programa.

Compilación de un programa de Java ; el compilador es una herramienta que

toma el código .java que fue escrito en el editor y lo convierte a un formato que será

comprendido por la máquina.

11
Creación del código fuente

En el contexto de la informática, el código fuente se define como el conjunto

de líneas de textos, que son las directrices que debe seguir la computadora para

realizar dicho programa; por lo que es en el código fuente, donde se encuentra

escrito el funcionamiento de la computadora. El código fuente de un programa está

escrito en un lenguaje de programación determinado, sin embargo este tipo de

lenguaje no puede ser ejecutado directamente por el computador, sino que debe

ser traducido a otro lenguaje que el ordenador pueda ejecutar más fácilmente. Para

esta traducción se emplean los llamados compiladores, ensambladores, intérpretes,

entre otros.

Ejemplo ; El código de nuestro programa en Java, escrito en el bloc de notas,

será el siguiente:

/* Primer Ejemplo Hola Java - aprenderaprogramar.com */

public class Ejemplo {


public static void main(String[ ] arg) {
System.out.println("Hola Java");
}
}

Antes de continuar definamos compiladores, ensambladores e


intèrpretes en java.

El término ensamblador se refiere a un tipo de programa informático que se encarga


de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto
que contiene código máquina, ejecutable directamente por el microprocesador.

Cuando el lenguaje que hemos empleado es de alto nivel, la traducción es más


complicada, y a veces implicará también recopilar varios fuentes distintos o incluir
posibilidades que se encuen¬tran en otras bibliotecas que no hemos preparado
nosotros. Las herramientas encargadas de realizar todo esto son los compiladores.

Un intérprete es una herramienta parecida a un compilador, con la diferencia de que


en los intérpretes no se crea ningún "programa ejecutable" capaz de funcionar "por sí
solo",
12
Para seguir un orden y evitar problemas posteriores durante la compilación,

haremos lo siguiente. Crearemos una carpeta en C: denominada “Ejercicios” y

ubicaremos el programa Ejemplo.java dentro de esta carpeta.

¿Qué es una Estructura de Datos?

Una estructura de datos es una clase contenedora que proporciona

almacenamiento para ítems de datos, y capacidades para almacenar y recuperar

estos datos. Algunos ejemplos de estructuras de datos son los arrays, las listas

enlazadas, las pilas y las colas. Las estructuras de datos tienen como objetivo

facilitar la organización, con el propósito de que la manipulación de ellos sea

eficiente. Por eficiencia se entiende la habilidad de encontrar y manipular los datos

con el mínimo de recursos tales como tiempo de proceso y espacio en memoria. No

es lo mismo hacer un programa para manipular decenas de datos que para miles

de ellos.

Conocer, y sobre todo, utilizar las estructuras de datos es esencial para

escribir programas que utilicen eficientemente los recursos de la computadora.

Existen diversos tipos de estructuras de datos, las hay desde las muy generales y

ampliamente utilizadas hasta otras muy especializadas para problemas particulares.

La selección de la estructura de datos apropiada permite utilizar la que sea más

eficiente para el problema específico que se desea resolver, con lo cual se optimiza

el rendimiento del programa.

¿Qué es un Algoritmo?

Normalmante los algoritmos se asocian con estructuras de datos. Un

algoritmo es una secuencia de instrucciones que realizan una tarea en un periodo

de tiempo finito. El algoritmo recibe cero o más entradas, produce al menos una

13
salida, consiste en instrucciones claras y poco ambiguas, termina después de un

número finito de pasos, y es lo suficientemente básico que una persona puede llevar

a cabo el algoritmo utilizando lápiz y papel. Algunos ejemplos de algoritmos

asociados con estructuras de datos son: búqueda-lineal, ordenación-de-burbuja,

búsqueda-binaria, concatenación-de-listas-enlazadas, otros.

. ¿Cómo se Representa un Algoritmo?

La representación más obvia: código fuente Java. Sin embargo escribir

código fuente antes de entender completamente un algoritmo normalmente acaba

con bugs difíciles de encontrar. Una técnica para evitar estos bus es utilizar un

flowchart (diagrama de flujo).

Flowchart: Un flowchart es una representación visual del flujo de control de

un algoritmo. Esta representación ilustra las sentencias que se tienen que ejecutar,

las decisiones que hay que tomar, el flujo lógico (para iteracciones y otros

propósitos), y terminaciones que indican los puntos de entrada y salida.

Variables en Java

Una variable en Java es un identificador que representa una palabra de

memoria que contiene información. El tipo de información almacenado en una

variable sólo puede ser del tipo con que se declaró esa variable. Una variable se

declara usando la misma sintaxis de C.

Las variables de tipos primitivos almacenan directamente un valor que

siempre pertenece al rango de ese tipo. Por ejemplo una variable int almacena un

valor entero como 1, 2, 0, -1, otros, esto significa que al asignar una variable entera

a otra variable entera, se copia el valor de la primera en el espacio que ocupa la

segunda variable.

14
Las variables de tipo referencia a objetos en cambio almacenan

direcciones y no valores directamente. Una referencia a un objeto es la dirección de

un área en memoria destinada a representar ese objeto. El área de memoria se

solicita con el operador new.

Al asignar una variable de tipo referencia a objeto a otra variable se asigna la

dirección y no el objeto referenciado por esa dirección. Esto significa que ambas

variables quedan refenciando el mismo objeto. En Java una variable no puede

almacenar directamente un objeto, como ocurre en C y C++.

Por lo tanto cuando se dice en Java que una variable es un string, lo que se
quiere decir en realidad es que la variable es una referencia a un string.

La clase String Los objetos String pueden crear y utilizar cualquier aplicación Java.
Dicha clase también proporciona una serie de funciones útiles para el acceso y la
modificación de caracteres, que pueden incluir letras, números y signos de
puntuación

Java tiene prácticamente los mismos operadores de C y C++. Cada operador

acepta una, dos o tres expresiones de diversos tipos. A veces un operador no está

definido para argumentos de ciertos tipos. Por ello un operador en Java se define

un operador Todos los lenguajes de programación permiten realizar operaciones

entre los tipos de datos básicos: suma, resta, producto, cociente, y otros., de dos

números. Otros lenguajes como el BASIC y Java permiten "sumar", concatenar

cadenas de caracteres. Ejemplo de operadores

Operadores binarios entre expresiones numéricas


Símbolo Operación
+ Suma
- Resta
* Multiplicación
/ División

15
% Resto

Sentencia de asignaciòn

Una sentencia de asignación se utiliza para asignar (almacenar) un valor a

una variable. En una sentencia de asignación el valor situado a la derecha del signo

igual se almacena en la variable situada a la izquierda del signo igual. Una sentencia

de asignación tiene la siguiente forma: variable = expresión;

Donde expresión puede ser una variable, un literal o una combinación de

variables, literales y operadores. La sentencia de asignación almacena en variable

el valor de la expresión; para esto se requiere que expresión y variable tengan el

mismo tipo de dato.

Ejemplo

// Declara las variables p, q y r


int p, q, r;
// Asigna el valor 2 a la variable p
p = 2;
// Asigna una copia del valor de p a la variable q
q = p;
// Evalúa el valor de la expresión 2*p + q a la variable r
r = 2*p + q;

Resultado:
p=2
q=2
r=6

Sentencia repetitiva o Bucles

Los bucles, iteraciones o sentencias repetitivas modifican el flujo secuencial

de un programa permitiendo la ejecución reiterada de una sentencia o sentencias.

En Java hay tres tipos diferentes de bucles: for, while y do while .

Sentencia For Es un bucle o sentencia repetitiva que; ejecuta la sentencia de inicio.

verifica la expresión booleana de término.

16
Sintaxis:

si es cierta, ejecuta la sentencia entre llaves y la sentencia de iteración para volver

a verificar la expresión booleana de término.

si es falsa, sale del bucle.

Figura Flujograma de la sentencia for

Las llaves sólo son necesarias si se quieren repetir varias sentencias, aunque

se recomienda su porque facilita la lectura del código fuente y ayuda a evitar errores

al modificarlo. Habitualmente, en la expresión lógica de término se verifica que la

variable de control alcance un uso determinado valor. Por ejemplo:

for (i = valor_inicial; i <= valor_final; i++) { sentencia; }

Sentencia While : Es un bucle o sentencia repetitiva con una condicion al

principio. Se ejecuta una sentencia mientras sea cierta una condición. La sentencia

puede que no se ejecute ni una sola vez.

17
Figura Flujograma de la sentencia while

Sentencia Do-While

Es un bucle o sentencia repetitiva con una condicion al final. Se ejecuta una

sentencia mientras sea cierta una condición. En este caso, la sentencia se ejecuta

al menos una vez.

Figura Flujograma de la sentencia do/while

18
Estructura de Programación y Clases.

Este aspecto se describen la estructura de un programa mediante un ejemplo

sencillo y mostrar dos elementos típicos del código fuente: los comentarios y los

identificadores. La estructura de un programa de Java es similar a la de un programa

de C/C++. Por su diseño, permite a los programadores de cualquier otro lenguaje

leer código en Java sin mucha dificultad. Java emplea siempre la Programación

Orientada a Objetos por lo que todo el código se incluye dentro de las clases.

Aunque ya se explicarán detenidamente más adelante, las clases son

combinaciones de datos (constantes y variables) y rutinas (métodos).

Definamos que es una clase en Java

Una clase son plantillas para la creación de objetos, en lo que se


conoce como programación orientada a objetos, la cual es una de
los principales paradigmas de desarrollo de software en la
actualidad.

La clase principal y el método main

Un programa puede construirse empleando varias clases. En el caso más

simple se utilizará una única clase. Esta clase contiene el programa, rutina o método

principal: main() y en éste se incluyen las sentencias del programa principal. Estas

sentencias se separan entre sí por caracteres de punto y coma.

La estructura de un programa simple en Java es la siguiente:

public class ClasePrincipal {


public static void main(String[] args) {
sentencia_1;
sentencia_2;

19
// ...
sentencia_N;
}
}
En Java los conjuntos o bloques de sentencias se indican entre llaves { }. En

el caso anterior, el conjunto de sentencias se reduce a dos sentencias, que son

llamadas a dos métodos predefinidos en Java (print y println) que permiten visualizar

texto por el dispositivo de salida de datos por defecto (la pantalla).

Comentarios

Los comentarios se emplean para facilitar la tarea de los programadores

humanos ya que no realizan ningún papel activo en la generación del código. Los

comentarios que se pueden introducir en el código fuente de un programa de Java

son del estilo de C y C++. Así, el compilador ignora todo lo que se incluya entre la

secuencia de caracteres // y el final de la línea. Por ejemplo:

// Este es un comentario estilo C++, llega al final de la linea

La pareja de caracteres / hay que escribirla sin dejar ningún espacio en blanco entre

ellos. El segundo tipo de comentario es el que se utiliza también en el lenguaje de

programación C: el compilador también ignora todo lo que se incluya entre las

secuencias de caracteres /* y */. Por ejemplo:

/* En este otro comentario estilo C, el final

lo indica la marca */

El comentario con // es más fácil de teclear si sólo ocupa una línea, pero si

ocupa varias, entonces el más sencillo es el de /* ... */. Los comentarios pueden

incluir cualquier carácter válido en Unicode y no pueden anidarse.

Estos dos formatos de comentario se emplean para los denominados

comentarios de implementación.

20
Los comentarios de implementación se utilizan en el programa fuente para

resaltar código o para aclarar un desarrollo en particular.

Además, en Java existe un tercer tipo de comentario (doc comments) que facilita la

generación de documentación en formato HTML al emplear algunas herramientas

de documentación (por ejemplo, javadoc incluida en el Kit de Desarrollo de Java).

Los comentarios para la documentación se emplean para describir la

especificación del código, desde una perspectiva independiente cómo se ha

implementado y ser leido por desarrolladores que no tengan necesariamente el

código fuente a la vista.

En general, se debe evitar incluir comentarios que puedan quedarse

obsoletos conforme el código se desarrolle. Por ejemplo, dentro de un comentario

no debería incluirse información acerca de cómo se ha construido un archivo fuente

determinado o en que directorio se haya el código.

Identificadores

Los identificadores son nombres que se les asignan a variables, métodos,

clasee en el código fuente de un programa. Los identificadores sólo existen en el

código del programa fuente y no en el programa objeto (resultado de la compilación

del programa fuente). Todo nuevo identificador que se emplee en un programa Java

debe definirse previamente a su utilización. Las normas para la construcción de

un identificador empleando el lenguaje de programación Java son las

siguientes:

Un identificador comienza por una letra, un carácter de subrayado (_) o un

carácter de dólar ($). Aunque no se recomienda emplear el carácter $, ya que

21
el compilador suele utilizarlos de forma interna para crear identificadores

propios.

Los siguientes caracteres pueden ser también dígitos. Pero no pueden

emplearse espacios en blanco u otros caracteres como el signo de

interrogación (?) o el signo del tanto por ciento (%).

No hay límite máximo de caracteres.

En los identificadores del código fuente de un programa en Java se

distinguen las mayúsculas de las minúsculas. Por ejemplo, casa, CASA y

Casa son tres identificadores diferentes.

Pueden incluir caracteres Unicode, con lo que se pueden emplear

secuencias de escape /uxxxx para representar estos caracteres.

No puede emplearse el identificador de una variable o cualquier otro

elemento del código fuente del programa para otro ya existente en el mismo

bloque. Excepción: variable miembro y local con el mismo identificador.

Existe una serie de palabras reservadas que no pueden emplearse como

identificadores por el programador en el código fuente para otros usos. Por

ejemplo, la palabra double se utiliza para definir un tipo de dato real y la

palabra for se emplea para construir un tipo determinado de bucle.

Clases: En Java son básicamente una plantilla que sirve para crear un objeto.

Una Clase puede considerarse como la representación programada de un objeto o

situación real y existente del mundo cotidiano. Las Clases son la forma abstracta de

manejar la información de manera computacional. Ejemplo

Si un programador necesita manejar la información de los clientes de la empresa

para la cual trabaja, sería muy incódomo estar declarando, inicializando y

22
manipulando mil nombre, mil apellidos, mil direcciones, mil números de teléfono, mil

números de identificación, mil ... La solución que plantea la POO es la utilización

de Clases para representar aquellos elementos o tipos no pertenecientes al lenguaje

mismo de programación. La solución exacta que se propone es crear todos los tipos

necesarios a partir, o mediante la utilización, de los tipos ya existentes. En este caso

en particular, se debe utilizar los tipos primitivos de Java para crear nuestro propio

"Tipo" (Clase).

Las clases incluyen por tanto atributos y métodos. Los atributos definen el estado

de cada objeto de esa clase y los métodos su comportamiento.

Los atributos se deben considerar como la zona más interna, oculta a los

usuarios del objeto. El acceso a esta zona se realizará a través de los métodos.

El modificador de acceso se utiliza para definir el nivel de ocultación o

visibilidad de los miembros de la clase (atributos y métodos) y de la propia clase.

Cuando no se especifica un modificador, el elemento adquiere el acceso por defecto

o friendly. También se le conoce como acceso de package (paquete). Solo puede

ser usado por las clases dentro de su mismo paquete.

Nombre Clase: nombre de la clase que se define. Si la clase es pública, el

nombre del archivo que la contiene debe coincidir con este nombre. Debe describir

de forma apropiada la entidad que se quiere representar. Los nombres deben

empezar por mayúscula y si está formado por varias palabras, la primera letra de

cada palabra irá en mayúsculas.

Extends NombreSuperclase: (opcional) extends es la palabra reservada para

indicar la herencia en Java. NombreSuperClase es la clase de la que hereda esta

23
clase. Si no aparece extends la clase hereda directamente de una clase general del

sistema llamada Object.

Object es la raíz de toda la jerarquía de clases en Java. Es la superclase de las

que heredan directa o indirectamente todas las clases Java. Cuando una clase

deriva de otra, se llama superclase a la clase base de la que deriva la nueva clase

(clase derivada o subclase) La clase derivada hereda todos los atributos y métodos

de su superclase.

Un interface es un conjunto de constantes y declaraciones de métodos (lo que

en C/C++ equivaldría al prototipo) no su implementación o cuerpo. Si una clase

implementa un interface está obligada a implementar todos los métodos de la

interface. Un interfaz es una lista de acciones que puede llevar a cabo un

determinado objeto. Sorpresa, ¿eso no eran los métodos que se definen en una

clase? Casi, en una clase además de aparecer los métodos aparecía el código para

dichos métodos, en cambio en un interfaz sólo existe el prototipo de una función, no

su código.

Atributos

Una clase puede tener cero o más atributos. Sirven para almacenar los datos

de los objetos. En el ejemplo anterior almacenan el nombre y la edad de cada objeto

Persona. Se declaran generalmente al principio de la clase.

private String nombre;


private int edad;
Los atributos toman el valor inicial por defecto:
- 0 para tipos numéricos
- '\0' para el tipo char
- null para String y resto de referencias a objetos.

24
Métodos Una clase puede contener cero o más métodos. Definen el

comportamiento de los objetos de la clase. A través de los métodos se accede a los

datos de la clase. Desde el punto de vista de la POO el conjunto de métodos de la

clase se corresponden con el conjunto de mensajes a los que los objetos de esa

clase pueden responder.

Estructuras de Almacenamiento.

Son las distintas formas de almacenar datos en Java.Este tipo de estructuras

son mas complejas también hay de varios tipos, pueden ser int, String, double y

tambien puede almacenar objetos en este caso los objetos contienen los métodos

de la clase, los atributos de la clase, es decir, guarda el objeto , sus atributos y sus

funciones entre estas se tienen;

Arrays; Un array es una estructura que permite almacenar objetos del mismo

tipo con un nombre que los identifique. Un array se declara de la siguiente manera:

tipo_dato nombre_array [tamaño]


El tamaño del array debe ser un numero entero.

Ejemplos
String ciudades[10];
int numeros[25];
float decimales[5];
double reales[30];

Un array tambien se puede inicializar indicando la lista de valores que

contiene asi:

25
String colores[] = {"azul", "rojo", "amarillo", "verde"};

int numerosPares[] =[2, 4, 6, 8, 10};

La posicion de cada elemento de los arrays o el indice comienza desde n-1

siendo n la cantidad de los elementos del array, por ejemplo, en el array de los

numeros pares hay 5 numeros con 4 posiciones empezando desde cero.

Para imprimir en pantalla los valores de un array se utiliza el siguiente

algoritmo:

for (int k = 0; i < nombre_array.lenght; k++)

System.out.println( "Los valores del array son: " + nombre_array[k]);

Arraylist: Es un estructura de datos compleja que se encarga de almacenar

un conjunto de datos pero con la característica especial que no defines el tamaño

del arraylist. Se crea el arraylist y luego vas añadiendo datos a dicho arraylist, y si

añades ocho el arraylist tiene un tamaño de 8.

Un arrayList declarado así puede contener objetos de cualquier tipo.

Por ejemplo:

ArrayList a = new ArrayList();

a.add("Lenguaje");

a.add(3);

a.add('a');

a.add(23.5);

Los elementos del arrayList a son:

“Lenguaje” 2 ‘a’ 23.5

26
Arrays Multidimensionales : Es array de dos dimensiones tambien

conocido como matriz es una array que contiene otro array dentro de todos sus

elementos. Un array de dos dimensiones se declara de la siguiente manera:

tipo_dato nombre_array [tamaño filas][tamaño columnas]


array de 2 dimensiones

Un array de dos o mas dimensiones es aquel que guarda dentro uno de sus

elementos uno o mas arrays con objetos del mismo tipo, por ejemplo el siguiente

array: int [ ][ ][ ] rectangulo = new int [2][3][4];

Ordenacion De Arrays

Los algoritmos de ordenacion de arrays clasifica un grupo de datos de forma

ascendente o descendente dependiendo del contexto. Uno de los algroitmos de

ordenacion mas populares y mas utilizado es el metodo burbuja o "Bubble Sort".

Algoritmo De Ordenacion "Bubble Sort":

La funcion principal de este algoritmo es comparar cada elemento del array

con el siguiente elemento, en caso de no estar ordenados de menor a mayor o

viceversa los elementos intercambian posicion. Para que el array quede

correctamente ordenado es necesario revisar muchas veces el conjunto de

elementos hasta que no sean necesario mas intercambios.

for (int a =0; a < nombre_array.length-1; a++)

for (int b = a+1; b < nombre_array.length-1; b++)

if (nombre_array[a] >nombre_array[b]) {

tmp = nombre_array[a];

nombre_array[a] = nombre_array[b];

nombre_array[b] = tmp;
}

27
Arrays Redimensionables:

Un array redimensionable se define como ArrayList, este puede almacenar

una cantidad idefinida de elmentos. Un ArrayList se declara de la siguiente forma:

List <clase o tipo> nombre_ArrayList

Los ArrayList tambien tienen unos metodos establecidos para definirlos como

los siguientes:

add (Object obj). Este metodo añade un objeto al ArrayList.

get (tipo_dato posicion). Este metodo extrae el elemento en esa posicion.

size(). Regresa el numero de elementos guardados en el ArrayList.

Ejercicios propuestos

Crea un array bidimensional para guardar información sobre el precio que

tendrá cada una de las butacas de un cine con 5 filas y 10 columnas.

Asigna un valor inicial a las butacas de la primera fila de 30 euros, la de la

segunda 40 y así sucesivamente.

Muestra los valores del array indicando la fila y la columna con su precio de

dos formas diferentes (for y for...each).

Se quiere guardar por cada alumno sus notas. El alumno es examinado en

tres trimestres y al final tiene una nota media. Crea una clase Alumno donde

guardar esta información (tendrá de atributo nombre). Tendrán un valor inicial de 1

en sus tres notas y nota media (aplicarlo en la definición del array). Sobreescribe el

método toString para mostrar los datos del alumno (nombre) y sus notas y nota

media en una única línea. Crea un alumno y muestra sus datos.

28
Referencias Bibliogràficas

Arnold, Ken (2007) El lenguaje de programación java. Mexico:Prentice-Hall

Deitel y Deitel.(2004) "Java como programar". 5º edición, Person Education

John S. Dean Park y H. Dean (2009) Introducción A La Programación Con Java


Primera Edición Mcgraw-Hill/Interamericana Editores, S.A. De C.V. Mèxico.

Mora R, Frank.( 2006) "Programación en Java", Universidad de Navarra. Marzo

Patrick N, y Herbert S(2000) “Java. Manual de Referencia.” Editorial McGraw-Hill.

29