




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero java desde cero
Tipo: Guías, Proyectos, Investigaciones
1 / 124
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































www.learning.es
1
Java es un lenguaje de programación con el que podemos realizar cualquier tipo de desarrollo. Java fue desarrollado por la compañía Sun Microsystems y está enfocado a cubrir las necesidades tecnológicas de empresas.
Uno de los conceptos más interesantes de la tecnología Java es que es un lenguaje independiente de la plataforma. Esto quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado independientemente del sistema operativo en el que vayamos a utilizar el desarrollo. Esta es la mayor ventaja de Java respecto a sus máximos competidores en lenguajes de programación y simplifica el trabajo del programador, pudiendo centrarse en un único desarrollo independiente de la plataforma dónde vaya a utilizarse dicho desarrollo. Esta capacidad del lenguaje Java se consigue por la Máquina Virtual de Java. La máquina virtual de Java hace de puente entre el sistema operativo y el programa de Java y permite que el sistema operativo comprenda todo tipo de desarrollo.
Otra de las características del lenguaje Java son sus múltiples tipos de desarrollos. Existen diferentes soluciones para los dispositivos dónde se vaya a implementar cada solución, como pueden ser móviles, agendas y en general, cualquier dispositivo que la tecnología permita.
Explicar las características del lenguaje de programación JAVA.
www.learning.es
Java es un lenguaje que utiliza P.O.O (Programación orientada a objetos), dicho concepto se basa en el modelo objeto, donde el elemento principal es el objeto, el cual es una unidad que contiene todas sus características y comportamientos en sí misma, lo cual lo hace como un elemento independiente, pero que se interrelaciona con objetos de su misma clase o de otras clases, como sucede en el mundo real.
Comprender el concepto y características del lenguaje de programación Java.
¿Qué son los objetos?
Para aprender la relación entre objetos del lenguaje de programación Java debemos abstraernos y pensar en términos ajenos a la programación, utilizando elementos de la vida real.
Un objeto es una persona, animal o cosa. La forma de distinguir cualquier objeto de otro es por unas determinadas características y su utilidad como objeto para realizar unas acciones que no puede realizar otro objeto diferente. Pongamos como ejemplo que no es lo mismo utilizar un coche que una televisión, siendo los dos objetos, pero la clase de cada uno define sus acciones y propiedades para lo que ha sido creado. Pues esto mismo es lo que realiza el lenguaje Java. Cada objeto está pensado para realizar una serie de acciones y dependiendo de nuestra lógica que deseemos aplicar, utilizaremos un objeto u otro de una clase diferente.
Utilizando el ejemplo del coche y la televisión. Un coche es un objeto. Tiene como características o propiedades el número de puertas, la velocidad máxima, el color, la cilindrada, la altura o el peso. Y también tiene una serie de acciones que podemos realizar sobre un coche, tales como arrancar, frenar, girar, acelerar, cambiar de marcha, mover respaldo o abrir puertas.
Cada objeto se define en función de multitud de propiedades y se pueden realizar innumerables operaciones sobre él. Los objetos pueden interactuar entre sí o utilizarlos de forma única.
Una televisión tiene otras características y acciones totalmente diferentes a un coche. Podemos utilizar tanto un coche como una televisión de forma independiente. El coche para conducir y la televisión para visualizar películas o series. Cada uno tiene su función específica. Pero también puedo combinar los dos objetos para poner una televisión portátil en el coche. De esa forma, estoy combinando dos objetos diferentes para conseguir una funcionalidad específica en mi lógica: Visualizar películas en el coche. Todos estos conceptos son la base de cualquier lenguaje de programación orientado a objetos, y es lo que aprenderemos en el curso.
En términos de programación, la misión del programador será determinar qué propiedades y operaciones interesa utilizar sobre un objeto.
Por ejemplo, sobre el objeto coche pudiera ser que no necesitemos bajar la ventanilla en un viaje, por lo que no será necesario que apliquemos dicha funcionalidad sobre el objeto cuando lo utilicemos. Dependiendo de la acción para la que hemos pensado utilizar el objeto, utilizaremos unas funciones o propiedades u otras. Aunque el objeto tenga mil acciones, nosotros pensaremos cuales son las que nos convienen en cada momento y cuales no.
En terminología de programación orientada a objetos (P.O.O), las características del objeto se les denomina propiedades y a las acciones métodos. Cada uno de estos métodos es un procedimiento o una función perteneciente a un objeto.
Un objeto está formado por una serie de características o datos (propiedades) y una serie de operaciones (métodos). No puede utilizarse únicamente en función de los datos o de las operaciones sino en su conjunto.
www.learning.es
Un objeto es una variable que utiliza las características y acciones de un objeto. Dependiendo de la clase de la variable, tendrá unas características u otras. A estas variables se las conoce como referencias a objeto.
Si quisiéramos utilizar un objeto de la clase Coche, primero habría que “crearla”, o mejor dicho, instanciar un objeto de la clase PrimeraClaseJava. Para ésta creación de un objeto se utiliza el constructor de una clase.
Las clases pueden implementar un método especial llamado constructor. Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar las variables explícitamente para su iniciación.
El constructor tiene exactamente el mismo nombre de la clase que lo implementa; no puede haber ningún otro método que comparta su nombre con el de su clase. Una vez definido, se llamará automáticamente al constructor al crear o instanciar un objeto de esa clase (al utilizar el operador new).
El constructor no devuelve nada, es una acción. Su misión es iniciar o construir todo estado interno de un objeto (sus propiedades), haciendo que el objeto sea utilizable inmediatamente; reservando memoria para sus propiedades, iniciando sus valores, etc.
Ejemplo:
public class Coche { public Coche() { velocidad = 0; numeropuertas = 5; } public int velocidad; public int numeropuertas; public void arrancarCoche() { velocidad = 0; } public int acelerarCoche() { velocidad = velocidad + 10; } }
Lo que acabamos de crear es una clase para la que todos sus objetos creados tendrán 5 puertas.
El operador new crea una instancia de una clase (un objeto) y devuelve una referencia a ese objeto. Por ejemplo:
Coche objetocoche1 = new Coche();
De ésta forma, el objeto es nuestra variable llamada objetocoche1 y sabemos que tiene 5 puertas porque hemos “construido” la clase Coche de esa forma.
Si utilizásemos el objetocoche1 para averiguar el número de puertas, siempre nos devolvería el número 5.
mostrar objetocoche1.numeropuertas dicha instrucción siempre mostraría 5
También podemos cambiar las características de nuestro objeto de la clase Coche y establecer un número de puertas diferente:
objetocoche1.numeropuertas = 3; mostrar objetocoche1.numeropuertas dicha instrucción ahora mostraría 3
www.learning.es
Podemos crearnos otros objetos de la clase utilizando otras instancias de objeto, de esa forma, se crean objetos con las mismas características, pero diferentes entre sí.
Coche objetocoche1 = new Coche(); Coche objetocoche2 = new Coche(); objetocoche1.numeropuertas = 3; mostrar objetocoche1.numeropuertas dicha instrucción ahora mostraría 3 mostrar objetocoche2.numeropuertas dicha instrucción siempre mostraría 5
Como podemos comprobar, los dos objetos pertenecen a la misma clase y tienen las mismas propiedades y métodos, pero son diferentes entre sí. Aunque no hubiésemos cambiado el atributo numeropuertas, seguirían siendo objetos diferentes, con las mismas características y métodos. Llevado al concepto de la vida real, sería como sacar dos coches iguales de la fábrica, tienen los mismos atributos, color, cilindrada, modelo, pero cada uno es diferente y cada uno se utilizará de una forma diferente.
Ver Video: Tecnología Java , en la Unidad 1, en el Módulo 1,
en la plataforma elearning
www.learning.es
velocidad, marchas, cilindradas. También todo coche tiene las mismas acciones: arrancar, frenar, acelerar, girar, cambiar marchas, etc.
Hasta ahí podemos definir cualquier vehículo que podamos pensar. Tenemos un coche “base” o inicial, pero existen multiples tipos de coche, todo terrenos, utilitarios, deportivos, formula 1, etc.
Para crearnos un 4X4, debemos utilizar las mismas características de un coche y cambiarlo o implementarlo para adaptarlo al nuevo tipo de vehículo. Los ingenieros que vayan a diseñar el 4X no vuelven a investigar la creación de un coche desde cero, pensando en cómo arrancar o frenar, sino que utilizan la tecnología ya creada del coche para “mejorarlo”, utilizando todo lo que tiene un coche y añadiendo características a su nuevo objeto. No comienzan desde cero, sino que ya tienen una base desde la que trabajar. Ese es el concepto de Herencia en POO.
Vemos el concepto desde el ejemplo anterior de la clase Coche, incluyendo una propiedad llamada velocidadmaxima:
public class Coche { public Coche() { velocidad = 0; numeropuertas = 5; velocidadmaxima = 180; } public int velocidad; public int velocidadmaxima; public int numeropuertas; public void arrancarCoche() { velocidad = 0; } public int acelerarCoche() { velocidad = velocidad + 10; } }
En el constructor de la clase hemos definido que la nueva propiedad velocidadmaxima será de 180, de forma que cualquier Coche podrá acelerar, arrancar, mostrar la velocidad o un número de puertas.
Si deseamos crearnos un deportivo, podemos afirmar correctamente que un deportivo es un Coche, por lo que no tenemos que volver a definir las características del coche ni tenemos que volver a escribir sus métodos. Bastaría con comenzar desde nuestra clase Coche y mejorarlo:
public class Deportivo: Coche { public int numeromarchas; public Deportivo () { numeromarchas = 7; velocidadmaxima = 270; } }
Los dos puntos a continuación del nombre de la clase indican que la clase Deportivo hereda de la clase Coche, lo que quiere decir que un deportivo tendrá las mismas características que un coche, pero con una velocidad máxima superior. Además nos hemos creado una propiedad que indica que un Deportivo contiene siete marchas.
Con todo éste concepto lo que podemos afirmar que un Deportivo es un Coche, pero mejorado.
www.learning.es
La encapsulación consiste en la propiedad que tienen los objetos de ocultar sus propiedades o los métodos, a otras partes del programa u otros objetos. La forma natural de construir una clase es la de definir una serie de características que, en general, no son accesibles fuera del mismo objeto, sino que únicamente pueden modificarse a través de los métodos que son definidos como accesibles desde el exterior de esa clase.
En realidad, el concepto de encapsulación se puede definir coloquialmente como “no permitir visualizar características del objeto que no deseo que sean utilizadas”.
A modo de mundo real, podemos pensar en un coche. Cualquier coche nos permite utilizar una serie de características para su funcionamiento, tales como arrancar o frenar. Pero si queremos realizar algunas acciones sobre un coche, tenemos que ponernos en contacto con el fabricante o el taller mecánico constructor del coche, ya que no son “accesibles” para utilizar el coche. Por ejemplo, el motor de un coche no es “accesible” a nosotros como conductores, si queremos realizar acciones como cambiar la correa de distribución, dicha característica está dentro del coche, pero no ha sido “expuesta” para que nosotros la manejemos, sino que forma parte del coche pero está oculta a nuestros ojos.
Para poder encapsular propiedades o métodos dentro del lenguaje Java se utilizan las palabras clave public o prívate entre otras, pero que nos servirán para aprender el concepto en estos momentos.
public: indica que una propiedad o método será accesible y será visualizada al acceder al objeto.
private: indica que una propiedad o método sólo será “visible” desde el propio objeto, impidiendo que sea utilizada por otros objetos.
Podemos poner como ejemplo la misma clase Coche anteriormente utilizada en nuestra explicación.
public class Coche { public int velocidad; private int Motor; public void arrancarCoche() { } private void cambiarCorreaDistribucion() { } }
Según acabamos de escribir en nuestra clase, cualquier objeto que instanciemos de la clase Coche podrá utilizar el método arrancarCoche() y la propiedad velocidad, pero no podrá utilizar el método cambiarCorreaDistribucion() ni la propiedad Motor.
Esto se debe a que son propiedades o métodos que no deseamos que alguien que utiliza nuestro objeto sea capaz de modificar o utilizar.
De forma que si ahora intentamos utilizar las acciones, nos aparecería una excepción al compilar la clase:
Coche objetocoche1 = new Coche(); mostrar objetocoche1.velocidad _ nos permitiría visualizar la velocidad del objeto) objetocoche1.arrancarCoche(); Nos permite acceder al método del objeto) mostrar objetocoche1.Motor _ Excepción porque no es accesible esa propiedad, está encapsulada en la clase Coche.) objetocoche1.cambiarCorreaDistribucion(); _ Excepción porque no es accesible el método,_
www.learning.es
utilizado en tierra y conducir. Pero si nos abstraemos, podemos ser capaces de encontrar similitudes entre los dos objetos, no al mismo nivel, pero si en otros niveles diferentes.
Un barco y un coche son diferentes entre sí, pero si “subimos” niveles de abstracción encontraremos coincidencias que nos harán ser capaces de ponerlos en el mismo grupo, como por ejemplo “medios de transporte o locomoción”.
También podemos definir la abastracción entre niveles “parecidos”, por ejemplo un formula 1 es una especie de coche, pero tiene características diferentes a un coche, pero al ver un formula 1 podemos afirmar que es un tipo de coche, por las características en común que contiene a partir de un elemento base: el coche.
Diseño de clases para crear objetos
Dentro de cualquier concepto de la realidad expuesto anteriormente, podemos diferenciar los objetos por “familias” a las que pertenecen. Dichas familias son conjuntos a los que pertenece cada objeto y que los diferencia de otras familias. Por ejemplo, los objetos son diferentes pero se pueden agrupar en un conjunto: los coches, barcos, bicicletas, motos o aviones son objetos diferenciados entre sí, pero que podemos incluir dentro de la familia de los “medios de transporte”. Lo mismo ocurriría con los mp3, las televisiones, los dvd o los aparatos de tdt, podemos incluirlos dentro de la familia de “aparatos electrónicos del hogar”, por ejemplo.
Cuando estamos diseñando una aplicación, debemos decidir los objetos que vamos a utilizar en dicha aplicación según nuestra lógica. A partir de ese momento, cada objeto que vayamos a utilizar está en una “familia” que debemos utilizar para poder trabajar con el objeto. Es lo mismo que en un supermercado, si deseamos comprar fruta iremos a la sección de frutería y si deseamos comprar leche iremos a la sección de alimentación.
A estas familias dónde se encuentran las clases para utilizar objetos se les llama paquetes. Cada paquete contiene un conjunto de clases que están relacionados con el tipo de paquete que vayamos a utilizar. Por ejemplo, si queremos trabajar con ficheros, debemos incluir en nuestra aplicación el paquete java.io, que es el paquete que contiene todas las clases para trabajar con ficheros.
La ventaja de utilizar los paquetes depende del rendimiento y jerarquía de clases. Imaginad que vais al supermercado y encontrais todos los productos revueltos y no todo definido en cada sección. Habría que estar “buscando” dentro de todo el conjunto cada uno de los objetos que deseemos comprar. Por el contrario, si todo está ordenado por “secciones”, podremos ir perfectamente a las secciones que necesitamos sin necesidad de utilizar o recorrer las otras.
Sucede lo mismo en la programación orientada a objetos de Java, cada clase está definida dentro de un paquete, y si queremos utilizar una funcionalidad específica (ficheros por ejemplo) bastaría con ir y utilizar esa sección, sin necesidad de utilizar otras secciones, llamadas paquetes.
En el lenguaje de programación Java existen multitud de clases ya definidas y utilizables establecidas dentro de paquetes.
Las bibliotecas estándar (llamadas paquetes) más utilizadas en Java son las siguientes:
java.lang : tipos de dato primitivos, números, strings, objetos, compilador, runtime, seguridad y threads (es el único paquete que se incluye automáticamente en todo programa Java al iniciar cualquier aplicación) java.io : clases que manejan entradas y salidas, utilizan lectura y escritura de ficheros. java.util : Estructuras genéricas, utilización de fechas, horas, determinados strings o colecciones. java.net : Clases para soportar redes: URL, TCP, UDP, IP, etc. java.awt : Clases para manejar la interface gráfica de Java en aplicaciones de escritorio, tales como ventanas, mensajes de alerta y objetos que tienen que ver con todo tipo de aplicaciones de escritorio. java.awt.image : Clases para el manejo de imágenes. java.swing : Es la evolución de clases gráficas awt, podemos definirlo como la siguiente versión gráfica de Java. Permite crear objetos para aplicaciones de escritorio con un diseño y características mejorados.
www.learning.es
java.applet : Clases para la creación de applets y recursos para reproducción de audio.
Ver Video: Análisis de Aplicaciones , en la Unidad 2, en el
Módulo 1, en la plataforma elearning
www.learning.es
bin : En este directorio se encuentran todos los ficheros ejecutables del JDK. En su interior se encuentran los ficheros más importantes para el desarrollo de la tecnología Java. Los más importantes son:
PATH : En esta variable debemos poner el camino hasta los ejecutable del JDK
Lo primero será instalarnos el kit de desarrollo de Java:
www.learning.es
A continuación, vamos a Mi PC y con el botón derecho, entramos en Propiedades.
Una vez dentro, entramos en Opciones Avanzadas y pulsamos sobre Variables de entorno:
Modificamos la variable de entorno PATH para poder ejecutar todos los comandos incluidos en el directorio BIN de java. (Compilador, Intérprete)
Debemos incluir al final del todo la ruta dónde se ha instalado nuestra herramienta JDK y el directorio bin. Debemos separar cada elemento con punto y coma:
;C:\Archivos de Programa\Java\jdk1.5.0_22\bin
www.learning.es
NOTA: El fichero llamado FicheroFuente.java debe llamarse igual que la clase y es imprescindible poner la extensión “.java” en el momento de escribir en la línea de comandos. Veremos el ejemplo práctico más adelante para entender el concepto de clase.
La compilación se realiza desde una ventana de MS-DOS o desde el propio entorno que estemos usando, el cual nos ocultará la ejecución de javac. El proceso de compilación requiere que el sistema tenga configurada adecuadamente las variables de entorno para el correcto funcionamiento del comando anterior. Como resultado de la compilación obtenemos el fichero de bytecodes que tiene extensión " .class ".
Ejecutar la aplicación : Para ejecutar el fichero de bytecodes es necesario pasarlo por el
intérprete adecuado. El intérprete depende del tipo de programa java que hayamos implementado:
o Miniaplicaciones (applets) Es el navegador el intérprete y nosotros tenemos que preocuparnos tan sólo de incluir el applet en una página HTML.
o Aplicación (texto o gráfica) Utilizaremos el intérprete proporcionado por el JDK de Sun que se llama java.exe. Su sintaxis es:
C:\java.exe FicheroBytecodes.class
NOTA: Cuando llamamos al interpréte java.exe y al fichero “.class” no escribiremos el nombre de la extensión “class”, solamente debemos escribir el nombre del fichero compilado, pero manteniendo la diferencia entre mayúsculas y minúsculas.
JAVAC es el compilador, debemos indicarle toda la ruta y el nombre del fichero con extensión “.java” que deseamos compilar. Diferenciación entre mayúsculas y minúsculas.
JAVA es el intérprete de archivos con extensión class, debemos decirle toda la ruta y el nombre del archivo “.class” pero sin la extensión. Diferenciación de mayúsculas y minúsculas.
NOTA: Para poder probar éste primer ejemplo debemos tener configuradas las variables de entorno que nos llevan al JDK de java y nos permiten compilar los ficheros.
Todos los ficheros de Java son clases. Dentro de dichas clases escribiremos el código para crear nuestra “solución” a un problema que hayamos planteado.
Para comenzar, utilizaremos un método llamado main que es el “arranque” de las clases no gráficas de Java. Simplemente esto quiere decir que toda “lógica” tiene un entorno y un lugar para probar dicho entorno, por ejemplo, si queremos hacer una página Web, el entorno para dicha clase web sería un navegador de Internet. Pues en nuestro caso, nuestro entorno será la ventana de Ms-Dos y para probar las aplicaciones necesitamos crearnos un método main para arrancar dicho entorno y generar nuestrá lógica en la clase.
Como podemos comprobar, vamos a hacer un ejemplo sencillo para visualizar nuestra primera aplicación de Java y comprobar que tenemo todo listo para continuar.
public class ClaseJava { public static void main(String args[]) { System.out.println("MI PRIMERA APLICACION"); } }
www.learning.es
Vamos a abrir un bloc de notas y escribiremos el código de nuestra primera clase.
Debemos recordar que Java es un lenguaje de programación “ Case Sensitive ”, es decir, diferencia entre mayúsculas y minúsculas, por lo que escribiremos literalmente el contenido de nuestro primer ejemplo en el bloc de notas.
A continuación vamos a guardar el fichero de nuestro bloc de notas con la extensión “.java” en la ubicación que vayamos a probar nuestros ejemplos. Es recomendable crearnos una carpeta para poder ubicar todas nuestras prácticas. Podemos utilizar cualquier otro editor de caracteres, pero es imprescindible que sólo almacene texto, no nos valdrían editores de texto del estilo Word o WordPad, ya que almacenan más información además del texto escrito, un ejemplo de estos editores puede ser UltraEdit o algún bloc de notas “free” que existen por internet y que tienen más características que el bloc de notas tradiciones de Windows.
El nombre de nuestro fichero “java” debe tener el mismo nombre que nuestra clase, incluida la diferenciación de mayúsculas y minúsculas, en nuestro ejemplo debemos llamarlo ClaseJava.java.
Voy a crear una carpeta en la unidad C:\ llamada PracticasJava y almacenaré las prácticas en dicha ubicación. En el bloc de notas seleccionaremos como Tipo: “ Todos los archivos ” y escribiremos la extensión “.java” para nuestra primera clase.
NOTA: Podremos guardar las prácticas en cualquier ubicación, pero es conveniente guardarlas en alguna “ruta” fácilmente accesible ya que posteriormente tendremos que escribir dicha ruta en nuestra ventana de comandos de Ms-Dos.
A continuación abriremos una nueva ventana de comandos de Ms-dos. Para ello nos iremos al Inicio de Windows y pulsaremos sobre “ Ejecutar ” y escribiremos el comando cmd.exe. Esto depende del sistema operativo en el que estemos trabajando. Se nos abrirá una nueva ventana de comandos.
Ahora debemos tener unas nociones básicas de Ms-Dos para trabaja y poder compilar nuestras clases de Java.
Sobre la ventana de comandos escribimos:
cd C:\PracticasJava Con el comando cd de Ms-Dos podremos entrar en cualquier directorio, según nuestra práctica yo he almacenado el fichero “java” de nuestra clase en dicha ubicación. Debemos posicionarnos en dicha ubicación. También podemos escribir “ cd.. ” o “ *cd* ” para ir a la raíz dónde hayamos almacenado los ficheros. Si queremos cambiar de unidad, bastaría con escribir la letra de la unidad seguida de dos puntos: “ D: ”. Con el comando “ dir ” veremos todos los ficheros que existen dentro de un directorio, aunque podemos complementar nuestras prácticas con las ventanas propias de Windows.
Ya estamos posicionados sobre el lugar dónde tenemos almacenada la clase “.java”, ahora debemos utilizar el compilador javac.exe para poder compilar la clase. Escribiremos la llamada al compilador desde la ventana de comandos.