Programacion en JAVA
-
Upload
rocio-choquehuanca -
Category
Documents
-
view
61 -
download
5
Transcript of Programacion en JAVA
Programación en JAVA (Modulo I)
Ing. Eddy Salazar
CONTENIDO
1. Introduccion1.1. Caracteristicas1.2. Estructura de una clase1.3. Tipo de datos1.4. Estructuras de control
2. Metodos2.1. Funciones2.2. Procedimientos2.3. Recursividad
3. Estructuras de datos3.1. Vectores3.2. Matrices
4. Entrada de datos por consola5. Excepciones
Practica final no examen
CARACTERISTICAS
POO Código neutral: en diferentes SO
Compilar: para validar errores de sintaxis
Interpretar: es lo mismo que ejecutar el programa
ESTRUCTURA DE UNA CLASE EN JAVA
Modificador:
Public: la clase es publica y puedo acceder a ella sin restriccion Private: clase privado, no se puede acceder desde otras clases Protected: se utiliza en herencia de clase
NombreClase: es el nombre el cual siempre debe iniciar con mayúscula y en singularAtributos: Características de la claseMètodos: acciones que puedo realizar
Método Principal: Public static void main (String arg[]){}
Static: es aquel que para poder ser llamado no necesito un objetoVoid: dice que es un procedimiento
TIPOS DE DATOS
char boolean byte 2 8 = 256 = -128---------------0-----------------127 short 2 16
int 2 32 long 2 64
float double: es aconsejable por la precisión String: es la clase string
ESTRUCTURAS DE CONTROL
IF
.java .class resultadocompilar interpretar
Modificador class NombreClase{
AtributosMétodos
}
if (condicion){…………..}else{…….}
FORfor (valor inicial; condición; incremento/decremento){…………….}
WHILEwhile (condicion){……………….}
DOdo{……………} while (condicion);
Ejercicio 1:
Guardar el archivo:
Para ejecutar:
public class Saludo{
public static void main (String arg [])
{System.out.print("HOLA MUNDO");
}}
Se genera el archive .class
Para interpretar:
Genera el mensaje:
JDEVELOPER
Primero crear aplicacionDentro aplicación proyectos
New Aplicattion:
Paquete: conjunto o colección de clases, por ejemplo: java.sql es un paquete para trabajar con base de datos
En la carpeta src: se almacenan los .javaEn la carpeta clases: se almacenan las clases .class
Java.lang es el paquete de java y object es la clase, heredamos esta clase para
El botón de arriba ejecuta todo el proyecto, no solo la clase
Ejercicio1: Serie de Fibonacci
Ejercicio2: serie
Clase 28 de Julio
Crear la clase Metodos
Crear clase PrincipalMetodos , con el metodo principal, done se crearan los objetos que llamen a las clases de Metodos.java
Metodos.java PrincipalMetodos.java
package proyecto1;public class Metodos { public int contarDig (int n) { int c=0; while (n>0) { n=n/10; c++; } return c; } public boolean primo (int n){ int i; if(n==2) return true; if (n<2 || n%2==0) return false; for (i=3; i< n/2; i=i+2) { if (n%i==0) return false; } return true; }} public String seriePrimos() { String s="2"; //String s="";inicializa una cadena vacia int i; for(i=3; i<=100;i=i+2) if (primo(i)) s=s+" "+i; return s; }
package proyecto1;public class PrincipalMetodos { public static void main(String[] args) { Metodos A=new Metodos(); System.out.println(A.contarDig(2134465)); System.out.println(A.primo(125)); System.out.println(A.seriePrimos()); }}
Casting:
Conversiones en Java
(tipoDato)valor
Math.pow(a,b) variables de tipo double
Clase 04 de Agosto
PROCEDIMIENTOS
- Admiten 0 o mas parámetros de entrada- Devuelven 0 o más parámetros de salida, se los define como atributos de la
clase.Con tres tipos de comportamientos: públicos, privados y protegidos
Sintaxispublic void nombre( , , ){…………..}
Cuando un procedimiento no tiene parametros de salida y un print dentro solo se llama asi:
A.contarDigP(55555);Cuando un procedimiento tiene uno o mas procedimientos
System.out.println(A.c);
Recursividad
Función recursivan! =n*(n-1)
Criterio baseSi n=0 devolver 1
Estructura de datos
Es la forma de almacenar coleccionar o agrupar varios valores, simples o complejos y manipularlos.
Lineales: son aquellas que siguen un orden, por ejemplo: vectores, Matrices No Lineales: cambio su lógica en la manipulación de datos, puede o no
seguir un orden, por ejemplo: Pilas, colas, listas, árboles, grafos
a. Vectores:
Declaración y creación del vector:
tipoDato vector [] = new tipoDato[dimension]; declaración = creación, porque le digo cuánto va almacenar
Ej:int A[] = new int [10];
Declaración e inicialización:
tipoDato vector [] ={elemento1, elemento2, elemento3, …………….., elemento n}ej:int B[] = {20,2,3,45,90}
Dimensión del vector
Vector.length()Ej:A.length () -- el cual devuelve en este caso 10 porque asi estaba inicializado
Ejercicio: Dado un vector, devolver en otro vector la cantidad de elementos primos, la sumatoria de los elementos pares y el promedio de los elementos impares
public int[] ejercicio(int V[], int n){ int R[]= new int [3]; Metodos F= new Metodos(); int cpr=0, sp=0, si=0, i, a=0; for(i=0;i<n;i++){ if(F.primo(V[i])) cpr++; if (V[i]%2==0) sp= sp+V[i]; else{ si= si+V[i]; a++; } } si=si/a; R[0]=cpr; R[1]=sp; R[2]=si; return R; }
Para mostrar la función desde el método principal:
int X[]= new int[3]; X=P.ejercicio(B, B.length); P.mostrarV(X, X.length);
P.mostrarV(P.ejercicio(B, B.length), 3);
b. Matrices:
Declaraciòn y creación
tipoDato nombre [][] = new tipoDAto[# filas][# columnas];
ejemplo:int A[][]= new int [10][20];
Declaración e inicialización
tipoDato nombre [][]= {{el1, el2}, {op1, op2, op3}};
ejemplo:int B[][]= {{1,2},{3,6,5}};
Ejercicio 1-M:Dada una matriz, devolver en un vector la sumatoria de los elementos pares de cada columna de la matriz
Por ejemplo:
1 4 3015 20 1124 3 19 10 8
24 34 38
Ejercicio 2-M:Generar la siguiente matriz:
1 9 16
8
2 10
15
7
3 11
14
6
4 12
13
5
Cadenas (Clase String)
Dimensión de la cadena Int cadena.length()
“Programación” = 13Extracción de un carácter
char cadena.charAT (n) int =2
“Java” = v
Convertir a mayúsculas y minúsculascadena.toUpperCase () Mayúsculacadena.toLowerCase () Minúscula
Comparación de cadenas
int cadena.compareTo(cadena)0 si son iguales
Comparación estricta
hola no es igual a Hola
boolean cadena.equals (cadena)true= verdadero y false = falso
boolean cadena.equalsIgnoreCase (cadena)true= verdadero y false = falso
Posición de un carácter o cadena
int cadena.indexOf(c) el parametro puede ser char o string (cadena),
Por ejemplo: busca la ‘o’ de izquierda a derecha y devuelve su posición
int cadena.lastIndexOf(c) el parametro puede ser char o string (cadena)
Por ejemplo: buscar la posicion de la letra o en la palabra: “Programacion”
cadena.indexOf(‘o’) = 2 busca la ‘o’ de izquierda a derecha y devuelve su posición
cadena.lastIndexOf(‘o’) = 10 busca la ‘o’ de derecha a izquierda y devuelve su posición
Extracción de subcadenas
String cadena.substring(a, b) a<b, donde a y b deben ser de tipo int Extrae b-a caráteresa partir de la posición ‘a’
Ejemplo: “Tecnologia”cadena.substring(3,7)= ‘nolo’
Conversión de valores numéricos a cadena
String cadena.valueOf(n) el n puede ser de tipo: int, long, byte, short, float, double
Ejemplo: cadena.valueOf(7)= “7”
Ejercicio:Dada una cadena que almacena el nombre y la extensión de un determinado archivo, cambiar la extensión del archivo a: “.html”
ANEXO
Las cadenas de texto.
Comparación no estricta
hola es igual a Hola
Una cadena de texto (en inglés, "string") es un bloque de letras, que usaremos para poder almacenar palabras y frases. En algunos lenguajes, podríamos utilizar un "array" de "chars" para este fin, pero en Java no es necesario, porque tenemos un tipo "cadena" específico ya incorporado en el lenguaje.
Realmente en Java hay dos "variantes" de las cadenas de texto: existe una clase llamada "String" y otra clase llamada "StringBuffer". Un "String" será una cadena de caracteres constante, que no se podrá modificar (podremos leer su valor, extraer parte de él, etc.; para cualquier modificación, realmente Java creará una nueva cadena), mientras que un "StringBuffer" se podrá modificar "con más facilidad" (podremos insertar letras, dar la vuelta a su contenido, etc) a cambio de ser ligeramente menos eficiente (más lento).
Vamos a ver las principales posibilidades de cada uno de estos dos tipos de cadena de texto y luego lo aplicaremos en un ejemplo.
Podemos "concatenar" cadenas (juntar dos cadenas para dar lugar a una nueva) con el signo +, igual que sumamos números. Por otra parte, los métodos de la clase String son:
Método Cometido
length() Devuelve la longitud (número de caracteres) de la cadena
charAt (int pos) Devuelve el carácter que hay en una cierta posición
toLowerCase() Devuelve la cadena convertida a minúsculas
toUpperCase() Devuelve la cadena convertida a mayúsculas
substring(int desde, int cuantos)
Devuelve una subcadena: varias letras a partir de una posición dada
replace(char antiguo, char nuevo)
Devuelve una cadena conun carácter reemplazado por otro
trim() Devuelve una cadena sin espacios de blanco iniciales ni finales
startsWith(String subcadena)
Indica si la cadena empieza con una cierta subcadena
endsWith(String subcadena)
Indica si la cadena termina con una cierta subcadena
indexOf(String subcadena, [int desde])
Indica la posición en que se encuentra una cierta subcadena (buscando desde el principio, a partir de una posición opcional)
lastIndexOf(String subcadena, [int desde])
Indica la posición en que se encuentra una cierta subcadena (buscando desde el final, a partir de una posición opcional)
valueOf( objeto )Devuelve un String que es la representación como texto del objeto que se le indique (número, boolean, etc.)
concat(String cadena) Devuelve la cadena con otra añadida a su final (concatenada)
También se pueden concatenar cadenas con "+"
equals(String cadena) Mira si las dos cadenas son iguales (lo mismo que "= =")
equals-IgnoreCase( String cadena)
Comprueba si dos cadenas son iguales, pero despreciando las diferencias entre mayúsculas y minúsculas
compareTo(String cadena2)Compara una cadena con la otra (devuelve 0 si son iguales, negativo si la cadena es "menor" que cadena2 y positivo si es "mayor").
Como se ve, en ningún momento estamos modificando el String de partida. Eso sí, en muchos de los casos creamos un String modificado a partir del original.
El método "compareTo" se basa en el órden lexicográfico: una cadena que empiece por "A" se considerará "menor" que otra que empiece por la letra "B"; si la primera letra es igual en ambas cadenas, se pasa a comparar la segunda, y así sucesivamente. Las mayúsculas y minúsculas se consideran diferentes.
Hay alguna otra posibilidad, de uso menos sencillo, que no veremos (al menos por ahora), como la de volcar parte del String en un array de chars o de bytes.
Los métodos de la clase StringBuffer son:
Método Cometido
length() Devuelve la longitud (número de caracteres) de la cadena
setLength() Modifica la longitud de la cadena (la trunca si hace falta)
charAt (int pos) Devuelve el carácter que hay en una cierta posición
setCharAt(int pos, char letra)
Cambia el carácter que hay en una cierta posición
toString() Devuelve el StringBuffer convertido en String
reverse() Cambia el orden de los caracteres que forman la cadena
append( objeto ) Añade otra cadena, un número, etc. al final de la cadena
insert(int pos, objeto) Añade otra cadena, un número, etc. en una cierta posición
Al igual que ocurre con los strings, existe alguna otra posibilidad más avanzada, que no he comentado, como la de volcar parte del String en un array de chars, o de comprobar la capacidad (tamaño máximo) que tiene un StringBuffer o fijar dicha capacidad.
Un comentario extra sobre los Strings: Java convertirá a String todo aquello que indiquemos entre comillas dobles. Así, son válidas expresiones como "Prueba".length() y también podemos concatenar varias expresiones dentro de una orden System.out.println:
System.out.println( "Texto: " + texto1 + 5 + 23.5 );
Vamos a ver un ejemplo que aplique la mayoría de todo esto:
// Strings1.java // Aplicación de ejemplo con Strings // Introducción a Java,
class Strings1 { public static void main( String args[] ) {
String texto1 = "Hola"; // Forma "sencilla" String texto2 = new String("Prueba"); // Usando un constructor
System.out.println( "La primera cadena de texto es :" ); System.out.println( texto1 );
System.out.println( "Concatenamos las dos: " + texto1 + texto2 ); System.out.println( "Concatenamos varios: " + texto1 + 5 + " " + 23.5 ); System.out.println( "La longitud de la segunda es: " + texto2.length() ); System.out.println( "La segunda letra de texto2 es: " + texto2.charAt(1) ); System.out.println( "La cadena texto2 en mayúsculas: " + texto2.toUpperCase() ); System.out.println( "Tres letras desde la posición 1: " + texto2.substring(1,3) ); System.out.println( "Comparamos texto1 y texto2: " + texto1.compareTo(texto2) );
if (texto1.compareTo(texto2) < 0) System.out.println( "Texto1 es menor que texto2" );
StringBuffer texto3 = new StringBuffer("Otra prueba");
texto3.append(" mas"); System.out.println( "Texto 3 ahora es: " + texto3 ); texto3.insert(2, "1"); System.out.println( "Y ahora es: " + texto3 ); texto3.reverse(); System.out.println( "Y ahora: " + texto3 );
} }
El resultado de este programa sería el siguiente:
La primera cadena de texto es : Hola Concatenamos las dos: HolaPrueba Concatenamos varios: Hola5 23.5 La longitud de la segunda es: 6 La segunda letra de texto2 es: r La cadena texto2 en mayúsculas: PRUEBA Tres letras desde la posición 1: ru Comparamos texto1 y texto2: -8 Texto1 es menor que texto2 Texto 3 ahora es: Otra prueba mas Y ahora es: Ot1ra prueba mas Y ahora: sam abeurp ar1tO