View
219
Download
0
Category
Preview:
Citation preview
JavaProf. Mayra M. Méndez Anota
Herramientas Características Convenciones Estructura de una clase Sintaxis de: métodos, atributos,
constructores Sentencias de escape Import y package
Hemos visto de Java
Palabras reservadas Tipos de datos Operadores Sentencias de control Arreglos
Veremos
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); }}
// 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 ##### " ); }}
Ejercicio.
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 thisboolean do implements protected throwbreak double import public throwsbyte else int return trycontinue final new static void
Palabras Reservadas
Keyword Description Size/Format
(integers)
byte Byte-length integer 8-bit two's complement
short Short integer 16-bit two's complement
int Integer 32-bit two's complement
long Long integer 64-bit two's complement
(real numbers)
floatSingle-precision floating
point32-bit IEEE 754
doubleDouble-precision floating
point64-bit IEEE 754
(other types)
char A single character 16-bit Unicode character
booleanA boolean value (true or
false)true or false
Literal Data Type
178 int
8864L long
37.266 double
37.266D double
87.363F float
26.77e3 double
' c ' char
true boolean
false boolean
Tipos Primitivos
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.
Variables
Operadores de incremento y decremento
Operador Llamado Expresión de muestra
++ Preincremento ++a
++ Posincremento a++
-- Predecremento --b
-- Posdecremento b--
Operadores Aritméticos
Operador Uso Descripción
+ op1 + op2 suma op1 y op2
- op1 - op2 resta op2 del op1
* op1 * op2 Multiplica op1 por el op2
/ op1 / op2 Divide op1 entre op2
% op1 % op2 Regresa el restante de dividir el op1 entre op2
Operadores de Asignación
Operador de asignación
Expresión de muestra
Explicación Asigna
+= c+=7 c = c + 7 10 a c
-= d -=4 d = d – 4 1 a d
*= e *=5 e = e * 5 20 a e
/= f/=3 f = f / 3 2 a f
%= g%=9 g = g % 9 3 a g
Supongamos :int c = 3, d = 5, e = 4, f = 6, g = 12 ;
Operadores Relaciónales
Operador Uso Regresa true si
> op1 > op2 op1 es mayor que op2
>= op1 >= op2 op1 es mayor o igual a op2
< op1 < op2 op1 es menor que op2
<= op1 <= op2 op1 es menor o igual que op2
== op1 == op2 op1 y op2 son iguales
!= op1 != op2 op1 y op2 no son iguales
Operadores Relaciónales
Operador Uso Regresa true si
&& op1 && op2 op1 y op2 ambos son true, condicionalmente se evalua el op2
|| op1 || op2 Si op1 o op2 es true, condicionalmente se evalua el op2
! ! op op es false
Estructuras de Control
Estructuras de control
Statement Type Keyword
looping while, do-while , for
decision making if-else, switch-case
exception handling
try-catch-finally, throw
branching Break, continue, label:, return
while (expression) { statement}
Ejemplo :
while (c != 'g') { copyToMe.append(c); c = copyFromMe.charAt(++i); }
While
do { statement(s)} while (expression);
Ejemplo :
do { copyToMe.append(c); c = copyFromMe.charAt(++i); } while (c != 'g');
Do-While
for (initialization; termination; increment) { statement}
for ( ; ; ) { // infinite loop...}
Ejemplo :for (int i = 0; i < arrayOfInts.length; i++) { System.out.print(arrayOfInts[i] + " "); }
For
if (expression) { statement(s)}if (response == OK) { // code to perform OK
action} else { // code to perform Cancel
action}
IF/ELSE
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'; }
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
• 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 – Break
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;}
Switch – Default
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"); } }}
Break
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); }}
Continue
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
Arreglos
char [ ]; point [ ];
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.
Declaración y almacenamiento de arreglos
string names [ ];names = new string
[ 3 ];names [ 0 ] =
“Georgina”;names [ 1 ] =
“Simon”;names [ 2 ] =
“Melvin”;
Inicializando arreglos
string names [ ] = {
“Georgina”,”Simon”,”Melvin”
};
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(); }}
Ejercicio.
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.
Arreglo de arreglos
int b [ ] [ ] = { {1,2 }, { 3,4} }
Equivale:
b [ 0 ] [ 0 ] = 1b [ 0 ] [ 1 ] = 2b [ 1 ] [ 0 ] = 3b [ 1 ] [ 1 ] = 4
int matriz [ ] [ ] = new int [ 4 ] [ ] ;
int matriz [ ] [ ] = new int [ ] [ 4 ] ; // Error, operación ilegal.
Declaración e inicialización
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( );
} }}
Ejercicio.
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)); }}
Copiando un Arreglo
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.
Almacenamiento de variables, referencias y objetos en memoria
Objetos con sus atributos
Variables y constantes declaradas dentro de
un método
Memoria Stack
Memoria Heap
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.
public static void main(String args[]){int counter = 10;Shirt myShirt = new Shirt();
}
Ejemplo
Memoria Stack Memoria Heap
counter
myShirt
10
0x034009
shirtID
price
colorCode
0x034009
0
0.0
U
Clase String
Clase StringBuffer
Clase Character
Manejo de Cadena Y Caracteres
Presenta varios métodos que devuelven copias modificadas de los objetos String o que devuelven un arreglo de caracteres.
Clase String
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 StringBuffer
Proporciona métodos que reciben por lo menos un argumento carácter y realizan una prueba y manipulación del carácter.
Clase Character
Recommended