[CURSO] Programación en Java

(1/3) > >>

3n31ch:
[CURSO] Programación en Java
Introducción

En este post podrás ver todo lo que necesitas para empezar a programar desde cero con Java y todo lo que necesitas saber para desarrollarte en el mundo laboral con este lenguaje de programación.

Se abordarán temas como:

Fundamentos de programaciónAlgoritmos básicos y complejosCrear aplicaciones de consolaCrear aplicaciones de escritorioCrear aplicaciones webCrear aplicaciones en AndroidCrear videojuegos
Dispondrás de tutoriales, videos, ejercicios y ejemplos para mejorar tu aprendizaje.

Debido a que planeo hacer un tutorial gigantesco lo iré desarrollando día a día e intentare tener como mínimo un tutorial por semana.

Al finalizar este “curso” se espera que poseas los conocimientos para poder abordar cualquier proyecto con Java y desempeñarte tanto en el mundo académico como laboral de forma íntegra.
Índice

Introducción a Java

TutorialVideo TutorialEjerciciosSolucionesOtrosIntroducción a Java y la Programación Orientada a Objetos (POO)No DisponibleNo AplicaNo Aplica.DOCX DescargableHistoria muy breve de JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable
Instalación y Uso de Herramientas

TutorialVideo TutorialEjerciciosSolucionesOtrosInstalación de herramientas para programar en JavaNo DisponibleNo AplicaNo Aplica.DOCX DescargableProyectos en JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable

Java SE Básico

TutorialVideo TutorialEjerciciosSolucionesOtrosImpresión de mensajesNo DisponibleNo DisponibleNo Disponible.DOCX DescargableVariables y ConstantesNo DisponibleNo DisponibleNo Disponible.DOCX DescargableOperadores AritméticosNo DisponibleNo DisponibleNo Disponible.DOCX DescargableConcatenaciónNo DisponibleNo DisponibleNo Disponible.DOCX DescargableInputs por consola - ScannerNo DisponibleNo DisponibleNo Disponible.DOCX DescargableOperadores lógicos y relacionalesSentencias condicionales - if y elseSentencias condicionales - switch y caseComentariosArrays (Colecciones) - UnidimencionalesArrays (Colecciones) - MultidimencionalesBucles - while y do whileBucles - for y foreachExcepciones - try y catchInput por consola - BufferedReaderClases y objetosMétodosDocumentaciónPOO - AbstracciónPOO - EncapsulamientoSobrecargaStaticClase StringWrappersPOO - HerenciaPOO - PolimofismoClases AbstractasInterfacesEjemplo Practico
Java SE Intermedio

TutorialVideo TutorialEjerciciosSolucionesOtrosExcepciones - throws and throwExcepciones - Crear ExepcionesThread - ThreadThread - SynchronizedJDBCSockets - ServidorSockets - ClientesEjemplo Practico
Java SE GUI

TutorialVideo TutorialEjerciciosSolucionesOtrosHola MundoJFrameJLabelJTextField, JPasswordField y JTextAreaJButtonListener - ActionListenerLayout - FlowLayoutLayout - GridLayoutLayout - BorderLayoutJPanelJCheckBoxJRadioButtonJComboBoxJMenuEjemplo Practico
EN ESTE PUNTO YA PUEDES TOMAR EL CURSO DE COMO CREAR TU VIDEOJUEGO EN JAVA

Java EE Básico

TutorialVideo TutorialEjerciciosSolucionesOtros¿Qué son peticiones y respuestas HTTP?Entendiendo como trabaja Java en web.Introducción JSPsIntroducción Servlets¿Qué son los objetos HttpRequest y HttpResponse?Majenado objetos HttpRequest y HttpResponsePasando valores por medio de HttpRequest al JSP¿Qué son taglibs? Usando taglibs¿Qué es EL? usando EL con taglibs (jstl)¿Qué es el objeto HttpSession y cómo funciona?¿Qué son cookies y cómo funcionan?Manejando sesiones.Introducción AJAXEnvío y recibo de JSON entre AJAX y Servlets.Ejemplo Practico
Java EE Intermedio

TutorialVideo TutorialEjerciciosSolucionesOtrosJPA - introducciónJPA 2 - Mapeo de tablasJPA 3 - RelacionesDataSourcesEJB 1 - StatelessEJB 2 - StaefulEJB 3 - SingletonEJB Local y EJB RemoteIntroducción a WebServicesWebService SOAP (JAX-WS)WebService REST (JAX-RS)Haciendo un cliente REST con JerseyJAXB - MarshallJAXB 2 - UnmarshallEjemplo Practico
Los videos se empezaran a desarrollar cuando finalice la primera parte del curso (ademas de los cursos asociados)

Este tema estará bloqueado para evitar desordenarlo por tanto cualquier pregunta que tengas puedes realizarla en este mismo foro creando un nuevo tema e intentare responderte lo antes posible.

Agradecimientos a:
Eleкtro (por utilizar sus poderes divinos de mod para ayudarme)MCKSys Argentina (por recomendaciones)NEBIRE (por recomendaciones)
Agradecimientos especiales a:

n-utzRagazaReina_Negragabriel1995

Sin estos usuarios este curso no seria posible, ya que ellos han sido los que me han dado ánimos para continuar dando sus agradecimientos por mensajes privados. Muchas gracias!

3n31ch:
Introducción a Java y la Programación Orientada a Objetos (POO)

Hola mundo que tal, soy 3n31ch y esta es el primer tutorial del curso de Java para elhacker.net: Inducción a Java y la Programación Orientada a Objetos.

Quiero indicarte antes de empezar, que para seguir este “curso” no necesitas ningún tipo de conocimiento de programación y si ya los tienes, genial, para ti será todo mucho más fácil.

Bien, entonces empecemos:

"Java es un lenguaje de programación multiplataforma que trabaja bajo el paradigma de Programación Orientada a Objetos (POO)"

Ya tan solo con ver esta frase podemos extraer tres afirmaciones/características importantes que hacen a Java lo que es:

Java es un lenguaje de programaciónJava es multiplataformaJava trabaja bajo el paradigma de Programación Orientada a Objetos(POO)
Si entiendes cada una de estas afirmaciones, no es necesario que sigas viendo este tutorial, puedes ir al siguiente haciendo click aquí

Java es un lenguaje de programación

Un lenguaje de programación es en palabras simples un lenguaje formal con el cual podemos indicarle a un ordenador las distintas tareas que queremos que realice. Esto lo hacemos mediante algoritmos.

Un algoritmo es simplemente una secuencia de pasos con un orden especifico que permite cumplir un objetivo, por ejemplo, una receta de cocina nos indica mediante un algoritmo que acciones tenemos que realizar para obtener un producto.

Si buscamos abstraer esta definición a un concepto más informático podemos utilizar de ejemplo un videojuego:

Imaginemos un videojuego en el que controlamos a un guerrero que tiene que salvar a una princesa perdida en el bosque.

Un algoritmo eficaz para llegar hasta ella sería el siguiente:
1.   Derecha
2.   Arriba
3.   Derecha
4.   Derecha
5.   Abajo
6.   Abajo
7.   Abajo
8.   Abajo

Otro algoritmo más eficiente de hacer lo mismo seria el siguiente:
1.   Abajo
2.   Abajo
3.   Abajo
4.   Derecha
5.   Derecha
6.   Derecha
Si te das cuenta en los ejemplos anteriores utilicé las palabras “eficaz” y “eficiente”, estas dos palabras son útiles para medir que tan bueno es un algoritmo:
Eficaz: Algoritmo que cumple con el objetivo propuesto.Eficiente: Algoritmo que utiliza la menor cantidad de recursos posibles.
Un ejemplo de algoritmo poco eficaz es el siguiente:Un ejemplo de algoritmo poco eficiente es el siguiente:
Entonces, recapitulando: Un lenguaje de programación es un lenguaje formal con el cual podemos indicarle a un ordenador mediante un algoritmo que pasos ejecutar para cumplir un objetivo.

Es pertinente mencionar que una ejemplo de algoritmo mas adecuado seria el que se realizaria para encontrar el camino optimo y no directamente una secuencia de pasos textuales. Pero para simplificar el concepto utilice una secuencia de pasos como ejemplo.

Si quieres ahondar más en lo que es un algoritmo, distintos tipos de algoritmos, ejercicios u otros temas relacionados accede al siguiente link: Curso: Algoritmos básicos. (No disponible aun)

Java es Multiplataforma

Se dice que un lenguaje es multiplataforma cuando se tiene la capacidad de ejecutar el mismo programa en distintos sistemas operativos.

Esta fue una de las razones por la cual se creó Java, que al correr sobre la JVM tiene la capacidad de ser multiplataforma.

JVM (Java Virtual Machine) o en español Máquina Virtual de Java es como su nombre lo dice una Máquina Virtual que se ejecuta sobre el sistema operativo y que hace la función de interpretar el bytecode generado por un compilador de Java y ejecutar las instrucciones en el sistema operativo.

Puede que suene a chino todo lo que dije, pero es mucho más fácil de lo que suena, déjame que te lo explique con un diagrama:



Lo primero que pasa es que tu escribes tu código de Java el cual llamaremos código fuente, luego lo compilas, el compilador esta graficado como una caja negra ya que no nos interesa que es lo que pase dentro del mismo lo único que nos interesa es que el resultante es un Bytecode el cual llamaremos código objeto. Posteriormente la JVM alojada sobre el Sistema Operativo que ejecute el Bytecode lee dicho archivo y lo interpreta de tal forma que el Sistema Operativo pueda entenderlo adecuadamente. En resumen, el algoritmo es el siguiente:

1.   Programar Código Java (Código fuente)
2.   Compilar código Java en Bytecode (Código objeto)
3.   Ejecutar Bytecode en JVM
4.   JVM interpreta y ejecuta las tareas en el Sistema Operativo

Y lo único que nos interesa a nosotros es la primera parte, todo lo demás es automático.

Java trabaja bajo el paradigma orientado a objetos

Un paradigma de programación puede ser definido como un enfoque, filosofía, diseño o pensamiento para generar soluciones algorítmicas.

Otra vez me puse a hablar chino, así que lo traduciré: Un paradigma es básicamente un patrón o metodología utilizado como modelo para algo. Si lo aplicamos a la programación tenemos un “modelo base para programar”.

El paradigma/modelo de programación orientada a objetos es particularmente popular en la actualidad y como puedes intuir se basa en el manejo de “objetos”.

Los objetos pueden ser definidos como un conjunto de datos y funciones, los cuales son instanciados a partir de clases las cuales definen que atributos y métodos tiene un objeto.

Es más fácil entender que es un objeto y una clase a partir de un ejemplo:

Imaginemos otro videojuego que trata sobre cuidar a un animal virtual (tipo Tamagotchi) en el que tenemos un perro llamado Toby

Toby es un objeto, no importa que la idea real a la cual haga referencia este programa sea la de un perro, en la programación no se diferencia una cosa de un ser vivo ya que ambos son abstraídos como un simple conjunto de datos estructurados.

Toby tiene los siguientes atributos (datos asociados):
NombreColorSexo

Y tiene los siguientes métodos (funcionalidades):
DesplazarseComerJugar
Pero un día, Toby resulta encontrarse con otro perro llamado Body:

Toby y Body son objetos distintos ya que corresponden a entidades distintas.

Pero Body tiene exactamente los mismos atributos que Toby, la única diferencia yace en los valores de dichos atributos.

Sería ilógico tener que definir nuevamente la estructura de datos o funciones que tienen ambos, es por esto que existen las Clases.
La clase Perro define un patrón o modelo con el cual se podrán crear objetos de la misma. La forma que se crean los objetos es mediante algo que denominamos “Constructor”.

Un constructor es una “función” especial que tienen las clases para instanciar/crear objetos. Los constructores normalmente requieren de datos de entrada que serán aquellos que nos permitan personalizar nuestro objeto. En este caso los datos de entrada serian: Nombre, Color y Sexo.
Entonces se puede decir que Toby es una instancia de la clase Perro que recibe como parámetros los siguientes valores: Toby, Café, Masculino (Nombre, Color y Sexo).

Esto lo podríamos representar de la siguiente forma:

Perro1


Nombre: Toby
Color: Café
Sexo: Masculino
Perro2


Nombre: Body
Color: Gris
Sexo: Masculino
Entonces, recuerda:
 
Una Clase es el modelo que define los atributos y métodos que tiene un objeto.Un Objeto es la instancia de una clase el cual dispone de los atributos y métodos definidos por la clase.
Este es el principio general del paradigma de programación orientada a objetos, pero existen cuatro cosas importantes que hacen este paradigma lo que es: Los 4 pilares de la programación orientada a objetos.

Si quieres saber más sobre el paradigma orientado a objetos y otros paradigmas más entra al siguiente link: Apunte: Paradigmas de programación. (No disponible aun)

Por ahora ya tenemos todas las herramientas necesarias para iniciar con este curso, así que te espero para las siguientes entregas. Y ánimo, porque esto recién empieza.

RECURSOS ASOCIADOS A ESTE TUTORIAL:

Video Tutorial – Introducción a Java y la Programación Orientada a Objetos (No disponible aun)Tutorial descargable .DOCX  
RECURSOS COMPLEMENTARIOS:

Curso: Algoritmos Básicos (No disponible aun)Apunte: Paradigmas de programación (No disponible aun)

3n31ch:
Historia muy breve de Java

Java es un lenguaje muy popular en la actualidad, pero esto no sucedió de la noche a la mañana. Como todos los lenguajes tiene su historia y en las siguientes líneas intentare resumirlas.

Si la historia de Java no es de tu interés has click en el siguiente enlace para continuar con el siguiente tutorial: Instalación de herramientas para programar en Java.

Inicios

En diciembre de 1950 Patrick Naughton, ingeniero de Sun Microsystem, reclutó a distintos ingenieros entre ellos James Gosling y Mike Sheridan para trabajar en un proyecto llamado “El proyecto verde”. El objetivo de este proyecto era desarrollar una tecnología para programar la siguiente generación de dispositivos inteligentes entre los cuales estaban todo clase de artículos como por ejemplo un refrigerador.

Al inicio Gosling intento utilizar C++, pero debido a que tanto Gosling como Bill Joy lo encontraron poco apropiado para el objetivo que quería cumplir procedieron a crear un nuevo lenguaje llamado Oak (Roble en inglés. Se cree que es debido al roble que se encontraba frente al despacho de Gosling).

El resultado fue un lenguaje similar a C++ pero que no estaba ligado a ningún tipo de CPU en concreto.

El nacimiento de Java

Con el tiempo Oak tuvo problemas legales ya que resulto que dicho nombre ya estaba en uso por otro lenguaje de programación. Es por esto que el nombre fue cambiado a Java (posiblemente debido a la marca de café que tomaban al momento de poner el nombre, el cual también explica el logo del lenguaje).

El "BOOM" de Java

Si bien Java había sido diseñado para ser un lenguaje universal que permitiera programar micro-computadoras de dispositivos electrónicos este no fue lo que hizo que Java fuera un lenguaje importante. De hecho, Java fracaso cuando intento ser implementado en este mercado debido a que las micro-computadoras no eran lo suficientemente potente para utilizar Java. (O más bien, Java no era lo suficiente mente eficiente para ser utilizado por las micro-computadoras).

Afortunadamente el fracaso de Java en micro-computadoras coincidió con el nacimiento del fenómeno mundial WEB. El cual requería de un lenguaje multiplataforma que permitiera ser ejecutado en distintas arquitecturas, justamente para lo que Java estaba hecho.

Java paso a ser uno de los lenguajes más populares del mercado gracias a sus ahora no tan populares “applets” que permitían ejecutar código de java desde el browser. (Cabe destacar que esto también fue gracias a Netscape que promovió Java al tenerlo incorporado en el navegador).

Evolución de Java

Con el tiempo Java dejo der ser un lenguaje poco potente utilizado para navegadores y paso a ser un lenguaje muy competitivo que podía ser utilizado para desarrollar aplicaciones de escritorio, web, teléfonos inteligentes, entre otros.

Java en la actualidad forma parte de Oracle y es uno de los lenguajes más populares de la actualidad.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Historia muy breve de Java (No disponible aun)Tutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

REFERENCIAS WEB
Historia del lenguaje Java - http://www.cad.com.mx/historia_del_lenguaje_java.htm

3n31ch:
Instalación de herramientas para programar en Java

Herramientas necesarias

JDK - KIT de desarrollo en Java
Para programar en Java requieres el JDK (Java Development Kit o Kit de Desarrollo en Java) es un software que provee las herramientas de desarrollo para la creación de programación en Java.
Para este Curso utilizaremos el JDK 8.2 aunque cualquier JDK sobre Java 6 te será útil para lo que haremos (al menos para los primeros tutoriales).

IDE – Entorno de desarrollo integrado
Puedes programar en Java en cualquier editor de texto plano como por ejemplo el bloc de notas de Windows, pero resulta realmente cómodo disponer de una IDE.
Una IDE o Entorno de Desarrollo Integrado especialmente útil para facilitar el proceso de programación, entre una de las características más comunes y más importantes de una IDE es que colorea el código de tal forma que lo hace más entendible para el programador.

Puede parecer una estupidez, pero te aseguro que el simple hecho de tener el código “coloreado” permite hacer mucho más legible el mismo.

Para programar en Java recomiendo utilizar Netbeans o Eclipse, ambos tienen el “compilador” incluido y facilita enormemente el proceso de creación de proyectos.
En este curso utilizaremos Netbeans, pero si tienes Eclipse no te preocupes, las diferencias son mínimas.


Instalación

Para instalar el JDK y la Netbeans solo haremos uso de un único link que nos facilitara todo el proceso: http://www.oracle.com/technetwork/es/java/javase/downloads/jdk-netbeans-jsp-3413139-esa.html

Al aceptar la licencia podrás acceder a descargar Netbeans y el JDK para el sistema operativo que desees. En este caso lo hare desde Windows x86 (Ya que estoy en una máquina virtual).


 
Al finalizar la descarga ejecuta el instalador y procede a hacer el clásico “next, next, next… install”

Si gustas ser más detallista te explico a qué le haces next:
1.   Lo primero que te preguntara es donde instalar el JDK.
2.   Luego donde instalar Netbeans y donde está el JDK que acabas de instalar.
3.   Luego pregunta si se desea buscar actualizaciones (por defecto la opción esta activada).
4.   Y luego te pide instalar.

Al iniciar la instalación el programa procederá a instalar el JDK y Netbeans, solo tienes que esperar a que el proceso termine y presionas finish (como todos los instaladores).

Verificando instalación

Puedes verificar la instalación iniciando Netbeans y siguiendo los siguientes pasos:
Código:

File > New Project



Código:

Java Application (Seleccionada por defecto)> Next



En Project Name pones lo siguiente sin las comillas “Hola Mundo” y verificas que este checkeado en donde dice “Create Main Class” (luego te explicare de que trata todo esto).



Pones Finish y te aparecerá algo como esto:



Dentro de donde dice:

Código
Public static void main(String[] args) {
    // TODO code application logic here
}

Borras “// TODO code application logic here” y pones lo siguiente:

Código
System.out.println(“Hola Mundo”);
 

Te quedara algo así:



Luego en la parte superior veras un símbolo de “Play”:



Al iniciarlo se compilará tu programa y en la parte inferior aparecerá un mensaje diciendo “Hola Mundo”.



Felicidades, acabas de crear tu primer programa en Java.

En el próximo tutorial repasaremos esta última parte, y explicare que es lo que acabas de hacer. Con el tiempo entenderás todo esto mucho mejor.

Así que espero que sigas conmigo y nos vemos en el siguiente tutorial.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Instalación de herramientas para programar en javaTutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

3n31ch:
Proyectos en Java

Cuando requerimos realizar un proyecto muy grande es necesario disponer de más de un fichero que nos permita organizar adecuadamente nuestro código además de librerías (más abajo explico de que trata esto), imágenes u otros documentos. Es por esto que es necesario tener una “arquitectura” de folders y ficheros adecuados. Netbeans facilita el proceso de creación de proyectos generando esta arquitectura automáticamente.

Creación de proyectos

Para crear un proyecto vamos a File > New Project o puedes acceder directamente presionando Ctrl+Mayus+N

A continuación, se nos pedirá seleccionar el tipo de proyecto que queremos generar. Para los primeros tutoriales todos serán Java > Java Application



Al seleccionar la aplicación de Java nos pedirá indicar el nombre del proyecto y el lugar donde lo guardaremos. Bajo esto nos preguntara si queremos usar una carpeta dedicada para almacenar las librerías (Omite esta opción, no es importante por ahora). Luego tendremos otra opción “Create Main Class”, esta opción debemos tenerla activada durante los primeros tutoriales hasta que te explique en detalle que es una “Main Class”, por ahora te diré que esta opción genera el archivo inicial en donde se iniciara nuestro programa.



Estructura de un proyecto

Al crear el proyecto te aparecerá en la izquierda el conjunto de carpetas y archivos necesarios para trabajar en tu proyecto (existen otros ocultos que los trabaja Netbeans internamente, pero esos no serán necesarios ser editados). Al desplegar todas las partes del proyecto nos encontraremos algo como esto:


 
El proyecto dispone de dos carpetas importantes:
Source Packages: Es donde se encuentra todo nuestro códigoLibraries: Es donde se encuentran todas las librerías de nuestro proyecto.
Dentro de Source Packages encontraras un Package. Un Package es un tipo de carpeta en donde agrupas un conjunto de clases que poseen características similares. Al desplegar el Package (que en mi caso se llama tutorial) veras un fichero llamado algo con la extensión .class, esta es una clase y es posible que tengas muchas más dentro de un Package. (Si no sabes que es una clase no te preocupes, solo es necesario que sepas que aquí dentro va tu código).

En Libraries se almacenan todas las librerías de nuestro proyecto. Una librería es en palabras simples un conjunto de herramientas ya programadas que nos brindan distintas funciones necesarias para el desarrollo. Dentro de esta carpeta encontraras el JDK que como recordaras es nuestro Kit de Desarrollo en Java.

Método main

El método main como te mencione anteriormente es el punto de inicio de todo nuestro programa, este se encontrará dentro del fichero.java que se creó automáticamente al generar el proyecto (si no vez el código dentro de este fichero.java solo haz doble click sobre el documento)

Dentro de este archivo hay un método o función similar al siguiente código:
Código
public static void main(String[] args) {
       // TODO code application logic here
}

Este método se conoce como “main” todo lo que este dentro de los corchetes {} será el código inicial de nuestro programa.

(Puedes borrar donde dice “//TODO code application logic here”. Esto al igual que todos los “códigos” coloreados en gris por Netbeans (default) son “comentarios” y no influyen en el código, por lo que pueden ser borrados. Más adelante te explicare que son estos y cuál es su utilidad, pero por ahora quédate con que pueden ser borrados).

En el tutorial anterior te hice escribir un código, este código lo abordaremos en el siguiente tutorial. Así que te espero para el siguiente tutorial.


RECURSOS ASOCIADOS A ESTE TUTORIAL:
Video Tutorial – Proyectos en JavaTutorial descargable .DOCX
RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente