Programacion en JAVA

27
Programación en JAVA (Modulo I) Ing. Eddy Salazar CONTENIDO 1. Introduccion 1.1. Caracteristicas 1.2. Estructura de una clase 1.3. Tipo de datos 1.4. Estructuras de control 2. Metodos 2.1. Funciones 2.2. Procedimientos 2.3. Recursividad 3. Estructuras de datos 3.1. Vectores 3.2. Matrices 4. Entrada de datos por consola 5. Excepciones Practica final no examen

Transcript of Programacion en JAVA

Page 1: 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

Page 2: Programacion en JAVA

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

}

Page 3: Programacion en JAVA

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");

}}

Page 4: Programacion en JAVA

Se genera el archive .class

Para interpretar:

Page 5: Programacion en JAVA

Genera el mensaje:

JDEVELOPER

Page 6: Programacion en JAVA

Primero crear aplicacionDentro aplicación proyectos

New Aplicattion:

Page 7: Programacion en JAVA
Page 8: Programacion en JAVA

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

Page 9: Programacion en JAVA
Page 10: Programacion en JAVA

Java.lang es el paquete de java y object es la clase, heredamos esta clase para

Page 11: Programacion en JAVA
Page 12: Programacion en JAVA

El botón de arriba ejecuta todo el proyecto, no solo la clase

Ejercicio1: Serie de Fibonacci

Page 13: Programacion en JAVA

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

Page 14: Programacion en JAVA
Page 15: Programacion en 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:

Page 16: Programacion en JAVA

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];

Page 17: Programacion en JAVA

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];

Page 18: Programacion en JAVA

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

Page 19: Programacion en JAVA

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

Page 20: Programacion en JAVA

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)

Page 21: Programacion en JAVA

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.

Page 22: Programacion en JAVA

   

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 );  

             }          }  

Page 23: Programacion en JAVA

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