utilizar comentarios distinguir entre identificadores válidos e inválidos reconocer las palabras...

44

Upload: fabian-mezo

Post on 03-Jan-2015

23 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales
Page 2: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales
Page 3: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales para los tipos de datos numéricos y 

de texto Definir los términos variable primitiva y variable de referencia. Declarar variables de tipo clase. Construir un objeto usando new. Describir la inicialización por defecto. Describir la importancia de una variable de referencia. Enunciar las consecuencias de asignar variables de tipo clase

Page 4: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Una sentencia es una o más líneas de código terminadas con un punto y coma (;)₋ total = a + b + c + d + e + f;

Un bloque es una colección de sentencias entre llaves que abren y cierran :

{x = y + 1;y = x + 1;

}

Page 5: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Debe usar un bloque en la definición de clase:public class MyDate { private int day; private int month; private int year;} Se puede anidar bloques. Cualquier cantidad de espacios en blanco es

permitido en un programa Java.

Page 6: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Son nombres dados a variables, clases o métodos Puede empezar con una letra Unicode,

infraguión( _ ) o signo de pesos ($) Son case-sensitive y no tienen largo máximo Ejemplos:

₋ Identificador₋ NombreUsuario₋ nombre_usuario ₋ _sys_var1 ₋ $cambio

Page 7: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Sin embargo se recomienda utilizar los identificadores en forma camelCase.

Ejemplos de como se usa:₋ String techManager; // OK₋ String TechManager; // tiene que empezar en

minúscula₋ String tech_Manager // no se usa subguiones.

Sun propone convención de nombres:http://java.sun.com/docs/codeconv/

Page 8: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Las 49 palabras reservadas:

No pueden ser utilizadas como nombres de clases, métodos o variables.

Page 9: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

El lenguaje de programación Java define ocho tipos primitivos:₋ Numericos – byte, short, int y long₋ Punto flotante – double y float₋ Lógicos – boolean₋ Textual – char

Page 10: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Los 6 tipos numéricos son con signo, positivos o negativos

Se representan en notación complemento a dos

Page 11: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Rangos para los tipos de datos numéricos

Page 12: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

El tipo de dato boolean puede tomar solo los valores, true y false.

Por ejemplo, la sentencia:₋ boolean truth = true;₋ declara la variable truth de tipo boolean y le

asigna el valor true. El tipo char contiene un único carácter Unicode

representado con 16 bits (solo valores positivos)

Page 13: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Los literales null, true y false se comportan también como palabras reservadas.

El tipo char es en realidad un integral, puede ser asignado a cualquier tipo numérico suficientemente grande para almacenarlo (216 – 1)

Page 14: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Un literal primitivo es un valor que se escribe en el código.

Ejemplo:₋ ‘b’ // literal char₋ 42 // literal int₋ false // literal boolean₋ 234456.6 // literal double

Page 15: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Hay 3 formas de representarlos₋ Decimal (en base 10)₋ Octal (en base 8)₋ Hexadecimal (en base 16)

Decimal₋ int x = 43;

Octal₋ int y = 011; // decimal 9

Hexadecimal₋ int z = 0xDeadCafe

Page 16: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Uno de los pocos lugares donde Java no es case-sensitive es en los digitos de los números hexadecimales

Por defecto todos los literales integrales (octales, decimales y hexadecimales) son definidos como int.

También pueden ser especificados como long utilizando el sufijo L o l₋ long w = 110599L;₋ long z = 0xFFFFl;

Page 17: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Opcionalmente podría agregarse el sufijo D o d a los literales double, si bien no es necesario ya que es el comportamiento por defecto, lo siguiente es válido:₋ double d = 3434.5657D;₋ double d2 = 234.2311e4d;

Page 18: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Se definen como un número, una coma decimal (.) y más números representando la fracción.₋ double d = 12346.876;

Opcionalmente E o e (para valores exponenciales) y un número₋ double d = 2345.456E-23;

Los números en punto flotante se definen como double por defecto (64 bits).

Si se quiere asignar un literal de esta forma a un float se deberá agregar el sufijo F o f.₋ float f = 23.467890 // error de compilación₋ float f = 49874.02345F; // Ok

Page 19: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Un valor booleano solo puede ser true o false.₋ boolean t = true;₋ boolean f = 0; // error de compilación

Siempre donde se requiera que se evalúe una condición booleana, deberá tomar valores true o false₋ int x = 1;

if (x) { … } // error de compilación!

Page 20: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Utiliza la siguiente notación:'a' La letra a'\t' El tabulador'\u????' Los cuatro ????, es un número

hexadecimal que representa a un carácter específico en Unicode (por ejemplo,’\u03A6’ es la letra Griega phi [Φ])

Page 21: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Recordar que el tipo char es un tipo integral de 16 bits sin signo. Las siguientes asignaciones son legales:₋ char a = 0x892;₋ char b = 982;₋ char c = (char)

70000 // requiere casteo; 70000 se va de

// rango₋ char d = (char) -96

Caracteres de escape válidos:

₋ \’ (single quote)₋ \” (double quote)₋ \\ (backslash)₋ \t (horizontal tab)₋ \b (backspace)₋ \r (carriage return)₋ \f (formfeed)₋ \n (newline)

Page 22: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

No es un tipo primitivo, es una clase Se define entre comillas dobles (" ")"The quick brown fox jumps over the lazy dog." Ejemplos:

₋ String greeting = "Good Morning !! \n";₋ String errorMessage = "Record Not Found !";₋ Los veremos más adelante en profundidad.

Page 23: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Escenario Solución

Qué tipo primitivo sería el mejor para representar el número de estrellas del universo?

long

Qué tipo primitivo sería mejor para representar las opciones de un examen múltiple opción, donde una sola respuesta es válida?

char

Qué tipo primitivo sería adecuado para representar las respuestas de un test múltiple opción, con varias respuestas válidas?

char[]

Qué tipo primitivo seria adecuado para representar la cantidad de habitantes de U.S.A en 2003?

int ( o long para la población mundial)

Qué tipo primitivo sería adecuado para representar el monto de dinero (en dólares) para cuando te retires?

float ( o double si eres el CEO de una compañía de software)

Page 24: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

public class Assign { public static void main (String args []) { // declara variables de tipo int int x, y; // declara y asigna un punto flotante float z = 3.414f; // declara y asigna un double

double w = 3.1415; // declara y asigna un boolean

boolean truth = true; // declare una variable character

char c;

Page 25: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

// declara una variable String String str;// declare and assign String variable String str1 = "bye";// assign value to char variable

c = 'A';// assign value to String variable

str = "Hi out there!";// assign values to int variables x = 6; y = 1000; }}

Page 26: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Son todos los tipos que no son tipos primitivos

Una variable referencia contiene un “puntero” a un objeto.

Thread t = ??? // que literal podría asignarse ?

Page 27: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Ejemplo:

public class MyDate { private int day = 1; private int month = 1; private int year = 2000; public MyDate(int day, int month, int year) {... } public void print() { ... } }

Page 28: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

public class TestMyDate { public static void main(String[] args) { MyDate today = new MyDate(22, 7, 1964); } }

Page 29: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Al invocar new Xxx(), para crear el espacio de memoria al objeto nuevo, ocurre lo siguiente:₋ Se asigna memoria:

₋ Espacio para el objeto nuevo es asignado y las variables de instancia son inicializadas al valor por defecto que les corresponda (por ejemplo: 0, false, null)

₋ Se realiza la inicialización explícita de los atributos₋ Un constructor es ejecutado

La referencia al objeto es asignada a la variable Ejemplo

₋ MyDate my_birth = new MyDate(22, 7, 1964);

Page 30: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

La declaración sólo reserva memoria para la referencia:₋ MyDate my_birth = new MyDate(22, 7, 1964);

Utilice el operador new para reservar memoria para MyDate₋ MyDate my_birth =

new MyDate(22, 7, 1964);

Page 31: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Inicialización de atributos:₋ MyDate my_birth = new MyDate(22, 7, 1964);

Los valores por defectos son tomados de la declaración de la clase

Page 32: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Ejecutando el constructor correcto:₋ MyDate my_birth = new MyDate(22, 7, 1964);

En el caso de constructores sobrecargados, el primer constructor puede invocar a otro, como veremos más adelante

Page 33: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Asignación del objeto nuevo a la variable referencia:₋ MyDate my_birth = new MyDate(22, 7, 1964);

Page 34: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

int x = 7;int y = x;MyDate s = new MyDate(22, 7, 1964);MyDate t = s; Dos variables referencia al mismo objeto

t = new MyDate(22, 12, 1964); El reasignar hace que las variables referencias

apunten a dos objetos

Page 35: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

En Java los argumentos sólo se pasan por valor.

Cuando una instancia de un objeto es pasado como argumento a un método, el valor de ese argumento es una referencia al objeto.

El contenido del objeto puede ser cambiado en el método que lo invocó, pero el objeto referencia nunca puede ser cambiado.

Esto es, puede cambiarse a lo que “apunta”, pero no se puede cambiar la referencia, por ejemplo hacer referenciar a otro objeto

Page 36: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

public class PassTest {

// Methods to change the current valuespublic static void changeInt(int value) {

value = 55; } public static void changeObjectRef(MyDate ref) { ref = new MyDate(1, 1, 2000); }

public static void changeObjectAttr(MyDate ref) { ref.setDay(4); }

public static void main(String args[]) { MyDate date;

int val;

// Assign the int val = 11;

Page 37: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

// Try to change it changeInt(val); // What is the current value? System.out.println("Int value is: " + val);

// Assign the date date = new MyDate(22, 7, 1964); // Try to change it changeObjectRef(date); // What is the current value? date.print();

// Now change the day attribute // through the object reference changeObjectAttr(date); // What is the current value? date.print(); } }

Page 38: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Algunos ejemplos del uso de la palabra reservada this:₋ Resuelve ambigüedades:

₋ Cuando se quiere referenciar un una variable miembro dentro de un bloque, que tiene variables locales o argumentos con el mismo nombre

Para pasar como parámetro al objeto actual a otro método o constructor

Page 39: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

public class MyDate { private int day = 1; private int month = 1; private int year = 2000;

public MyDate(int day, int month, int year) { this.day = day; this.month = month; this.year = year; } public MyDate(MyDate date) { this.day = date.day; this.month = date.month; this.year = date.year; }

Page 40: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

public MyDate addDays(int more_days) { MyDate new_date = new MyDate(this); new_date.day = new_date.day + more_days; return new_date; } public void print() {

System.out.println("MyDate: " +day+""+month+"-" + year);

} } public class TestMyDate { public static void main(String[] args) { MyDate my_birth = new MyDate(22, 7, 1964); MyDate the_next_week = my_birth.addDays(7);

the_next_week.print(); } }

Page 41: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Paquetes:package banking.domain;

Clases:class SavingsAccount

Interfases:interface Account

Métodos:balanceAccount()

Page 42: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Variables:currentCustomer

Constantes:HEAD_COUNT

MAXIMUM_SIZE

¿Donde encontrarlas?₋ http://java.sun.com/docs/codeconv/

Page 43: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Sintaxis de clases: bloques, atributos, métodos, identificadores.

Palabras reservadas. Tipos: primitivos y referencia. Creación de objetos: constructores. Asignaciones de memoria. Convenciones de código.

Page 44: Utilizar comentarios Distinguir entre identificadores válidos e inválidos Reconocer las palabras claves de la tecnología Java. Definir los valores literales

Arraquis₋ http://www.arrakis.es/~abelp/ApuntesJava/indice.htm

Java Sun ₋ http://download.oracle.com/javase/1.5.0/docs/guide/language/inde

x.html