elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [CURSO] Programación en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [CURSO] Programación en Java  (Leído 20,027 veces)
3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
[CURSO] Programación en Java
« en: 13 Mayo 2017, 08:24 am »

[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ón
  • Algoritmos básicos y complejos
  • Crear aplicaciones de consola
  • Crear aplicaciones de escritorio
  • Crear aplicaciones web
  • Crear aplicaciones en Android
  • Crear 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 TutorialEjerciciosSolucionesOtros
Introducción a Java y la Programación Orientada a Objetos (POO)No DisponibleNo AplicaNo Aplica.DOCX Descargable
Historia muy breve de JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable

Instalación y Uso de Herramientas

TutorialVideo TutorialEjerciciosSolucionesOtros
Instalación de herramientas para programar en JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable
Proyectos en JavaNo DisponibleNo AplicaNo Aplica.DOCX Descargable


Java SE Básico

TutorialVideo TutorialEjerciciosSolucionesOtros
Impresión de mensajesNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Variables y ConstantesNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Operadores AritméticosNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
ConcatenaciónNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Inputs por consola - ScannerNo DisponibleNo DisponibleNo Disponible.DOCX Descargable
Operadores lógicos y relacionales
Sentencias condicionales - if y else
Sentencias condicionales - switch y case
Comentarios
Arrays (Colecciones) - Unidimencionales
Arrays (Colecciones) - Multidimencionales
Bucles - while y do while
Bucles - for y foreach
Excepciones - try y catch
Input por consola - BufferedReader
Clases y objetos
Métodos
Documentación
POO - Abstracción
POO - Encapsulamiento
Sobrecarga
Static
Clase String
Wrappers
POO - Herencia
POO - Polimofismo
Clases Abstractas
Interfaces
Ejemplo Practico

Java SE Intermedio

TutorialVideo TutorialEjerciciosSolucionesOtros
Excepciones - throws and throw
Excepciones - Crear Exepciones
Thread - Thread
Thread - Synchronized
JDBC
Sockets - Servidor
Sockets - Clientes
Ejemplo Practico

Java SE GUI

TutorialVideo TutorialEjerciciosSolucionesOtros
Hola Mundo
JFrame
JLabel
JTextField, JPasswordField y JTextArea
JButton
Listener - ActionListener
Layout - FlowLayout
Layout - GridLayout
Layout - BorderLayout
JPanel
JCheckBox
JRadioButton
JComboBox
JMenu
Ejemplo 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 JSPs
Introducción Servlets
¿Qué son los objetos HttpRequest y HttpResponse?
Majenado objetos HttpRequest y HttpResponse
Pasando 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 AJAX
Envío y recibo de JSON entre AJAX y Servlets.
Ejemplo Practico

Java EE Intermedio

TutorialVideo TutorialEjerciciosSolucionesOtros
JPA - introducción
JPA 2 - Mapeo de tablas
JPA 3 - Relaciones
DataSources
EJB 1 - Stateless
EJB 2 - Staeful
EJB 3 - Singleton
EJB Local y EJB Remote
Introducción a WebServices
WebService SOAP (JAX-WS)
WebService REST (JAX-RS)
Haciendo un cliente REST con Jersey
JAXB - Marshall
JAXB 2 - Unmarshall
Ejemplo 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-utz
  • Ragaza
  • Reina_Negra
  • gabriel1995


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!


« Última modificación: 28 Junio 2017, 08:40 am por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #1 en: 13 Mayo 2017, 09:20 am »

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ón
  • Java es multiplataforma
  • Java 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):
  • Nombre
  • Color
  • Sexo


Y tiene los siguientes métodos (funcionalidades):
  • Desplazarse
  • Comer
  • Jugar

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:


RECURSOS COMPLEMENTARIOS:

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


« Última modificación: 15 Mayo 2017, 06:06 am por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #2 en: 14 Mayo 2017, 21:47 pm »

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
« Última modificación: 15 Mayo 2017, 06:12 am por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #3 en: 14 Mayo 2017, 21:48 pm »

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
  1. Public static void main(String[] args) {
  2.     // TODO code application logic here
  3. }

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

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

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 java
  • Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
« Última modificación: 14 Mayo 2017, 21:51 pm por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #4 en: 14 Mayo 2017, 22:21 pm »

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ódigo
  • Libraries: 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
  1. public static void main(String[] args) {
  2.        // TODO code application logic here
  3. }

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 Java
  • Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #5 en: 15 Mayo 2017, 06:02 am »

Impresión de mensajes

“Hola Mundo” es el clásico ejemplo de aprendizaje cuando inicias a programar en cualquier lenguaje. Tu ya lo hiciste al instalar Netbeans ¿lo recuerdas?

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

System.out.println() y System.out.print()

System.out.println() es el método utilizado para imprimir en java, no es tan simple como en otros lenguajes, pero cumple la misma función. Al utilizar esta sentencia le dices a Java que imprima un mensaje en consola, el mensaje que quieres imprimir tienes que ponerlo dentro de los paréntesis y entre comillas dobles, como, por ejemplo:

Código
  1. public static void main(String[] args) {
  2.        System.out.println("Este es un mensaje...");
  3. }

(Recuerda poner tu código dentro del método main y además finalizar la sentencia con un “;”).

Al ejecutar nuestro código (si no sabes cómo hacerlo ve el tutorial: Instalación de herramientas para programar en Java, o directamente presiona la tecla F6) veras algo como esto:
Código:
run:
Este es un mensaje...
BUILD SUCCESSFUL (total time: 1 second)

(run: y BUILD SUCCESSFUL (total time: 1 second) son mensajes que agrega Netbeans, no te preocupes que cuando un usuario ejecute tu programa desde la consola de comandos no aparecerán estos mensajes).

Si modificamos nuestro código y agregamos otra línea abajo la anterior imprimiendo otro mensaje con el texto “Este es otro mensaje…” tendrás algo como esto:

Código
  1. public static void main(String[] args) {
  2.        System.out.println("Este es un mensaje...");
  3.        System.out.println("Este es otro mensaje...");
  4. }

Te podrás dar cuenta que al compilar y ejecutar tu código se imprimirán dos mensajes uno bajo al otro:

Código:
Este es un mensaje...
Este es otro mensaje...

Esto sucede porque System.out.println() tiene por default un salto de línea al finalizar la impresión, entonces el mensaje realmente es algo así:
Código:
Este es un mensaje...[ENTER]
Este es otro mensaje...[ENTER]

Si lo que quieres es imprimir en la misma línea tendrías que utilizar System.out.print() (sin ln) y de esta forma el siguiente mensaje no aparecerá en otra línea, por ejemplo, remplazare el código anterior por el siguiente:

Código
  1. System.out.print("Este mensaje va primero");
  2. System.out.println("Este mensaje va segundo");
  3. System.out.println("Este mensaje va tercero");

(Recuerda que este código está dentro del método main, el cual de aquí en adelante omitiré escribir)

El resultado será algo como esto:

Código:
Este mensaje va primeroEste mensaje va segundo
Este mensaje va tercero

Que si nos fijamos más bien es algo como esto:

Código:
Este mensaje va primeroEste mensaje va segundo[ENTER]
Este mensaje va tercero[ENTER]

Si te das cuenta el primer y segundo mensaje están pegados, si lo que quieres es separarlos con un espacio entre medio, simplemente añades el espacio al final del primer mensaje o al inicio del segundo:

Código
  1. System.out.print("Este mensaje va primero ");
  2. System.out.println("Este mensaje va segundo");

Resultado:
Código:
Este mensaje va primero Este mensaje va segundo

Caracteres especiales

Ahora intenta tu imprimir lo siguiente:
Código:
Las comillas dobles son así “

Te quedara algo como esto:

Código
  1. System.out.println("Las comillas dobles son asi "");

Y Netbeans te indicara que es un error, porque no puedes escribir comillas dobles dentro de un mensaje que utiliza como delimitador del mismo las comillas dobles.

Para estos casos existen los caracteres especiales. La forma de arreglar tu problema es añadiendo un backslash “\” justo antes de la comilla doble:

Código
  1. System.out.println("Las comillas dobles son asi \"");

Al hacer esto el mensaje se imprimirá de la siguiente forma:

Código:
Las comillas dobles son asi "

Entonces ahora tenemos otro problema, que pasaría si quisiéramos añadir el baskslash en el mensaje, para imprimir lo siguiente: Las comillas dobles son así \”

Muy simple solo tienes que añadir dos backslash justo antes del primero:

Código
  1. System.out.println("Las comillas dobles son asi \\\"");

El resultado es:

Código:
Las comillas dobles son asi \"

Supongo que ya te das cuenta del patrón, el backshash es lo que se llama un carácter de escape, nos permite escribir caracteres que normalmente no podríamos escribir. El carácter que normalmente no podríamos escribir se pondría justo después del backslash, por tanto, si queremos escribir una “ ponemos \” o si queremos escribir un \ ponemos \\.

Existen más caracteres especiales, aquí una lista:

\bRetrocesoUtilizado para borrar el ultimo carácter
\tTabuladorUtilizado para tabular
\rRetorno de carroUtilizado para volver al inicio de la línea (todo lo que escribas después de esto sobre-escribirá lo anterior)
\nNueva líneaUtilizado para hacer un salto de línea (igual al que incluye por defecto println al finalizar el mensaje)
\'Comilla simpleUtilizado para imprimir una comilla simple
\"Comilla dobleUtilizado para imprimir una comilla doble
\\Barra invertidaUtilizado para imprimir una barra invertida

Un uso muy útil para este tipo de caracteres seria por ejemplo para imprimir el siguiente mensaje solo con un System.out.print():

Código:
Primera línea
Segunda línea
Tercera línea

El código seria el siguiente:

Código
  1. System.out.print("Primera línea\nSegunda línea\nTercera línea");

Llegaremos hasta aquí por ahora, aunque retomaremos la impresión de mensajes en un par de tutoriales más ya que un nos queda una cosa por ver, la concatenación.

En los recursos asociados a este tutorial encontraras ejercicios relacionados con este tutorial además de sus soluciones propuestas. Recuerda que existen mil formas de realizar un mismo algoritmo así que no te asustes si tu solución no es exactamente igual a la mía.

(Las soluciones propuestas estarán en un documento .java solo ábrelo con un bloc de notas o con tu Netbeans para verlos, puedes copiar y pegar el código para probar cada solución {las cuales estarán separadas por guiones bajos}).
Esto se hará así hasta que sepas un poco más de métodos y de esta forma facilitar todo en un único proyecto.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
  • Video Tutorial – Impresión de mensajes
  • Tutorial descargable .DOCX
  • Ejercicios propuestos .TXT
  • Soluciones a ejercicios propuestos .CLASS

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
« Última modificación: 24 Mayo 2017, 23:09 pm por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #6 en: 19 Mayo 2017, 01:10 am »

Variables y Constantes

En la informática existen dos conceptos muy importantes, son las variables y las constantes. A continuación, abordaremos ambos términos.


Variables

Las variables son espacios de memoria reservados en la RAM utilizados para guardar valores de distinta índole con los cuales se puede operar o directamente modificar. En palabras más simples, las variables son casillas de memoria en las cuales ingresamos un valor, por ejemplo, un número.

En Java cada variable se compone de tres partes, un tipo, un identificador y un valor (aunque dicho valor puede ser nulo).



1.   El tipo es el que nos permite saber si una variable es numérica, una palabra u otra cosa. (Existen lenguajes que no requieren definir el tipo de una variable ya que los detectan automáticamente, sin embargo, en Java esto no es así).
2.   El identificador o nombre de la variable es necesario para que podamos referirnos a ella posterior a su creación.
3.   El valor es cualquier tipo de… valor que queramos guardar en nuestra variable.

(No mencionare nada respecto a los punteros ya que Java, si bien los posee, no permite el uso explícito de punteros en el código.)

Tipos de Variables

Podríamos dividir las variables en dos partes:
1.   Primitivas: Entidades elementales como lo es un numero o carácter.
2.   Objetos: Entidades complejas como una palabra (un conjunto de caracteres).

VARIABLES PRIMITIVAS
Las variables primitivas a su vez pueden ser catalogadas en cuatro:

  • Enteras (Almacena números enteros): byte, short, int y long
  • Coma flotante (Almacena números decimales): float y double
  • Caracteres (Almacena un carácter): char
  • Lógicas (Almacena un valor “verdadero” o “falso”): boolean

A continuación, abordaremos cada tipo:

Enteros

Existen cuatro variables enteras que se diferencian en el tamaño de valores que pueden almacenar. ¿Recuerdas que te mencione que las variables son espacios de memoria? Pues, vale. Ahora resulta evidente que no es lo mismo guardar un “1” a guardar un “999999999”, esto sucede porque los espacios de memorias que utiliza una variable se miden en “bytes”.

Si quieres saber más sobre espacios de memorias ingresa al Curso de Fundamentos de Ingeniería en Informática (Aun no disponible).

La siguiente tabla especifica la cantidad de bytes y que utiliza cada variable:

TIPOUSO DE MEMORIARANGO DE VALORES
byte1 byte-128 a 127
short2 bytes-32768 a 32767
int4 bytes-2147483648 a 2147483647
long8 bytes-9223372036854775808 a 9223372036854775807

Por defecto Java maneja todos los números en int, por tanto, si utilizas un numero sin declararlo como variable este será int. (luego hablaremos un poco más de esto).

Otro tema es que para inicializar una variable long es necesario utilizar la letra L al final del número, por ejemplo:
Código
  1. long numeroMuyGrande = 36854775808L;

Decimales

Existen dos tipos de números decimales y se aplica la misma regla que en los números enteros (uno requiere de menos memoria que otro). Sin embargo, esto más que asociado al rango de valores está más asociado a la precisión del decimal (menos o más decimales).

TIPOUSO DE MEMORIARANGO DE VALORES
float4 byte+-3.4x10-38 a +-3.4x1038
double8 bytes+-1.8x10-308 a +-1.8x10308

Java por defecto utiliza double para todos los números con coma flotante.

Al igual que pasa con long para declarar una variable float es necesario hacer uso de una letra, en este caso la F
Código
  1. float numeroDeComaFlotante = 1.5F;

Caracteres

Un carácter utiliza 2 bytes y para definir un valor es necesario utilizar comillas simples '

Código
  1. char caracter = 'B';

También puedes declarar un carácter a partir de su número en el código ASCII, por ejemplo, el carácter arroba "@" es igual a 64. Para estos casos no se ha de utilizar una comilla simple.
Ejemplo:

Código
  1. char caracter1 = '@';
  2. char caracter2 = 64;

Tanto caracter1 como carácter2 tienen el mismo valor y no se diferencian en absolutamente nada.

Verdadero o Falso

Las variables de verdadero o falso son conocidas como booleanas. Es prácticamente un 0 o un 1 (falso o verdadero). El espacio en memoria que utiliza una variable booleana es 1 bit (no un byte) y los valores que admiten son “true” o “false” sin comillas.

Código
  1. boolean verdadero = true;
  2. boolean falso = false;

VARIABLES OBJETO

Las variables objeto son instancias de una clase, en este tutorial solo abordaremos una clase (aunque existen muchas más y además tu puedes crear más).

La clase que abordaremos se llama Stirng y aunque no lo creas ya la haz utilizado. ¿Recuerdas?
Código
  1. System.out.println("Este es un mensaje");
  2.  
System.out.println(); recibe como entrada un conjunto de caracteres, y justamente eso es lo que es un String… un conjunto de caracteres. Para declarar un String es necesario definir su valor entre comillas dobles "

Código
  1. String oracion = "esto es un String";

(Ojo, que la primera letra de “String” es en mayúscula. No es "string" sino que "String", esto es debido a las convenciones de Java)

Nombres de Variables

  • Todos los identificadores han de comenzar con una letra, el carácter guión bajo ( _ ) o el carácter dollar ( $ ).
  • Puede incluir, pero no comenzar por un número
  • No puede incluir el carácter espacio en blanco
  • Distingue entre letras mayúsculas y minúsculas
  • No se pueden utilizar las palabras reservadas como identificadores.

(Existen convenciones asociadas a los nombres de variables, las cuales no abordare por ahora, pero te recomiendo de sobremanera seguirlas: convenciones).

Declaración e Inicialización de Variables

Existen dos términos que tienes que dominar al utilizar variables:

  • Declaración: Es la forma en que le damos a conocer al ordenador que pretendemos crear una variable. Acá definimos el tipo y el nombre de la variable.
  • Inicialización: Es el momento en que le asignamos a una variable previamente declarada un valor.
  • Modificación: Es el momento en que modificas el valor de una variable previamente inicializada.

DECLARACIÓN

Para declarar una variable haces lo siguiente:

Código
  1. int nombre;

O puedes declarar muchas variables del mismo tipo a la vez:

Código
  1. int nombre1, nombre2, nombre3, nombre4;

No puedes declarar más de una variable con un mismo nombre (aun cuando no tengan el mismo tipo). Por Ejemplo, esto daría error:

Código
  1. int nombre;
  2. int nombre;

(Esta regla tiene sus excepciones ya que existe otra forma de clasificar a las variables. Por ahora quédate con que en un mismo bloque de código no puedes declarar dos variables con el mismo nombre)

INICIALIZACIÓN

Para inicializar una variable (o sea, darle valor):

Código
  1. nombre = 5;

(recuerda que para inicializar la variable “nombre” primero tienes que declararla)

También puedes declarar e instanciar una variable en la misma línea:

Código
  1. int nombre = 5;

O también puedes declarar e instanciar muchas variables a la vez (siempre que compartan el mismo tipo):

Código
  1. int nombre1 = 5, nombre2 = 2, nombre3 = 7;

También puedes asignar el valor de una variable con una variable previamente inicializada:
Código
  1. int nombre1 = 5;
  2. int nombre2 = nombre1;

MODIFICACIÓN

Las variables pueden modificar sus valores y se hace de la misma forma que cuando inicializamos las variables:

Código
  1. int nombre = 6;
  2. nombre = 5;

También lo puedes hacer con una variable inicializada anteriormente:

Código
  1. int nombre1;
  2. int nombre2 = 6;
  3. nombre1 = nombre2;


Constantes

Las funcionan igual que las variables, la única diferencia es que una vez inicializadas su valor no puede cambiar. Para indicarle a Java que tu variable es una constante solo tienes que agregar la palabra reservada “final” al inicio:

Código
  1. final int numero = 5;

Al realizar esto no podrás cambiar el valor de “numero” ya que lanzara error.

Esto es especialmente útil para aquellos valores que no han de cambiar en la ejecución del programa, por ejemplo, el valor de PI:

Código
  1. final float pi = 3.14F;


Impresión de Variables y Constantes

Puedes imprimir variables y constantes con System.out.println(); o System.out.print(); simplemente en vez de agregar el texto entre comillas agregas el nombre de la variable o constante que quieres imprimir. (Recuerda que para hacer esto es necesario haber inicializado la variable previamente)

Código
  1. int variable = 88;
  2. System.out.println(variable);

O por ejemplo:

Código
  1. String texto = "El valor de la variable numero es: ";
  2. int numero = 55;
  3. System.out.print(texto);
  4. System.out.println(numero);

(En tutoriales posteriores te enseñare a hacer esto mismo pero con un solo system.out.println() haciendo uso de la concatenación)



RECURSOS ASOCIADOS A ESTE TUTORIAL:
  • Video Tutorial – Proyectos en Java
  • Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
« Última modificación: 19 Mayo 2017, 03:58 am por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #7 en: 25 Mayo 2017, 00:11 am »

Operadores Aritméticos

Las variables aritméticas como int o double no serían especialmente útiles si no se pudiera operar con ellas. Al utilizar la palabra operar me refiero a poder realizar sumas, restas, divisiones, multiplicaciones, etc.
Para operar variables aritméticamente se dispone de los siguientes operadores:

OperadorDescripción
+Suma
-Resta
*Multiplicación
/División
%Módulo
++Incremento
--Decremento
%Módulo

Un ejemplo de su uso seria el siguiente:

Código
  1. int numero = 4+2;

El valor de “numero” si lo imprimiéramos seria el siguiente:

Código:
6

En muchas situaciones tenemos que operar con dos variables ya inicializadas:

Código
  1. int numero1 = 5;
  2. int numero2 = 3;
  3. int numero3 = numero1-numero2;

De esta forma el valor de numero3 es el siguiente:

Código:
2

Como puedes ver todo es bastante intuitivo.

Ahora también existen los incrementos (sumar 1) y decrementos (restar 1) los cuales utilizas de la siguiente manera:

Código
  1. int numero = 12;
  2. numero++;
  3. System.out.println(numero);

El resultante sería el siguiente:

Código:
13

Ahora, también lo podrías hacer de la siguiente forma:

Código
  1. int numero = 12;
  2. ++numero;
  3. System.out.println(numero);

Y el resultado sería exactamente el mismo:

Código:
13

La diferencia radica en el momento en que se realiza la suma, si los ++ o – están antes entonces la suma o resta se realiza antes y si están después, entonces se realizan después. Seguramente te preguntes ¿Antes o después de qué?

Mira los siguientes dos ejemplos:

Ejemplo 1 (Antes)Ejemplo 2 (Después)
Código
  1. int a = 5;
  2. int b = ++a;
  3. System.out.println(a);
  4. System.out.println(b);
Código
  1. int a = 5;
  2. int b = a++;
  3. System.out.println(a);
  4. System.out.println(b);
Resultado:
Código:
6
6
Resultado:
Código:
6
5

En ambos casos “a” aumento su valor en uno, pero la diferencia radica en “b”.

En el primer ejemplo cuando nosotros le decimos a Java que asigne a “b” el aumento de “a” y en el segundo ejemplo le decimos que asigne a “b” el valor de “a” y luego aumente “a”. Ósea, en el primer ejemplo se hace el aumento y luego se asigna y en el segundo ejemplo se asigna y después de aumenta.

Operadores de Asignación Aritméticas

También existen operadores de asignación aritmética:

OperadorDescripción
+=Suma y Asignación
-=Resta y Asignación
*=Multiplicación y Asignación
/=División y Asignación
%=Módulo y Asignación

Básicamente los operadores de asignación aritmética existen para ahorrarnos trabajo, un ejemplo de esto es la siguiente comparación.

Ejemplo 1 (sin asignación aritmética)Ejemplo 2 (con asignación aritmética)
Código
  1. double a = 5.4;
  2. a = a + 1.6;
  3. System.out.println(a);
Código
  1. double a = 5.4;
  2. a += 1.6;
  3. System.out.println(a);
Resultado:
Código:
7.0
   
Resultado:
Código:
7.0

En ambos casos estamos aumentando el valor de la variable a en 1.6 pero en el segundo caso nos ahorramos el escribir nuevamente “a”.

Precedencia

La precedencia es idéntica a la precedencia matemática, por lo que si quieres que una suma se realice antes de una multiplicación puedes utilizar el paréntesis.

Código
  1. int numero = 5*(2+5);

No hablare más de este tema ya que es matemática básica, y he de suponer que la manejas antes de saber programar.

Esto es todo por ahora, te espero en el siguiente tutorial en donde hablaremos un poco de la concatenación.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
  • Video Tutorial – Operadores Matemáticos
  • Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
« Última modificación: 25 Mayo 2017, 04:36 am por 3n31ch » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #8 en: 4 Junio 2017, 09:26 am »

Concatenación

La concatenación es un tema simple pero útil. No lo explique en el tutorial de impresión de mensajes ya que era necesario explicar otros temas antes.

La concatenación es simplemente unir dos mensajes en uno, y se hace simplemente utilizando el carácter “+”. Un ejemplo de esto es el siguiente:

Código
  1. System.out.println("Este es el primer mensaje " + "Este es el segundo");

El resultado sería el siguiente:

Código:
Este es el primer mensaje Este es el Segundo

Puedes utilizar la concatenación cuantas veces quieras:

Código
  1. System.out.println("a" + "b" + "c" + "d" + "e");

Y evidentemente también lo puedes hacer sin la necesidad de un System.out.println

Código
  1. String cadena = "a"+"b"+"c";

También puedes combinarlo con números y variables:

Código
  1. String mensaje = "El valor de la variable \"numero\" es:";
  2. int numero = 55;
  3. System.out.println(mensaje + " " + numero);
  4.  

Esto daría como resultado lo siguiente:

Código:
El valor de la variable "numero" es: 55

En resumen, puedes concatenar cualquier variable o constante numérica o String que se te ocurra siempre y cuando utilices el símbolo “+” sin las comillas.

Ahora la problemática esta en como diferenciamos una suma entre dos variables numéricas versus una concatenación entre las mismas:

Código
  1. int a = 4;
  2. int b = 6;
  3. System.out.println(a + b);
  4.  
¿Cuál crees que es el resultado?:
Opción A:Opción B:
1046

Si tu respuesta fue la Opción A: 10, estas en lo correcto. Siempre que exista un signo más entre dos números se realizara una suma.

Y ahora en este caso:

Código
  1. int a = 4;
  2. int b = 6;
  3. System.out.println("" + a + b);

¿Cuál crees que fue el resultado?

Si tu respuesta fue 10, lamento decirte que te equivocaste. Y es porque omití decirte dos cosas muy importantes:

  • La concatenación se lee de izquierda a derecha.
  • La concatenación entre un String y un número da como resultado un String, entre dos números un número y entre dos String un Strnig.

Entonces lo que está pasando en el caso anterior es lo siguiente:

1.   Concatenar “” y 4: El resultado es 4 (Un String) // Una palabra vacía es un String siempre y cuando tenga las comillas.
2.   Concatenar un “4” y un 6: El resultado es 46 (Un String) // Recuerda, entre un String y un numero el valor es un String.

Con lo anterior ya deberías poder dominar las concatenaciones perfectamente además de poder convertir un número a un String.

RECURSOS ASOCIADOS A ESTE TUTORIAL:
  • Video Tutorial – Concatenación
  • Tutorial descargable .DOCX

RECURSOS COMPLEMENTARIOS:
No existen recursos complementarios para este artículo.
En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: [CURSO] Programación en Java
« Respuesta #9 en: 6 Junio 2017, 09:48 am »

Inputs por Consola - Scanner

Un sistema o programa normalmente posee una entrada un proceso y una salida. Hasta ahora solo hemos generado salidas mediante un proceso (ya sea creando variables o simplemente imprimiendo por consola) pero no hemos interactuado en ningún momento con el usuario.

Una forma de interactuar con el usuario es que este entregue parámetros de entrada, los cuales pueden ser ingresados por la consola de comandos mientras está ejecutándose nuestro programa. Existen muchas formas de hacer esto, pero en este tutorial utilizaremos la clase Scanner.

Scanner es una clase (modelo) que posee los métodos (funciones) que nos permiten ingresar datos de entrada a nuestro programa. En este caso utilizaremos un conjunto de métodos que nos permitirán ingresar datos por teclado.

Importación, Declaración e Inicialización de Scanner

Primero: Como te indique en el tutorial “Introducción a Java y la Programación Orientada a Objetos(POO)” Una clase es un modelo/plantilla que nos permite generar objetos. Nosotros no podremos acceder a las funcionalidades de Scanner sin previamente crear un objeto Scanner a partir de su clase. Esto puede que te suene a chino, y no te preocupes, a mí me sonó a latín cuando lo hice por primera vez. En siguientes tutoriales explicare de mejor forma que es una clase y objeto, pero por ahora solo escribe lo siguiente:

Código
  1. Scanner scanner = new Scanner(System.in);

Te explicare brevemente de que trata todo esto, no te preocupes si no lo entiendes ya que en tutoriales futuros lo explicare todo más detalladamente:

Lo que estamos haciendo es crear una variable de tipo Scanner que la llamamos coincidentemente scanner (aunque podría haberle puesto cualquier nombre), esto es exactamente lo mismo que hacemos cuando creamos cualquier tipo de variable:

Código
  1. Scanner scanner; // Esto es lo mismo
  2. String string; // Que esto...

(Recuerda que el nombre de la variable podría ser cualquiera, en este caso la llamamos scanner)

Luego en la misma línea inicialice la variable scanner entregándole como valor un objeto Scanner que recibe como parámetro de entrada “System.in”:

Código
  1. Scanner scanner = new Scanner(System.in);
  2. // Declaro scanner = Inicializo scanner


¿Recuerdas el primer tutorial donde te hablé de la clase y objeto perro y te dije que recibía como parámetro de entrada un nombre, color y sexo? Pues esto es lo mismo: Tenemos clase Scanner y recibe como parámetro “System.in”.

Seguramente te habrás dado cuenta que tu programa tira error: “Cannot find symbol: class Scanner” Esto ocurre porque Java no sabe dónde buscar la clase Scanner para poder utilizarla. Para solucionar esto tienes que importar al clase Scanner escribiendo justo debajo de “package nombre.proyecto” lo siguiente:

Código
  1. import java.util.Scanner;

Dando como resultado el siguiente código:

Código
  1. package tutorial.pkg9;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Tutorial9 {
  6.    public static void main(String[] args) {
  7.        Scanner scanner = new Scanner(System.in);
  8.    }
  9. }

Recuerda que todo aquello que este entre /* */ o después de // puedes borrarlo.

Entonces lo que hicimos fue:

1.   Importar java.util.Scanner para hacer uso de la clase Scanner.
2.   Declarar la variable scanner de tipo Scanner.
3.   Inicializar la variable scanner creando un objeto de tipo Scanner.

Si en este puto puedes ejecutar tu programa y no pasa ningún error (ósea, no pasa nada de nada) tu programa está bien. Si no lo puedes hacer intenta buscar tu error y en caso de no encontrarlo puedes preguntarme por mensaje privado o mejor, escribir un tema con tu pregunta y tanto yo como otros compañeros estaremos felices de ayudarte.

Métodos de Scanner

Ya tenemos nuestro objeto de Scanner inicializado y funcionando, ahora toca utilizarlo para asignar un valor a una variable. Para esto disponemos de muchos métodos (funcionalidades) distintos, los cuales puedes buscar con más detalle en la API de Java. Pero en este tutorial abordaremos 3:

Código
  1. scanner.nextInt();      // Para numeros enteros int
  2. scanner.nextFloat();    // Para numeros decimales float
  3. scanner.nextLine();     // Para palabras (String)

(todos los métodos/funciones han de finalizar con paréntesis)

PRIMER EJEMPLO

Como primera prueba utilizaremos scanner para pedirle dos números enteros al usuario los cuales posteriormente sumaremos:

Código
  1. Scanner scanner = new Scanner(System.in);
  2. int a;
  3. int b;
  4. a = scanner.nextInt();
  5. b = scanner.nextInt();
  6. System.out.println(a + b);

Lo que acabamos de hacer fue declarar dos variables numéricas llamadas “a” y “b” luego las inicializamos haciendo uso del método nextInt() y posterior a esto imprimimos la suma de a y b.

(Para utilizar el método de un objeto tienes que poner el nombre de la variable, luego un “.” (sin las comillas) y posteriormente el método) (recuerda que los métodos finalizan con un paréntesis.)

Si ejecutamos el programa veras que tan solo al empezar se quedara parado. Esto es porque el programa estará en espera a que ingreses un valor numérico y posterior a esto presiones enter. Esto sucederá dos veces debido a que utilizamos scanner.nextInt() dos veces.

Si lo hiciste correctamente al ingresar dos números veras el resultado de la suma de estos y posteriormente el programa finalizara. (Recuerda ingresar solo números o el programa podrá lanzar error)

Ahora modificaremos nuestro programa para que sea más intuitivo agregando un mensaje justo antes de cada número solicitando que ingresen un valor:

Código
  1. package tutorial.pkg9;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Tutorial9 {
  6.    public static void main(String[] args) {
  7.        Scanner scanner = new Scanner(System.in);
  8.        int a;
  9.        int b;
  10.        System.out.print("Ingresa el primer numero: ");
  11.        a = scanner.nextInt();
  12.        System.out.print("Ingresa el segundo numero: ");
  13.        b = scanner.nextInt();
  14.        System.out.println(a + b);
  15.    }
  16. }

(Hice uso de system.out.print para que el número se ingresara en la misma línea)

SEGUNDO EJEMPLO

Para el segundo ejemplo borraremos todo lo que está debajo de la inicialización de Scanner y haremos lo siguiente:

Código
  1. Scanner scanner = new Scanner(System.in);
  2. System.out.print("Ingresa tu nombre: ");
  3. String nombre = scanner.nextLine();
  4. System.out.print("Ingresa tu edad: ");
  5. int edad = scanner.nextInt();
  6. System.out.print("Ingresa tu estatura: ");
  7. float estatura = scanner.nextFloat();
  8. System.out.println("Tu nombre es: " + nombre);
  9. System.out.println("Tu edad es: " + edad);
  10. System.out.println("Tu estatura es: " + estatura);

Ahora analicemos lo que acabamos de hacer en orden:

1.   Declaramos e inicializamos scanner
2.   Solicitamos el nombre del usuario
3.   Declaramos la variable nombre de tipo String y utilizamos el método nextLine para que el usuario ingresara un String (su nombre).
4.   Solicitamos la edad del usuario
5.   Declaramos la variable edad de tipo int y utilizamos el método nextInt para que el usuario ingresara un numero entero (su edad)
6.   Solicitamos la estatura del usuario
7.   Inicializamos la variable estatura de tipo float y le asigamos con el método nextFloat un valor decimal (su estatura). // Este ha de introducirse con una “,” como separador decimal
8.   Finalizamos imprimiendo todos los valores ingresados por el usuario.

En este ejemplo hicimos uso de tres métodos de Scanner y los utilizamos para solicitar al usuario ingresar valores desde el teclado.

NOTAS IMPORTANTES

A modo de recordatorio te pongo la siguiente lista:
1.   Para utilizar Scanner tienes que importar Scanner.
2.   Para utilizar Scanner tienes que crear un objeto a partir de la clase Scanner.
3.   Scanner dispone de distintos métodos que puedes utilizar para ingresar datos por teclado.

OTRAS OBSERVACIONES

Algunas observaciones sobre Scanner:
1.   Puedes ingresar valores no String separados por un espacio sin necesidad de apretar enter.
2.   Puedes inicializar una variable directamente haciendo uso de Scanner

ERROR DE SCANNER

Scanner posee un “bug” que sucede al realizar lo siguiente:

Código
  1. System.out.print("Numero: ");
  2. scanner.nextInt();
  3. System.out.print("Otro String: ");
  4. scanner.nextLine();
  5. scanner.nextLine();

Si ejecutas el código anterior te darás cuenta que este finaliza apenas ingreses el primer número. Esto es debido a que nextLine() toma por valor el “Enter” que ingresas apenas terminas de ingresar el número. Una forma de solucionarlo es agregando un nextLine antes del nextLine real:

Código
  1. System.out.print("Numero: ");
  2. scanner.nextInt();
  3. System.out.print("Otro String: ");
  4. scanner.nextLine();
  5. scanner.nextLine();

Eso es todo por ahora. En un futuro te explicare otra forma de ingresar datos por teclados sin necesidad de Scanner pero por ahora esta es la mejor opción (y en particular me gusta mucho Scanner por su simpleza). Nos vemos en el siguiente tutorial.

RECURSOS ASOCIADOS A ESTE TUTORIAL:

  • Video Tutorial – Concatenación
  • Tutorial descargable .DOCX


RECURSOS COMPLEMENTARIOS:

No existen recursos complementarios para este artículo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Curso de programación en python « 1 2 »
Scripting
Erik# 19 10,267 Último mensaje 26 Septiembre 2008, 22:12 pm
por -Ramc-
Curso de programación en Perl « 1 2 3 4 »
Scripting
Erik# 31 17,467 Último mensaje 7 Enero 2009, 21:00 pm
por Erik#
Curso introducción a la programación en IOS
Mac OS X
chocola 0 3,484 Último mensaje 16 Octubre 2013, 21:46 pm
por chocola
Curso de Programación Java con Grails
Java
usernovato 1 2,591 Último mensaje 27 Octubre 2015, 00:09 am
por jsuperh
Curso de programación con Java: aprende a crear apps, software y páginas web, aumenta tus ingresos
Noticias
El_Andaluz 0 1,104 Último mensaje 7 Enero 2024, 03:44 am
por El_Andaluz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines