View
1.588
Download
0
Category
Preview:
DESCRIPTION
Programación básica en java
Citation preview
PROGRAMACIÓN BÁSICA
Variables
Espacios reservados
en la memoria
Son
Contenido
Pueden cambiar
Ejecución de un
programa
Durante la
Variables Tipos de Variables
Variable
Locales ClasesTrabajan dentro de un método en particular
Son declaradas dentro de las clases y fuera de los métodos, afectan a todos los métodos.
Declaración de variables
Tipo de
Dato
Nombre de
Variable
Ejemplo: int numero1;long numero2;
Tipo de Datos
Tipo de Datos
Definición
Conjunto de valores
Una Variable
Es un conjunto
Que puede tomar
Categorías
Tipos de
Datos
Enteros
Lógicos
Caracteres
Números de Coma Flotante
Operadores y Expresiones
Operadores y Expresiones
Asignación
Aritméticos
UnariosRelacionale
s
Lógicos
Manipulación de Bits
Ternarios
Símbolo Uso Descripción
= a=b Asigna el valor de b “a” a
*= a*=b Multiplica a por b y asigna el resultado a la variable a
/= a/=b Divide el valor de a entre b y asigna el resultado a la variable a
%= a%=b Fija en a el resto de a/b
+= a+=b Suma b y a y lo asigna a la variable a
-= a-=b Resta b de a y asigna el resultado a la variable a
Asignación
Estos operadores de asignación no siempre se
utilizan, aunque los programadores en Java se
acostumbran usarlos para el ahorro de escritura
Operador
Tipos Enteros Tipos Reales Ejemplo
+ Suma Suma 4+5
- Resta Resta 7-3
* Producto Producto 4*5
/ División entera: cociente
División en coma flotante
8/5
% División entera: resto
12%5
Aritméticos, unarios y ternarios
• Los operadores unarios son aquellos que determinan si una expresión es negativa o positiva (+; -)
• Es importante retomar la prioridad
• Ternario, es aquel que devuelve un resultado que depende de una condición, tiene tres operandos.
• Ejemplo: (ventas >15) ? Comision = 100 : Comision : 0;
Relacionales
Operador
Significado Ejemplo
== Igual a a == b
!= No igual a a!=b
> Mayor que a>b
< Menor que a<b
>= Mayor o igual que a>=b
<= Menor o igual que a<=b
• Cuando se utiliza un operador relacional en una expresión. La evaluación produce como resultado true o false.
• Ejemplo: c=3<7; o sea el valor de c es true.
• Un error común de los programadores es confundir el operador de asignación con el de igualdad.
LógicosOperador Operación Lógica Ejemplo
Negación (!) No lógica !(x>=y)
O exclusiva(^)
operando1 ^ operando2
x < n ^ n > 9
Y lógica (&&) operando1 && operando2
m < n && i > j
O lógica(||) operando1 || operando2
m = 5 || n != 10
aV
V
F
F
bV
F
V
F
a^bF
V
V
F
aV
V
F
F
bV
F
V
F
a&&bV
F
F
F
aV
V
F
F
bV
F
V
F
a||bV
V
V
F
a
V
F
b
F
V
Tabla de Verdad de O lógico
Tabla de verdad de la negación
Tabla de Verdad de O exclusivo
Tabla de Verdad de y lógico
Sentencias de Control
Sentencias de
control
If, if-else
Anidamient o de If
SWITCH
WHILE
DO WHILE
FOR
FOR EACH
Bucles Anidados
Condicionales If - Else
if(condicion){//Sentencia}else{//Sentencia}
Sintaxis del If - Else
Características
•Es la estructura de control de selección principal•Tiene dos alternativas o formatos posibles•La sintaxis está expresada como lo tenemos a la derecha
Sintaxis If Simple
if(condicion) Sentencia
Sintaxis en un ejemplo
import java.util.Scanner;public class Divide{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");else{resultado = numero1/numero2;System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}}
Esta estructura de Control es utilizada para condiciones
para ejecutar una expresión u otra
Se puede expresar en una parte o en
dos, en dependencia de lo
que se desea
Anidamiento de If
Características
•Se pueden obtener decisiones que impliquen diferentes alternativas•Las sentencias If anidadas permiten tener tantas opciones como if se aniden
Sintaxis en un ejemplo
import java.util.Scanner;public class Nota{public static void main(String args[]){float numero1 = 0;Scanner reader = new Scanner(System.in);System.out.println("Introduzca la nota:");numero1 = reader.nextFloat();if(numero1<60)System.out.println("Deficiente");else{ if(numero1<70) System.out.println("Regular"); else { if(numero1<80) { System.out.println("Bueno"); } else { System.out.println("Excelente"); } }}}}
Sintaxis If Simple
if(condición) sentencia1else{ sentencia2 if(condición2) sentencia3 else sentencia4}
Permite escoger entre más de dos alternativas
Switch
Características
•La Sentencia Switch es una sentencia de java que se utiliza para seleccionar múltiples alternativas.
•Las sentencias switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.
•El valor de esta expresión puede ser int o char, pero no double.
Sintaxis en un ejemplo
import java.util.Scanner;public class Clasificacion{public static void main(String args[]){int numero1 = 0;Scanner reader = new Scanner(System.in);System.out.println("Ingrese 0 o 1:");numero1 = reader.nextInt();switch (numero1){case 0: System.out.println("Cero"); break; case 1: System.out.println("Uno"); break;default:System.out.println("Fuera de rango");}}}
Sintaxis If Simple
switch (opcion){case 0:System.out.println(“Cero”);break;case1:System.out.println(“Uno”);break;}
Permite escoger entre más de dos alternativas
Ciclos
While
Do Whil
e
For
For each
While
•Es cualquier construcción de programa que repite una secuencia de sentencias un número de veces.•La sentencia que se repite se le denomina cuerpo•Existen dos interrogantes: ¿cuál es el cuerpo del bucle y como definirlo? Y ¿Cuántas veces se iterará el cuerpo del bucle?
¿Qué es un Bucle?
•Tiene una condición del bucle (expresión lógica) que está delante del cuerpo del Bucle.•Se ejecuta a si mismo, se evalúa la condición antes de que ejecute el cuerpo del bucle•El bucle es repetitivo mientras la condición siga siendo verdadera•Si la condición es incialmente falsa el cuerpo del bucle no se ejecutará
Bucle While
Condición
Sentencia
FalsoVerdadero
import java.util.Scanner;public class Divide_while{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();while(numero2==0){System.out.println("Ingrese nuevamente, el resultado no está definido");numero2 = reader.nextFloat();}resultado = numero1/numero2;System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}
Sintaxis de un Bucle While
Se puede usar la sentencia break
en los bucles para determinar una
salida inesperada
For
•Es el más indicado para utilizar bucles controlados por contador•Se diferencia del bucle while porque las operaciones de control se realizan en la cabecera •Contiene cuatro partes : Inicialización, condición, incremento, Sentencias (cuerpo)•Inicialización: Inicializa las variables de control del bucle•Condición: contiene la expresión lógica que hace que el bucle realice las iteraciones sentenciadas•Incremento: Incremento o decremento en dependencia de la variable de control del bucle•Sentencias: Acciones o sentencias que se ejecutan en cada iteración
Bucle For
import java.util.Scanner;public class Ciclo_for{public static void main(String args[]){int numero1 = 0;int numero2 = 0;Scanner reader = new Scanner(System.in);for(int i= 1; i<11; i++){System.out.println("Introduce el valor: "+i);numero1 = reader.nextInt();numero2+=numero1;}System.out.println("El resultado es: " + numero2);}}
Sintaxis de un Bucle For
Variable_control=
valor_limite
Sentencia
Falso
Verdadero
Variable_control=Valor_inicial
Expresion_incremento
Hay que tener mucho cuidado en los ciclos for para
evitar ciclos infinitos escribiendo
bien la condición.
Do While
•Se utiliza para especificar un bucle condicional que ejecuta el cuerpo del bucle al menos una vez.•Comienza ejecutando una sentencia a través del DO, luego se evalúa una expresión, si esta es verdadera entonces sigue el bucle de lo contrario no.•Es parecido al while, la única diferencia es que el do while se ejecuta al menos una vez
Bucle Do While
import java.util.Scanner;public class Do_while{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado=0;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer valor: ");numero1 = reader.nextFloat();do{System.out.println("Introduce el segundo valor -Si se muestra más de dos veces esta sentencia sera porque se ha cometido un error-: ");numero2 = reader.nextFloat();}while(numero2==0);resultado=numero1/numero2;System.out.println("El resultado es: " + resultado);}}
Sintaxis de un bucle Do While
Los ciclos tienen diferentes utilidades las cuales debes ir conociendo para
que puedas identificar cual usar.
Condición
Sentencia
Falso
Verdadero
For Each
•Sirve par a moverse dentro de los elementos de una estructura de datos, podría ser un vector•Los componentes son: Elementos, tipo de datos, Conjunto, Cuerpo.•Elemento: Es el nombre de la variable que toma el elemento iterado en el cuerpo del bucle•Tipo de Dato: Es el tipo de dato de dicha variable.•Conjunto: Es la estructura de datos que se quiere iterar (Suelen ser vectores o arreglos)•Cuerpo: Son las sentencias que se ejecutarán dentro del bucle.•Es otro tipo de utilización del ciclo for solo que emplea otra clase de parámetros
Bucle For Each
import java.util.Scanner;public class For_each{public static void main(String args[]){ String [] arrStr = {"1", "2", "3", "4", "5"}; for(String elemento : arrStr) { System.out.println(elemento); } }}
Sintaxis de un bucle For Each
El ciclo For each salió con la versión java5, lo que trajo, nuevas formas de utilización de los
bucles
Elemento
Tipo de Dato
Conjunto
Cuerpo
Ciclo For
Each
Arreglos
•Es una secuencia de datos de un mismo tipo•Los elementos de un arreglo pueden tener cualquier tipo de dato simple de java.•Cada item de un arreglo se le denomina elemento•Para declararse un arreglo se hace de forma similar a una variable normal, sólo que diferenciándolo con corchetes ([]).•Para indicar el número de elementos que tiene un arreglo se utiliza el operador New•El primer item se inicializa en la posición 0
Arreglos
import java.util.Scanner;public class Divide_arreglo{public static void main(String args[]){float [] arreglo1;arreglo1=new float[3];arreglo1[2]=0;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");arreglo1[0] = reader.nextFloat();System.out.println("Introduce el segundo número:");arreglo1[1] = reader.nextFloat();if(arreglo1[1]==0){System.out.println("El Resultado no está definido");}else{arreglo1[2] = arreglo1[0]/arreglo1[1];System.out.println("La división es " + arreglo1[0] + " / " + arreglo1[1] + " = " + arreglo1[2]);}}}
Forma de declarar un arreglo
El arreglo se guarda en memoria de forma continua
Arreglo
Tabla
Listas
Tipos disponibles
Arreglos
•Define el tamaño de un arreglo•Resulta muy útil cuando se pasa un arreglo a un método•Se utiliza de la siguiente manera: variable.length, teniendo a variable como un arreglo.•El operador length no puede ser modificado.
La propiedad Length
public class Funcion_length{public static void main (String args []){float [] valor;valor=new float[5]; System.out.println("El tamaño del arreglo es " + valor.length);}}
Forma de declarar un arreglo
Es importante definir un arreglo correctamente, debido a que su
índice va desde 0 hasta el tamaño -1
Los arreglos son necesarios cuando
se tiene listas y tablas de valores
Arreglos
•Son arreglos que están definidos por filas y columnas, por eso son llamados Matriz.•Generalmente para ingresar e imprimir (entrada y salida), se utilizan dos ciclos for que controlan el avance de las posiciones del arreglo.
La propiedad Length
import java.util.Scanner;public class Tabla{public static void main (String args []){int [][] valor;int tabla;valor=new int[12][3]; Scanner reader = new Scanner(System.in);System.out.println("Ingrese el valor de la tabla a calcular");tabla = reader.nextInt();for(int i=0;i<12;i++){valor [i][0]=i+1;valor[i][1]=tabla;valor[i][2]=valor [i][0]*valor[i][1];
System.out.println(" "+valor[i][0]+ " * "+valor[i][1]+" = "+valor[i][2]);}}}
Arreglo Tabla
Los arreglos bidimensionales
permiten trabajar tablas
Tabla
Valor 1
Valor 2
Resultado
1 5 5
2 5 10
3 5 15
4 5 20
5 5 25
6 5 30
… 5 …
Algoritmos de Búsqueda y ordenación
Métodos de
ordenación
Shell
Selección
Burbuja
Inserción
Métodos de ordenación Métodos de búsqueda
Simple
Binario
Métodos de
Búsqueda
Métodos
•Es un bloque de código que tiene un nombre, tipo de acceso, tipo de retorno y una lista de argumentos o parámetros•Puede tener palabras claves asociadas tales como: static, abstract, final. •A excepción de las sentencias de declaración de objetos y variables y bloques de inicialización estática.
Método
import java.util.Scanner;public class Divide_metodo{public static void main(String args[]){float numero1 = 0, numero2=0,resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");}else{resultado = dividir(numero1,numero2);System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}static float dividir(float valor1, float valor2){float resultado;resultado = valor1/valor2;return resultado;}}
Ejemplo
Los métodos son parte muy
importante de la programación
orientada a objetos
Su estructura es la signiente:
Tipo nombre (parámetros){}
Tipo: Especifica el tipo de datos devuelto por el métodoNombre: Identifica al método (suele escribirse en minúsculas)Parámetros(los valores que necesita un método para funcionar)La sentencia return es utilizada par a devolver valores de un método
Llamada de Métodos
•Para poder ser llamados deben ser invocados•El método que llama a otro es llamado invocador•El método llamado se le denomina invocado•La llamada a un método desde otro de la misma clase se realizará escribiendo el nombre y un par de paréntesis(abre y cierra)•Cuando se llama a un método en otra clase se realiza utilizando el nombre de la clase + “.”+ el nombre del método entre paréntesis•
Cómo?
import java.util.Scanner;public class Divide_metodo_class{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");}else{resultado = Divide_metodo.dividir(numero1,numero2);System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}}
Ejemplo
No se pueden hacer métodos anidados
Sobrecarga de Métodos
•Es posible definir dos métodos dentro de la misma clase que compartan nombre, y sus parámetros sean diferentes, a esto se le llama métodos sobrecargados.•La máquina determina a que método se hace referencia basándose en sus argumentos•La llamada no puede ser ambigua.•Medigante la sobrecarga se puede implementar el polimorfismo
Cómo?
static float calculo(float valor1, float valor2){float resultado;resultado = valor1/valor2;return resultado;}static int calculo(int valor){int resultado=1;for (int i=1;i<valor; i++){resultado*=i;}return resultado;}
Ejemplo
La sobrecarga aplica el polimorfismo
sobre los métodos
Métodos recursivos
•Es un método que se llama así mismo directa o indirectamente.• La recursividad o recursión directa es el proceso por el cual un método se llama así mismo desde el propio cuerpo del método.•La recursividad indirecta es cuando se realiza entre más de un método•Ejemplo de ejercicios que se pueden realizar son: Factoriales, fibonacci, etc.
Cómo?
static int recursivo(int valor){if(valor>1){return valor * recursivo(valor-1);}return 1;
}//Este método peretenece a la clase Recursividad y es //llamado de la siguiente manera!!!
//resultado2=Recursividad.recursivo(factorial);
Ejemplo
No se pueden hacer métodos anidados
Métodos constructores
•Un Constructor es un método miembro de propósito específico que se ejecuta automáticamente cuando se crea un objeto de una clase.•Tiene el mismo nombre que su clase•Puede tener 0 o más parámetros•No devuelve ningún valor
Qué es? Tipos de Constructores
Recordemos que los constructores son
los que se encargan de crear los objetos
en una clase
Por defec
to
Alternativos
•Cuando se define un objeto, se aplica el operador new al constructor que se desee, si tiene parámetros pasan los valores de los parámetros al constructor utilizando una sintaxis similar a una llamada normal del método•Por ejemplo: •Cuadrado c = new Cuadrado();
Estructura de un Constructor
Constructores por defecto
•Es un constructor que no tiene parámetros.•Inicializa los miembros dato asignándoles valores por defecto
Qué es?public class Cuadrado{public double lado;double area(){double resultado;resultado=lado*lado;return resultado;}double perimetro(){double resultado;resultado=4*lado;return resultado;}}
Ejemplo Clase
El ejemplo hace uso de constructores por
defecto
public class Cuadrado_constructor{public static void main(String args[]){double area_total;double perimetro_total;Cuadrado c = new Cuadrado();c.lado = 5;area_total = c.area();perimetro_total=c.perimetro();System.out.println("El area es "+ area_total+ " y el perímetro es "+ perimetro_total);}}
Constructores alternativos
•Son constructores que hacen uso de parámetros.•Los parámetros inicializan las variables definiendo valores de entrada en el constructor de objetos
Qué es? Ejemplo Clase
El ejemplo hace uso de la clase
cuadrado, asignando atributos
específicos a la clase para definirla
como objetoPodemos hacer uso
del método finalize() como
destructorr, aunque java maneja uno automático
public class Cuadrado_constructor{public static void main(String args[]){double area_total;double perimetro_total;Cuadrado c = new Cuadrado();area_total = c.area(5);perimetro_total=c.perimetro();System.out.println("El area es "+ area_total+ " y el perímetro es "+ perimetro_total);}}
Constructores sobrecargados
•Al igual que los métodos, también podemos sobrecargar los constructores•Los constructores sobrecargados son bastante frecuentes
Qué es? Ejemplo Clase
El ejemplo hace uso de la clase cuadrado, asignando atributos específicos a la clase para
definirla como objeto
public class Rectangulo_constructor{public static void main(String args[]){double area_cuadrado;double area_rectangulo;Rectangulo c = new Rectangulo();area_cuadrado = c.area(5);area_rectangulo = c.area(4,5);System.out.println("El area es "+ area_cuadrado+ " y el perímetro es "+ area_rectangulo);}}
public class Rectangulo{public double lado1;public double lado2;double area(double l1){double resultado;lado1=l1;resultado=lado1*lado1;return resultado;}double area(double l1, double l2){double resultado;lado1=l1;lado2=l2;resultado=lado1*lado2;return resultado;}}
Constructor Sobrecargado
Métodos getter y setter
•Son métodos de acceso, lo que significa que generalmente son una interfaz para cambiar miembros de clases privadas.•Los métodos getter y setter se utilizan para definir una propiedad•Se accede como propiedades situadas fura de la clase, aunque las defina dentro de las clases como métodosVentajas: Posibilidad de crear miembros con funcionalidad sofisiticada a los que puede acceder como propiedades. •Permiten crear propiedades de solo escritura y lectura•Desventajas: Dificultan el mantenimiento del código en ocasiones•Proporcionan acceso a la implementación de la clase (lo cual no es muy recomendado en POO)
Qué es?
Con el método Setter se le asignan valores a los atributos
Y con el Getter se obtienen valores de los atributos
Setter
Getter
Excepciones
•Son normalmente condiciones de error imprevistas. •Normalmente estas condiciones terminan el programa del usuario con un mensaje de error proporcionado por el sistema. Ejemplo: División por 0, arreglos fuera de límites.•Java posee un mecanismo para manejar excepciones, los cuales son objetos con jerarquía proporcionada por el lenguaje.•Throws presenta el formato: throws ObjetoExcepcion;•Se define utilizando la sentencia try{}Catch(argumento formal)El bloque finally, se utiliza para que se ejecute independientemente que haya o no una excepción
Qué es? Ejemplo de Excepción
Estas dos excepciones sirven para
validar valores de entrada y
cálculos aritméticos
try {System.out.println ("Introduzca un numerador entero: ");int numerador= reader.nextInt();System.out.println("Introduzca un denominador entero: ");int denominador=reader.nextInt();int resultado = cociente(numerador,denominador);System.out.printf("\n Resultado : %d / %d = %d\n", numerador, denominador, resultado);}catch(InputMismatchException inputMismactchException){System.err.printf("\n Exception : %s\n", inputMismactchException);reader.nextLine();System.out.println("Debe introducir enteros. Intente de nuevo. \n");}catch (ArithmeticException arithmeticException){System.err.printf("\n Exception : %s\n", arithmeticException);System.out.println("Cero es un denominador inválido. Intente de nuevo. \n");}
Recommended