Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen Unidad I
Valor
Tipo de dato Tamaño Valor Minimo Valor Máximo por
defecto
Operadores aritméticos
+ Suma a = b + c;
- Resta a = b - c;
* Multiplicación a = b * c;
/ División a = b / c;
% Modulo o residuo a = b % c;
++ Operador unario de incremento en 1 i++; ++i;
-- Operador unario de decremento en 1 i--; --i;
+= Suma Acumulada a+=b; //es equivalente a: a=a+b;
-= Resta Acumulada a-=b; //es equivalente a: a=a-b;
*= Multiplicación Acumulada a*=b; //es equivalente a: a=a*b;
/= División Acumulada a/=b; //es equivalente a: a=a/b;
Ejemplo operadores aritméticos:
public class Aritmetica{
public static void main(String[] args){
int a = 12;
int b = 10;
int suma = a + b;
int resta = a - b;
int mult = a * b;
int div = a / b;
int modulo = a % b;
System.out.print("Suma :");
System.out.println(suma );
System.out.print("Resta :");
System.out.println(resta);
System.out.print("Multiplicacion :");
System.out.println(mult);
System.out.print("Division :");
System.out.println(div);
System.out.print("Modulo :");
System.out.println(modulo);
}
}
Constantes
Las constantes son valores que permanecen fijos durante todo el ciclo de vida del programa. Como
estándar se suele nombrar las constantes con todas sus letras en mayúsculas. Su sintaxis es:
final tipoDeDato nombre = valor;
Ejemplo:
final int ALTURA_MAXIMA = 100;
Cast de tipos de datos
Consiste en la funcionalidad de convertir un tipo de dato a otro dependiendo de la compatibilidad entre
ellos, para hacer un cast o conversión de tipos primitivos hay que colocar el tipo al cual se quiere
convertir entre paréntesis, por ejemplo
public class EjemploCast{
public static void main(String[] args){
float a = 10.5f;
int b;
b = (int)a; //Cast o conversión de de tipos
System.out.println("Valor: "+b);//El valor mostrado seria 10
}
}
Sentencias de Control
Las sentencias de control ayudan a dar lógica al flujo del programa dependiendo de las condiciones
acertadas. Las sentencias de control en java son los condicionales: if, if-else y switch, y las cíclicas:
while, do while y for.
Operadores Lógicos
Operador Definición
== Es igual
!= Es distinto
<, <=, >, >= Menor, menor o igual, mayor, mayor o igual
|| Operador Or
En un dado caso si el contenido dentro del if es únicamente una sola línea entonces las llaves pueden ser
omitidas:
if (condición)
//Una instruccion
Ejemplos:
if ( valor >= 500 ){
descuento = 0.09;
aplicaDescuento = true;
}
if ( edad >= 60 )
aplicaDescuento = true;
En un dado caso las instrucciones a ejecutar únicamente son una línea entonces se puede omitir las
llaves:
if (condición)
//Una instrucción
else
//Una instrucción
Las sentencias if pueden estar anidadas dependiendo de la necesidad de construir un flujo mas complejo
su sintaxis es:
if (condicion) {
//Instrucciones
} else if (condicion2) {
//Instrucciones
} else if (condicion3)(
.
.
.
} else {
//Instrucciones en caso no se cumpla ninguna condición
}
Ejemplo:
class IfElseDemo {
public static void main(String[] args) {
int nota = 76;
char grado;
if (nota >= 90) {
grado = 'A';
} else if (nota >= 80) {
grado = 'B';
} else if (nota >= 70) {
grado = 'C';
} else if (nota >= 60) {
grado = 'D';
} else {
grado = 'F';
}
System.out.println("Grado= " + grado);
}
}
Sentencia switch
La sentencia switch evalua una variable y ejecuta ciertas instrucciones dependiendo del valor que la
variable pueda tomar. Su sitaxis es:
switch(expresion){
case valor1 :
//Instrucciones
break;
case valor2 :
//Instrucciones
break;
.
.
.
default : //En caso de que no se cumpla ningún case
//Instrucciones
}
Ejemplo:
Su sintaxis es:
while (condicion){
//Instrucciones
}
do {
//Instrucciones
} while(condicion);
La única diferencia de uno con el otro es que con do-while las instrucciones en su interior se ejecutan al
menos una única vez.
Ejemplo:
class WhileDemo {
public static void main(String[] args){
int contador = 1;
while (contador < 11) {
System.out.println("Contador: " + contador);
contador++;
}
}
}
Sentencia for
Al igual que la sentencia de control while, la sentencia for tiene como objetivo ejecutar instrucciones
repetitivas, con la salvedad de que utiliza un iterador para evaluar su condición.
Su sintaxis es:
for (inicializacion; condicion_de_terminacion;incrementador) {
//Instrucciones
}
Ejemplo:
class ForDemo {
public static void main(String[] args){
for(int i=1; i<11; i++){
System.out.println("Contador: " + i);
}
}
}
Tipos de datos referenciados
Los tipos de datos referenciados son aquellos que son definidos como clases, ya sean propias del lenguaje
Java o definidas por el programador.
Las clases son estructuras de datos que son creadas para fines específicos, pueden estar estructuradas
con sus propios atributos y métodos.
Por ejemplo:
String cadena = new String("Cadena");
En donde:
new: es la palabra reservada utilizada para crear un objeto a partir de una clase existente.
String
String es una clase propia del lenguaje Java, la cual está diseñada con el objetivo de manipular cadenas de
caracteres. Esta clase ha tenido un diseño especial dentro del lenguaje java debido a su gran uso dentro
de cualquier tipo de aplicación, los objetos resultantes a partir de esta clase pueden ser instanciados
simplemente con el uso de comillas.
Las siguientes instrucciones son equivalentes para instanciar un objeto del tipo String:
String cadena = new String("Cadena");
String cadena = "Cadena";
Secuencias de escape
Las secuencias de escape son conjuntos de caracteres utilizados dentro de las cadenas para realizar
operaciones específicas o imprimir caracteres que no pueden ser incluidos de forma normal.
Ejemplo:
public class DemoCaracteresEscape{
public static void main(String[] args){
System.out.println("Linea 1\nLinea 2");
System.out.println("\tLinea con tabulacion");
System.out.println("\"Texto entre comillas\"");
}
}
Resultado:
Comparación de Strings
En el caso de la comparación de Strings el operador == no es efectivo si se utiliza el operador new
debido a que este operador está diseñado para comparar tipos primitivos, si se utiliza este operador
para comparar tipos referenciados lo que hace es comparar instancias, sin embargo no compara el
contenido, por lo cual los tipos referenciados disponen de un método llamado equals que permite
comparar el contenido de un objeto con otro.
Ejemplo
Arreglos
Un arreglo o array es una estructura de datos o una colección de valores del mismo tipo, se utilizan para
agrupar valores en común. Estos valores se almacenan en una determinada posición que puede ser
accedida por medio de un índice numérico entero.
Alternativa:
tipo[] nombreArreglo;
nombreArreglo = new tipo[cantidadElementos];
Ejemplos:
byte[] edad = new byte[4];
short[] edad = new short[4];
int[] edad = new int[4];
long[] edad = new long[4];
float[] estatura = new float[3];
double[] estatura = new double[3];
boolean[] estado = new boolean[5];
char[] genero = new char[2];
String[] nombre = new String[2];
Al momento de definir el método main en la clase principal se envía como parámetro un arreglo de
Strings, estos pueden ser capturados a partir de parámetros enviados por medio de la línea de
comandos.
Ejemplo:
char[] genero = new char[2];
genero[0] = 'F';
genero[1] = 'M';
System.out.println("Primer Valor: " + genero[0]);
System.out.println("Segundo Valor: " + genero[1]);
Ejemplo utilizando ciclos:
//Mostrar valores
for (int i=0; i < numeros.length;i++)
System.out.println("Elemento["+i+"]= "+numeros[i]);
Arreglos Multidimencionales
En Java es posible crear arreglos con más de una dimensión permitiendo crear matrices de m x n
elementos.
Su sintaxis es:
tipo[][]… [] nombreArreglo = new tipo[dimensión1][dimensión2]…[dimensiónN];
Alternativa:
tipo[][]… [] nombreArreglo;
nombreArreglo = new tipo[dimensión1][dimensión2]…[dimensiónN];
Ejemplo:
//Asignar valores
for (int i = 0;i<matriz.length;i++){
for (int j = 0;j<matriz[i].length;j++){
matriz[i][j] = (i+1) * (j+1);
}
}
//Imprimir valores
for (int i = 0;i<matriz.length;i++){
for (int j = 0;j<matriz[i].length;j++){
System.out.println("Elemento ["+i+"]["+j+"]: "+matriz[i][j]);
}
}
Matriz resultante:
Métodos o funciones
Los métodos o funciones son un mecanismo que permite dividir el código en bloques independientes los
cuales pueden ser llamados desde varios lugares dentro de un programa. Un método puede recibir
parámetros para ser procesados, ejecutar una acción o devolver un valor.
Ejemplo:
static int sumar(int a, int b){
return a + b;
}
El prefijo static indica que el método puede ser llamado incluso si no se ha creado una instancia de la
clase que lo contiene.
Ejemplo completo:
public class MetodosAritmeticos{
static int sumar(int a,int b){
return a+b;
}
static int restar(int a,int b){
return a-b;
}
static int dividir(int a,int b){
return a/b;
}
static int multiplicar(int a,int b){
return a*b;
}
public static void main(String[] args){
int x = 5;
int y = 4;
System.out.println("Suma: " + sumar(x,y));
System.out.println("Resta: " + restar(x,y));
System.out.println("Multiplicacion: " + multiplicar(x,y));
System.out.println("Division: " + dividir(x,y));
}
}
La clase Scanner
Esta clase permite obtener información ingresada por el usuario a través de la consola. Su uso se hace
creando una instancia de la clase scanner y enviando como parámetro la entrada estándar del sistema.
Su sintaxis es:
Scanner entrada = new Scanner(System.in);
Para que el compilador de Java pueda detectar la clase Scanner hay que importarla del paquete java.util
de la siguiente manera:
java.util.Scanner;
De esta manera se podrán crear objetos o hacer instancias de la clase Scanner. Para obtener valores
ingresados por el usuario hay que utilizar los metodos next de la clase Scanner.
Ejemplo:
import java.util.Scanner;
La clase Math
Esta clase permite realizar cálculos matemáticos a partir de metodos estáticos (static, ose que no es
necesario crear un objeto del tipo Math para acceder a ellos). Esta clase está dentro del paquete
java.lang
Ejemplo:
import java.util.Scanner;
Scanner entrada;
entrada = new Scanner(System.in);
System.out.println("Que operacion desea realizar?");
System.out.println("1 Potencia de un numero");
System.out.println("2 Valor absoluto");
System.out.println("3 Raiz cuadrada");
System.out.println("4 Numero random");
System.out.println("0 Salir");
do{
System.out.print("----------------\nOpcion: ");
opcion = entrada.nextInt();
switch (opcion){
case 1:
System.out.print("Valor: ");
valor = entrada.nextDouble();
System.out.print("Potencia: ");
potencia = entrada.nextInt();
System.out.println("Resultado: "+Math.pow(valor,
potencia));
break;
case 2:
System.out.print("Valor: ");
valor = entrada.nextDouble();
System.out.println("Valor Absoluto: "+Math.abs(valor));
break;
case 3:
System.out.print("Valor: ");
valor = entrada.nextDouble();
System.out.println("Raiz Cuadrada: "+Math.sqrt(valor));
break;
case 4:
System.out.println("Numero aleatorio: "+Math.random());
break;
}
}while(opcion!=0);
class Circulo{
int x;
int y;
int diametro;
String color; Nombre de la clase
Variables
Atributos Miembro double calcularArea(){
return 0;
} Métodos miembro
void colorear(){
}
}
Circulo.java
class Circulo{
int x;
int y;
int diametro;
String color;
double calcularArea(){
return Math.PI * Math.pow((diametro/2),2);
}
void colorear(){
}
}
Principal.java
Salida:
Modificadores de acceso
Los modificadores de acceso son una funcionalidad que permite limitar o permitir la visibilidad de clases
y sus miembros (atributos y métodos), los modificadores de accesos básicos son:
En el caso de la definición de clases el modificador de acceso deberá ser public, se puede utilizar el
modificador private en clases internas (clases dentro de clases).
Un atributo con el modificador de acceso private, únicamente podrá ser accedido dentro de la clase a la
que pertenece y mediante los métodos definidos dentro de la clase, es decir si se crea una instancia de
dicha clase el atributo no podrá ser accedido de la forma nombreObjeto.nombreAtributo.
Un atributo con el modificador de acceso public, podrá ser accedido dentro y fuera de la clase, es decir,
el atributo podrá ser accedido de esta forma: nombreObjeto.nombreAtributo.
Ejemplo:
Circulo.java
public class Circulo{
private int x;
private int y;
private int diametro;
public String color;
int obtenerDiametro(){
/*diametro es un atributo private, lo que significa que es visible
dentro de la clase y dentro de los metodos miembro*/
return diametro;
}
}
Principal.java
Un método con el modificador de acceso private, únicamente podrá ser accedido dentro de la clase a la
que pertenece y mediante otros métodos definidos dentro de la clase, es decir si se crea una instancia
de dicha clase el atributo no podrá ser accedido de la forma nombreObjeto.nombreMetodo().
Un método con el modificador de acceso public, podrá ser accedido dentro y fuera de la clase, es decir,
el método podrá ser accedido de esta forma: nombreObjeto.nombreMetodo().
Ejemplo:
Circulo.java
Principal.java
public class Principal{
public static void main(String[] args){
Circulo circulo = new Circulo();
System.out.println("Diametro: "+circulo.obtenerDiametro());
System.out.println("Calculo de area: "+circulo.calcularArea());//Error
circulo.imprimirArea();
}
}
Sobrecarga de métodos
La sobrecarga de métodos o funciones es una característica que permite crear varios métodos con el
mismo identificador dentro de una clase, lo que diferencia a un método de otro es la cantidad, tipos de
parámetros.
Ejemplo:
SobrecargaOperaciones.java
Principal.java
Salida:
Apuntador this
El apuntador this es una funcionalidad que permite acceder a atributos y métodos dentro de la propia
clase, es muy útil para diferenciar los atributos y métodos propios de las clases versus parámetros de u
otros elementos del mismo nombre.
Ejemplo:
public class Circulo{
private int x;
private int y;
private int diametro;
public String color;
Constructores
Un constructor es un método especial definido dentro de una clase, el objetivo principal de dicho
método es inicializar los atributos internos de la clase o ejecutar métodos internos de inicialización.
El constructor es el primer método en ejecutarse al crear una instancia de una clase, un constructos
lleva el mismo nombre de la clase y no tiene valor de retorno. Por defecto aunque no sea definido, se
crea un constructor vacío sin parámetros, un método puede sobrecargarse siguiendo las reglas de
sobrecarga de un método normal.
Un constructor deberá tener el modificador de acceso public, si no es así, no se podrá crear una
instancia de dicha clase.
Ejemplo:
public class Circulo{
private int x;
private int y;
private int diametro;
public String color;
Proveen un mecanismo para envolver (wrap) valores primitivos en un objeto, de esta manera los
datos primitivos pueden tener actividades o comportamientos que son reservados solo para los
objetos.
Proveen funciones útiles para realizar conversiones a cadena u otros tipos primitivos.
Para cada tipo primitivo existe una clase envolvente, nombrada igual que su dato primitivo pero
su nombre empieza con mayuscula. Estas clases se encuentran en java.lang.
xxxValue()
parseXxx()
valueOf()
toString()
xxxValue()
Cuando se necesita el valor númerico de un envolvente a un primitivo podemos utilizar cualquiera de los
muchos métodos xxxValue()
Integer var = new Integer(42);
byte b = var.byteValue();
short s = var.shortValue();
double d = var.doubleValue();
parseXxx() y valueOf()
double d = Double.parseDouble("3.14");
long L1 = Long.parseLong("154614");
Long L2 = Long.valueOf("154614");
MÉTODO DESCRIPCIÓN
length() Devuelve la longitud de la cadena
indexOf(String) Devuelve la posición de la primera aparición de carácter
lastIndexOf(String) Devuelve la posición de la última aparición de carácter
charAt(n) Devuelve el carácter que está en la posición n
substring(n1,n2) Devuelve la subcadena comprendida entre las posiciones n1 y n2-1
toUpperCase() Devuelve la cadena convertida a mayúsculas
toLowerCase() Devuelve la cadena convertida a minúsculas
equals(String) Compara dos cadenas y devuelve true si son iguales
equalsIgnoreCase(String) Igual que equals pero sin considerar mayúsculas y minúsculas
valueOf(N) Método estático. Convierte el valor N a String. N puede ser de cualquier tipo.
trim() Elimina espacios en blanco a principio y al final de la cadena
split(String) Descompone una cadena en partes dependiendo de un delimitador
concat(String) Concatena una cadena con otra
contains(String) Devuelve verdadero si una cadena esta contenida dentro de otra
Ejemplo de uso:
public class MetodosString{
public static void main(String[] args){
String cadena1 = "Java y c++ son lenguajes orientados a objetos";
Resultado:
Metodos estaticos de la clase JOptionPane
La clase JOptionPane esta contenida en el paquete javax.swing y contiene metodos estaticos para poder mostrar y recibir
información por parte del usuario. Sus principales metodos son:
JOptionPane.showInputDialog Muestra un cuadro de diálogo con un cuadro de texto que permite capturar
informacion introducida por el usuario, al valor de retorno de este metodo es un
String con el texto introducido por el usuario.
Ejemplo:
JOptionPane.ERROR_MESSAGE //0
JOptionPane.INFORMATION_MESSAGE //1
JOptionPane.WARNING_MESSAGE //2
JOptionPane.QUESTION_MESSAGE //3
JOptionPane.PLAIN_MESSAGE //1
Al igual que el método anterior, este método esta sobrecargado para cambiar el titulo
y el icono, por ejemplo:
JOptionPane.showMessageDialog(null, "Hola Mundo",
"Este es el titulo", JOptionPane.ERROR_MESSAGE);
JOptionPane.ERROR_MESSAGE //0
JOptionPane.INFORMATION_MESSAGE //1
JOptionPane.WARNING_MESSAGE //2
JOptionPane.QUESTION_MESSAGE //3
JOptionPane.PLAIN_MESSAGE //1
JOptionPane.showConfirmDialog Muestra un cuadro de dialogo con un mensaje y 3 botones por defecto, estos botones
son:
Ejemplo:
int operacion = JOptionPane.showConfirmDialog(null, "Esta seguro que
desea eliminar el registro?");
A continuación se muestra un ejemplo completo del uso de los metodos estaticos de la clase JOptionPane:
package ejemplos.joptionpane;
import javax.swing.JOptionPane;
La clase Color
Esta clase es una utileria para manejar información sobre colores utilizando el estandar RGB (Red, Green, Blue).
La clase Color se encuentra en el paquete java.awt
Se puede instanciar utiliazando los siguientes constructores:
Existen constantes estaticas que permiten obtener una instancia de los colores basicos, estas constantes estaticas son las
siguientes:
Color.BLACK;
Color.BLUE;
Color.CYAN;
Color.DARK_GRAY;
Color.GRAY;
Color.LIGHT_GRAY;
Color.GREEN;
Color.MAGENTA;
Color.ORANGE;
Color.PINK;
Color.RED;
Color.WHITE;
Color.YELLOW;
Esta clase por si sola no tiene mucha funcionalidad, provee una variedad de metodos utiles sin embargo para poder aplicar un
color a determinada forma o componente se debe utilizar la clase Graphics2D.
La clase Point es de utilidad para mantener información específica sobre un punto en la pantalla. Uno de los metodos
principales de la clase point es distance(Point p); cuyo resultdo es la distancia entre dos puntos.
Ejemplo:
La clase Dimension es de utilidad para almacenar valores de dimensiones de componentes como ventanas, paneles etc, su
constructor principal es:
La clase Rectangle es una utileria que permite mantener informacion sobre las coordenadas de un rectángulo su principal
constructor es:
Esta clase tambien contiene metodos sobrecargados muy útiles para trabajar con rectangulos, por ejemplo:
Ejemplo:
La clase Graphics2D
Esta clase permite dibujar formas y figuras basicas dentro de un contenedor. Esta clase es una version
mejorada de la clase Graphics.
drawArc(int x, int y, int width, int length, int startAngle, int arcAngle)
g.drawPolygon(x, y, 6);