410 likes | 599 Views
Java. Prof. Mayra M. Méndez Anota. Hemos visto de Java. Herramientas Características Convenciones Estructura de una clase Sintaxis de: métodos, atributos, constructores Sentencias de escape Import y package. Veremos. Palabras reservadas Tipos de datos Operadores
E N D
Java Prof. Mayra M. Méndez Anota
Hemos visto de Java • Herramientas • Características • Convenciones • Estructura de una clase • Sintaxis de: métodos, atributos, constructores • Sentencias de escape • Import y package
Veremos • Palabras reservadas • Tipos de datos • Operadores • Sentencias de control • Arreglos
Ejercicio. public class BasicsDemo { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } }
Ejercicio. // SecuenciasEscape.java // Demostrando el uso de secuencias de escape public class SecuenciasEscape { public static void main( String args [ ] ) { System.out.println( "Impresión de apóstrofos: " + “ \‘ A \‘ " ); System.out.println( "Impresión de comillas: " + “ \“ string \“ " ); System.out.println( "impresión de una diagonal invertida: \\ " ); System.out.println( "Texto separado \t \t por dos tabulaciones" ); System.out.println( "He aquí texto \n \n a doble espacio " ); System.out.println( "********** \r ##### " ); } }
Palabras Reservadas • Son palabras que tienen especial significado para el compilador. • Se utilizan para identificar un tipo de dato o constructor del programa. abstract default if private this boolean do implements protected throw break double import public throws byte else int return try continue final new static void
Variables • Java tiene dos categorías de tipos de datos : • primitivos y referencia( un dato que es almacenado en una dirección) • Primitivos :Una variable de tipo primitivo contiene un solo valor de un tamaño y formato apropiado. Sintaxis : • Una referencia es llamada un puntero ó dirección de memoria en otros lenguajes. • Un ejemplo de variables de este tipo son los arreglos, clases, interfaces.
Operadores de Asignación Supongamos : int c = 3, d = 5, e = 4, f = 6, g = 12 ;
While while (expression) { statement } Ejemplo : while (c != 'g') { copyToMe.append(c); c = copyFromMe.charAt(++i); }
Do-While do { statement(s) } while (expression); Ejemplo : do { copyToMe.append(c); c = copyFromMe.charAt(++i); } while (c != 'g');
For for (initialization; termination; increment) { statement } for ( ; ; ) { // infinite loop ... } Ejemplo : for (int i = 0; i < arrayOfInts.length; i++) { System.out.print(arrayOfInts[i] + " "); }
IF/ELSE if (expression) { statement(s) } if (response == OK) { // code to perform OK action } else { // code to perform Cancel action } if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; }
Switch public class SwitchDemo { public static void main(String[] args) { int month = 8; switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break; case 4: System.out.println("April"); break; case 5: System.out.println("May"); break; case 6: System.out.println("June"); break; case 7: System.out.println("July"); break; case 8: System.out.println("August"); break; case 9: System.out.println("September"); break; case 10: System.out.println("October"); break; case 11: System.out.println("November"); break; case 12: System.out.println("December"); break; } } }
Switch – Break • public class SwitchDemo2 { • public static void main(String[] args) { • int month = 2; • int year = 2000; • int numDays = 0; • switch (month) { • case 1: • case 3: • case 5: • case 7: • case 8: • case 10: • case 12: • numDays = 31; • break; • case 4: • case 6: • case 9: • case 11: • numDays = 30; • break; • case 2: • if ( ((year % 4 == 0) && !(year % 100 == 0)) • || (year % 400 == 0) ) • numDays = 29; • else • numDays = 28; • break; • } • System.out.println("Number of Days = " + numDays); • } • }
Switch – Default switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break; case 4: System.out.println("April"); break; case 5: System.out.println("May"); break; case 6: System.out.println("June"); break; case 7: System.out.println("July"); break; case 8: System.out.println("August"); break; case 9: System.out.println("September"); break; case 10: System.out.println("October"); break; case 11: System.out.println("November"); break; case 12: System.out.println("December"); break; default: System.out.println("Hey, that's not a valid month!"); break; }
Break public class BreakDemo { public static void main(String[] args) { int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127 }; int searchfor = 12; int i = 0; boolean foundIt = false; for ( ; i < arrayOfInts.length; i++) { if (arrayOfInts[i] == searchfor) { foundIt = true; break; } } if (foundIt) { System.out.println("Found " + searchfor + " at index " + i); } else { System.out.println(searchfor + "not in the array"); } } }
Continue public class ContinueDemo { public static void main(String[] args) { StringBuffer searchMe = new StringBuffer( "peter piper picked a peck of pickled peppers"); int max = searchMe.length(); int numPs = 0; for (int i = 0; i < max; i++) { //interested only in p's if (searchMe.charAt(i) != 'p') continue; //process p's numPs++; searchMe.setCharAt(i, 'P'); } System.out.println("Found " + numPs + " p's in the string."); System.out.println(searchMe); } }
Arreglos • Es un grupo de posiciones de memoria contiguas, todas las cuales tienen el mismo nombre y el mismo tipo. • Un arreglo es un objeto. • Los arreglos pueden ser de cualquier tipo primitivo o una clase.
Arreglos char [ ]; point [ ];
Declaración y almacenamiento de arreglos • Se utiliza la palabra new para crear un objeto arreglo. int c [ ] = new int [ 12 ]; int c [ ] ; // declara el arreglo. c = new int [ 12 ]; // asigna memoria al arreglo.
Declaración y almacenamiento de arreglos • Se inicializan con cero para variables de tipos primitivos númericos. • Se inicializan con false para variables boolean. • Se inicializan con null para el caso de referencias.
Inicializando arreglos string names [ ]; names = new string [ 3 ]; names [ 0 ] = “Georgina”; names [ 1 ] = “Simon”; names [ 2 ] = “Melvin”; string names [ ] = { “Georgina”, ”Simon”, ”Melvin” };
Ejercicio. public class ArrayDemo { public static void main(String[ ] args) { final int tamaño; int[ ] anArray; // declare an array of integers anArray = new int[ tamaño ]; // create an array of integers // assign a value to each array element and print for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[ i ] + " "); } System.out.println(); } }
Arreglo de arreglos • Java no permite crear arreglos multidimensionales. • Java permite crear arreglos de un solo índice cuyos elementos también son elementos de un solo subíndice.
Declaración e inicialización int b [ ] [ ] = { {1,2 }, { 3,4} } Equivale: b [ 0 ] [ 0 ] = 1 b [ 0 ] [ 1 ] = 2 b [ 1 ] [ 0 ] = 3 b [ 1 ] [ 1 ] = 4 int matriz [ ] [ ] = new int [ 4 ] [ ] ; int matriz [ ] [ ] = new int [ ] [ 4 ] ; // Error, operación ilegal.
Ejercicio. public class ArrayOfArraysDemo { public static void main(String[ ] args) { String[ ][ ] cartoons = { { "Flintstones", "Fred", "Wilma", "Pebbles", "Dino" }, { "Rubbles", "Barney", "Betty", "Bam Bam" }, { "Jetsons", "George", "Jane", "Elroy", "Judy", "Rosie", "Astro" }, { "Scooby Doo Gang", "Scooby Doo", "Shaggy", "Velma", "Fred", "Daphne" } }; for (int i = 0; i < cartoons.length; i++) { System.out.print(cartoons[ i ][ 0 ] + ": "); for (int j = 1; j < cartoons[ i ].length; j++) { System.out.print(cartoons[ i ][ j ] + " "); } System.out.println( ); } } }
Copiando un Arreglo Se utiliza el método : System.arraycopy (Object source, int srcIndex, Object dest, int destIndex,int length) public class ArrayCopyDemo { public static void main(String[ ] args) { char[ ] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' }; char[ ] copyTo = new char[ 7 ]; System.arraycopy(copyFrom, 2, copyTo, 0, 7); System.out.println(new String(copyTo)); } }
Variables y constantes declaradas dentro de un método Objetos con sus atributos Memoria Stack Memoria Heap Almacenamiento de variables, referencias y objetos en memoria • Cuando en un programa se emplean valores literales o se crean variables y constantes para asignarles un valor, estos son almacenados en la memoria de la computadora.
Los objetos con sus atributos son almacenados en la memoria Heap, la cual es administrada de manera dinámica por el programa. Por otra parte, las referencias a los objetos y las variables de sus métodos son almacenadas en la memoria Stack, dado que sólo son empleadas por un breve periodo de tiempo. Mientras que las variables de tipo primitivo almacenan valores, las referencias a objetos almacenan la ubicación en memoria (dirección) de los mismos.
0 0.0 U shirtID price colorCode 10 counter 0x034009 0x034009 myShirt Memoria Stack Memoria Heap Ejemplo public static void main(String args[]){ int counter = 10; Shirt myShirt = new Shirt(); }
Manejo de Cadena Y Caracteres • Clase String • Clase StringBuffer • Clase Character
Clase String • Presenta varios métodos que devuelven copias modificadas de los objetos String o que devuelven un arreglo de caracteres.
Clase StringBuffer • Ofrece capacidades para procesar objetos String. • Tiene como características especiales el crear y manipular información de cadena dinámica, es decir objetos String modificables.
Clase Character • Proporciona métodos que reciben por lo menos un argumento carácter y realizan una prueba y manipulación del carácter.