Indentar: Significa hacer espacios hacia la derecha para mover una línea de código, para
tener orden y legibilidad de nuestro código.
Ejecución: Para ejecutar nuestro código fuente es necesario contar con un programa que
nos permita hacerlo, Neatbeans, Eclipce o lo podemos realizar directamente desde el
símbolo del sistema:
C: \users\AquintanillaMX\Desktop\Carpeta\Archivo\javac Archivo.java
C: \users\AquintanillaMX\Desktop\Carpeta\Archivo\java Archivo
Hola Mundo
3.- Errores
4.- Variables & tipos de datos en JAVA
Primitivos
Enteros:
Byte (-128 hasta 127)
Short ( -32,768 hasta 32,767)
Int (-2,147,483,648 hasta 2,147,483,647)
Long (muy grandes)
Decimales:
Float
Double
Otros:
Char (un solo carácter)
Boolean (true | false)
Tipos de objetos
Ejemplo:
“Hola mundo”
Variables
Tipo: int
Nombre: num_uno, numUno
Condicional: if-else
public class If_Else{
public static void main(String args[]){
/* Estructura: If . . . else */
int mate = 7;
int biolo = 7;
int quimi = 7;
int promedio = 0;
Condicional: if-else
public class Anidadas{
public static void main(String args[]){
/* Condicionales Anidadas */
int operacion = 3;
int numUno = 8;
int numDos = 4;
int res = 0;
/* Operación */
if (operacion == 1) {
res = numUno + numDos;
System.out.println("La suma es: " + res);
} else if (operacion == 2) {
res = numUno - numDos;
System.out.println("La resta es: " + res);
} else if (operacion == 3) {
res = numUno * numDos;
System.out.println("La multiplicacion es: " + res);
} else if (operacion == 4) {
res = numUno / numDos;
System.out.println("La división es: " + res);
}else{
System.out.println("Lo sentimos, no hay resultado");
}
}
}
/*Librerias*/
import java.util.Scanner;
}
}
Operadores racionales:
== Igual a 5 == 5 5 es igual a 5
Operadores lógicos
Operador Nombre Ejemplo Significado ASCII
&& AND Haz la tarea $$ lava la ropa Has la tarea y lava la ropa Alt + 38
|| OR Haz la tarea || lava la ropa Haz la tarea o lava la ropa Alt + 124
import java.util.Scanner;
// Operadores Lógicos: && (AND), || (OR)
/* */
if( clave == 1 ){
if( anos == 1){
System.out.println("El trabajador: " + nombre + " , tiene derecho a 6 dias de
vacaciones.");
}else if( anos >= 2 && anos <= 6){
System.out.println("El trabajador: " + nombre + " , tiene derecho a 14 dias de
11.- Estructuras de control (Switch – Case)
Estructura de control utilizada para agilizar la toma de decisiones múltiples similar a la de un menú de
opciones.
Ejercicio: Realizar un programa que seleccione el tipo de operación: Suma, Resta, Multiplicación y
División.
El bucle for permite controlar el número de iteraciones mediante una variable contador. La sintaxis
de la estructura for es:
Donde iniciación es una o más asignaciones de variable, condición es una expresión boolean
que controla las interaciones del bucle e incremento es el aumento a ampliar a las variables que
controlan la condición.
Formas de incremento:
while ( condición ){
bloque de instrucciones
. . .
}
System.out.println("Error: la clave no existe");
}
}
}
Se evalúa la condición, Si resulta false: Termina la ejecución del bucle. Si, por el contrario, la
condición es true: Se ejecuta el bloque de instrucciones. Tras ejecutarse el bloque de instrucciones,
se vuelve al primer punto.
while( i < 10 ){
System.out.println(i + " , ");
i+=2;
}
}
}
El bucle do. . .while es muy similar al bucle while con la diferencia que primero se ejecuta el
bloque de instrucciones y después se evalúa la condición para decidir si se realiza una interación.
int i = 1;
do{
System.out.println(i + " , ");
i+=2;
1.- Se ejecuta el bloque de instrucciones } while( i < 10 );
2.- Se evalúa la condición
3.- Según el valor obtenido, se termina el bucle o comenzamos en el primer punto.
}
// Serie Fibonacci con ciclo do . . while
System.out.print("");
int i2 = 0;
int b2 = 1;
int a2 = 0;
int c2 = 0;
//
System.out.println("");
System.out.println("Serie numerica Fibonacci con ciclo Do..While:");
do{
if( i2 < 9 ){
System.out.print(a2 + " , ");
c2 = a2 + b2;
a2 = b2;
b2 = c2;
}else{
System.out.print(a2);
}
i2++;
}while( i2 < 10 );
}
}
El método equals se utiliza para comparar dos objetos, no confundir con ( == igualdad), equals
compara si dos objetos apuntan al mismo objeto. Equals se utiliza para saber si dos objetos son del
mismo tipo y tienen los mismos datos. Nos da true y false.
//Cadenas de caracteres
import java.util.Scanner;
public class Cadenas{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
String nombreA = "";
String nombreB = "";
if( nombreA.equalsIgnoreCase(nombreB) ){
System.out.println("Los nombres son iguales.");
}else{
System.out.println("Los nombres son diferentes.");
}
}
}
18.- Manipulación de cadenas con los métodos length() & substring().
- Método length -> Indica cuantos caracteres pose una cadena de caracteres.
- Método substring -> Permite obtener una parte en especifico de la cadena de caracteres.
Substring(desde, hasta).
import java.util.Scanner;
public class Cadenas1{
public static void main(String args[]){
//
String cadena_org = "";
String cadena_sub = "";
int num_cadena = 0;
int desde = 0;
int hasta = 0;
Scanner sc = new Scanner(System.in);
//
System.out.print("Ingrese una cadena de texto: ");
cadena_org = sc.nextLine();
//
num_cadena = cadena_org.length();
//
System.out.println("La cadena de texto " + cadena_org + " tiene " + num_cadena + "
caracteres.");
//
System.out.print("Desde donde deseas obtener la nueva cadena de texto: ");
desde = sc.nextInt();
System.out.print("Hsta donde deseas obtener la nueva cadena de texto: ");
hasta = sc.nextInt();
//
cadena_sub = cadena_org.substring(desde, hasta);
//
System.out.print("La nueva cadena de texto es: " + cadena_sub);
}
}
19.- Arreglos Unidimensionales (Vector)
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre a una colección de datos.
Tipos de arreglos
1.- Arreglos unidimensionales mejor conocidos como “Vectores”, listas de una sola dimensión y solo
almacena datos de forma lineal, ya sea hacia adelante o atrás.
Índice:
Sintaxis:
5 220 8 458
System.out.println(numeros[2]);
Salida en pantalla: 8
Ejercicio:
}
}
2.- Arreglos bidimensionales mejor conocidos como “Matrices”
La librería swing abarca componentes como botones, tablas, marcos etc. Los componentes de la
librería swing se identifican porque pertenecen al paquete javax.swing. El * indica que deseamos
importar varios componentes del paquete.
import javax.swing.*;
o Bien:
import javax.swing.JFrame;
import javax.swing.JLabel;
La clase JFrame: Encapsula el concepto de ventana. Luego para implementar una aplicación que
muestre una ventana debemos plantear una clase que herede de la clase JFrame.
Con esta sintaxis, estamos indicando que la clase Formulario hereda todos los métodos y propiedades
de la clase JFrame.
Para mostrar un texto dentro de una ventana necesitamos requerir la colaboración de la clase
JLabel(que tiene por objetivo mostrar un texto dentro de un JFrame).
public Formulario(){
setLayout(null);
}
Luego tenemos que crear un objeto de la clase JLabel y pasarle como parámetro al constructor el texto
a mostrar:
Ubicamos al objeto de la clase JLabel llamando al método setBounds, este requiere como parámetros
la (columna, fila, ancho, alto) del JLabel. Finalmente llamamos al método add (método heredado de
la clase JFrame) que tiene como objetivo añadir el control JLabel al control JFrame.
setLayout(null);
label1 = new JLabel("Etiqueta 1");
label1.setBounds(10,20,200,300);
add(label1);
Finalmente debemos codificar la main donde creamos un objeto de la clase Formulario, llamamos al
método setBounds para ubicar y dar tamaño al control y mediante el método setVisible hacemos
visible el JFrame:
El componente básico que requerimos cada vez que implementamos una interfaz visual con la librería
Swing es la clase JFrame. Esta clase encapsula una ventana clásica de cualquier sistema operativo con
un entorno gráfico de Windows, Linux o OS X.
Hemos dicho que esta clase se encuentra en el paquete javax.swing y como generalmente utilizamos
varias clases de este paquete entonces necesitamos importar todas las clases.
import javax.swing.*;
o Bien:
import javax.swing.JFrame;
import javax.swing.JLabel;
Import javax.swing.*;
import javax.swing.*;
y luego en la main definimos y creamos un objeto de la clase JFrame (Llamando luego a los métodos
setBounds y setVisible):
Pero esta forma de trabajar con la clase JFrame es de poca utilidad ya que rara vez necesitamos
implementar una aplicación que muestre una ventana vacía.
Lo más correcto es plantear una clase que herede de la clase JFrame y extienda sus responsabilidades
agregando botones, etiquetas, editores de línea etc.
Entonces la estructura básica que implementaremos para crear una interfaz gráfica será:
import javax.swing.*;
Con el constructor indicamos que ubicaremos los controles visuales con coordenadas absolutas
mediante la desactivación del Layout heredado (más adelante veremos cómo ubicar controle visuales
dentro del JFrame).
public Formulario() {
setLayout(null);
}
El método setBounds ubica el JFrame (la ventana) en la columna 10, fila 20 con un ancho de 400px y un
alto de 300px. Debemos llamar al método setVisible y pasarle el valor true para que se haga visible.
Problemas Propuestos:
1.- Crear una ventana de 1024 píxeles por 800 píxeles. Luego no permitir que el operador modifique el
tamaño de la ventana. Sabiendo que hacemos visible al JFrame llamando al método setVisible pasando
el valor true, existe otro método llamado setResizable que también requiere como parámetro un valor
true o false.
La clase JLabel nos permite mostrar texto en la ventana que hemos creado con JFrame:
- Definimos dos atributos de la clase JLabel, en el constructor las labels y ubicaciones llamando el
método setBounds, no olvidemos llamar el método add(), el cuál añade tanto JFrame como JLabel.
public FormularioJLabel(){//Constructor
setLayout(null);
label1 = new JLabel("Línea uno");//Nuevo Objeto
label1.setBounds(50,50,300,30);
add(label1);//Metodo add para mostrar
label2 = new JLabel("Línea Dos");
label2.setBounds(50,100,100,30);
add(label2);
label3 = new JLabel("Línea Tres");
label3.setBounds(50, 150,100,30);
add(label3);
label4 = new JLabel("Línea Cuatro");
label4.setBounds(50, 200,100,30);
add(label4);
label5 = new JLabel("Línea Cinco");
label5.setBounds(50, 250,100,30);
add(label5);
}
- Por último en la main creamos el objeto de la clase que acabamos de codificar, llamamos al método
setBounds para ubicar y dar tamaño al JFrame, llamamos al método setResizable con los valores
false/true dependiendo si vamos a permitirle al usuario redimensionar la ventana, y finalmente
llamamos al método setVisible para que se visualice el JFrame.
El tercer control visual de uso muy común es el que provee la clase JButton. Este control visual muestra
un botón.
El proceso para añadir el botones a un control JFrame es similar a añadir controles de tipo JLabel.
Veremos la captura de eventos con los controles visuales. Uno de los eventos más comunes es cuando
hacemos clic en el botón. Java implementa el concepto de interfaces para poder llamar a métodos de
una clase existente a una clase desarrollada por nosotros.
Ejemplo:
Luego las clases que implementan la interface ActionListener deberán especificar el algoritmo del
método actionPerformed.
Mediante el concepto de interfaces podemos hacer que desde la clase JButton se puede llamar a un
método que implementamos en nuestra clase. Para indicar que una clase implementará una interface
lo hacemos en la declaración de la clase con la sintaxis:
Con esto estamos diciendo que nuestra clase implementará la interface ActionListener , para luego hay
que codificar el método actionPerformed.
Es decir, cada vez que se presiona el botón desde la clase JButton se llama al método actionPerformed
y recibe como parámetro un objeto de la clase ActionEvent.
En el método actionPerformed mediante el acceso al método getSource( ) del objeto que llega como
parámetro podemos analizar que botón se presionó:
Si se presiona el botón boton1 luego el if se verifica verdadero y por lo tanto llamando al método exit
de la clase System se finaliza la ejecución del programa.