Reglas Sintácticas y de Codificación Básicas de JAVA Objetivos Que el alumno pueda: Identificar claramente los componentes del Lenguaje y su proceso de ejecución. Identificar y comprender las partes de un archivo Java Identificar y describir las partes de una clase Java Describir las reglas de sintácticas y de Codificación de Java 2 Que es JAVA Una plataforma. Una plataforma es el entorno de hardware y software donde se ejecutan los programas. La mayoría de las plataformas combinan el S. O. (software) y la gestión del hardware. JAVA gestiona el software de una plataforma, que funciona sobre cualquier hardware que posea una J.V.M. Un Lenguaje de Programación Orientado a Objetos de alto nivel orientado a objetos Un conjunto de bibliotecas (libraries) que permiten realizar el desarrollo de distintos tipos de aplicaciones (móviles, web, etc.) JAVA como plataforma Consta de 2 partes: La Máquina Virtual de JAVA (Java Virtual Machine [J.V.M.]). Es el corazón de JAVA que permite que JAVA sea multiplataforma. Es un interprete que ejecuta el código JAVA (bytecodes, archivos con extensión.class) en la plataforma correspondiente. La Interfaz de Programación de Aplicaciones JAVA (JAVA A.P.I.) Son bibliotecas JAVA desarrolladas con un fin específico (Interfaces Gráficas de Usuario [GUI], Gestión de E/S, Gestión de Estructuras de Datos, etc.) 3 4 1
JAVA como plataforma La plataforma JAVA se adquiere descargándola de www.sun.com. El Java Deveploment Kit (JDK) incluye todas las herramientas para ejecutar y desarrollar aplicaciones JAVA El Java Runtime Environment (JRE) incluye todas las herramientas para ejecutar aplicaciones JAVA. JAVA como plataforma Componentes del JDK Compilador JAVA (javac.exe) Interprete JAVA (JVM) (java.exe) Otras herramientas: Generador de Documentación (javac.exe) Depurador de JAVA (jdb.exe) Herramienta JAR (jar.exe) Integrador C y C++ (JNI) (javah.exe) etc. 5 6 JAVA como plataforma JAVA como plataforma Funcionamiento del Compilador JAVA (javac.exe) Funcionamiento del Interprete JAVA o J.V.M. (java.exe) El comando java.exe ejecuta los bytecodes en la plataforma correspondiente. Cada máquina debe tener instalada una JVM de la plataforma indicada Otros archivos class.. El comando javac.exe compila los archivos.java y genera archivos.class (bytecodes) 7 8 2
JAVA como Lenguaje de Programación Simple. Orientado a Objetos Facilita el Desarrollo de Aplicaciones Distribuidas Robusto Seguro Independiente de la Plataforma Compilado e Interpretado (Pseudo Interpretado) Gestiona la ejecución de aplicaciones en paralelo (MultiThread) Estructura de una Clase JAVA package nombre_paquete; public class NombrePrograma { } public static void main(string[] args) { } Descripción de Paquetes Nombre de Clase Principal Cabecera de Método Sentencias 9 10 Nomenclatura para definir Clases El nombre de la clase es un sustantivo singular que representa en forma adecuada el concepto a identificar Siempre inicia con mayúscula y continúa en minúscula. En caso de que el nombre esté formado por varias palabras, separarlas usando la primera letra de la siguiente palabra en maýuscula Si en un archivo java existen varias clases, el nombre del archivo debe ser igual al de la UNICA clase pública que se ha definido. Los paquetes Los paquetes son estructuras lógicas que sirven para ordenar y clasificar clases java. Un paquete java se representa físicamente como una carpeta 11 12 3
Nomenclatura para definir paquetes Los paquetes por convención se deben escribir en minúsculas. Cada nombre de paquete debería ser único a fin de evitar conflictos de nombre. Se puede escribir toda la jerarquía de paquetes en una sola línea. Para ello se separa cada paquete de su subpaquete por medio de un punto. Se estila utilizar el nombre de un dominio o url en reversa como esquema para las aplicaciones 13 package class Persona { /**Declaración de Atributos cursos.java.clase3.domain; // sección paquetes * @ nombrepersona: nombre de persona*/ private String nombrepersona; public Persona();{}// Constructor..otros métodos pubic void mostrardatos(){ System.out.println( Nombre: + nombrepersona);} } public class MainClass{ Persona unapersona: new Persona(); unapersona..setnombre Persona( Juan Perez ); unapersona.mostrardatos();} } Definición de una Clase: Declaración La implementación de una clase Java es un archivo con extensión.java y nombre idéntico a la clase implementada La declaración de una clase se realiza anteponiendo class al nombre de la clase class siempre va predecedida por modificador de acceso: public, protected, private o default Formato: modificador_acceso class nombre_clase{}; 14 package public class Persona { /**Declaración de Atributos cursos.java.clase3.domain; // sección paquetes * @ nombrepersona: nombre de persona*/ private String nombrepersona; pubic void setnombrepersona(string nombre){ this.nombrepersona = nombre;} pubic String getnombrepersona(){ return nombrepersona} class MainClass{ Persona unapersona: new Persona(); unapersona.setnombrepersona( Juan Perez ); System.out.Println(unaPersona..getNombrePersona());} } Atributos Deben cumplir las reglas de nomenclatura descriptas para variables y constantes Para que sea considerado un atributo se definen fuera de los métodos Formato: modificador_acceso nombre [=valor_inicial]; El modificador puede ser: Private: Sólo puede ser accedido dentro de la misma clase. Public: Puede ser accedido por cualquier clase Protected: Puede ser accedidos por cualquier clase en el mismo paquete y por subclases en otros paquetes Default: No se lo escribe. Sólo puede ser accedido por las clases del mismo paquete 15 Nomenclatura de atributos y variables Las variables se escriben con minúsculas. Cuando una variable está formada por varias palabras, las mismas se separan con la primer letra en mayúscula Los nombres de los atributos deben tener sentido en el contexto de la clase. Las variables se declaran únicamente dentro de los métodos o estructuras de control. Las constantes se declaran con la palabra clave final, se escriben en mayúsculas y si están formadas por varias palabras se separan con _ 16 4
package cursos.java.clase3.domain; // sección paquetes public class Persona { /**Declaración de Atributos * @ nombrepersona: nombre de persona*/ private String nombrepersona = Juan Perez ; public Persona(){}// Constructor pubic void mostrardatos(){ System.out.println( Nombre: + nombrepersona);} } class MainClass{ Persona unapersona: new Persona(); unapersona.mostrardatos();} } Definición de Métodos Se utiliza para definir el comportamiento del objeto. Se usan para implementar los mensajes entre clases Puedo o no poseer Tipo de Retorno Deben cumplir las reglas de nomenclatura Formato: mod_acceso tipo nombre([tipo parámetro, ]) { Comportamiento } Nomenclatura de métodos Empiezan con un verbo en infinitivo y letra minúscula. Si está formada por varias palabras se separan iniciando la siguiente palabra con mayúscula Los nombres de los métodos deben tener sentido en el contexto de la clase. Los métodos pueden declararse únicamente dentro de alguna clase El nombre del método es también el nombre del mensaje que recibe una clase para invocar ese servicio 17 18 package public class Persona { /**Declaración de Atributos cursos.java.clase3.domain; // sección paquetes * @ nombrepersona: nombre de persona*/ private String nombrepersona ; public Persona(){ nombrepersona = Juan Perez ; } // Constructor pubic void mostrardatos(){ System.out.println( Nombre: + nombrepersona);} } public class MainClass{ Persona unapersona: new Persona(); unapersona.mostrardatos();} } Definición del Constructor Se utiliza para la construcción (instanciación) de objetos (instancias) a partir de una clase Si no define un constructor JAVA crea uno por defecto sin párametros Una clase puede tener más de un Constructor No posee Tipo de Retorno Se debe llamar igual que la clase Formato: mod_acceso tipo nombre([tipo parámetro, ]); 19 package public class Persona { /**Declaración de Atributos cursos.java.clase3.domain; // sección paquetes * @ nombrepersona: nombre de persona*/ private String nombrepersona; public Persona(String nombrepersona){ this.nombre Persona = nombrepersona; }// Constructor pubic void mostrardatos(){ System.out.println( Nombre: + nombrepersona);} } public class MainClass{ Persona unapersona: new Persona( Juan Perez ); unapersona.mostrardatos();} } Reglas de sentencias Una sentencia simple finaliza en ; Las sentencias compuestas se describen entre {} conformando un bloque que lógicamente actúa como una única sentencia y las sentencias internas deben tener su ; Las llaves también se utilizan para describir el alcance de Sentencias de Control Otros aspectos Léxicos: Comentarios: // ; /* */ ; /** */ JAVA es sensible a mayúsculas. 20 5
package cursos.java.clase3.domain; // sección paquetes public class Persona { /**Declaración de Atributos * @ nombrepersona: nombre de persona*/ private String nombrepersona; public Persona(); // Constructor pubic void mostrardatos(){ System.out.println( Nombre: + nombrepersona);} } public class MainClass{ Persona unapersona: new Persona(); unapersona.nombrepersona = Juan Perez ; unapersona.mostrardatos();} } Encuentre los errores de sintaxis Tipos de Datos JAVA posee 2 clases de tipos de datos: primitivos y referencias Los primitivos son tipos de datos incorporados en el lenguaje de JAVA. No son objetos, y están formados de tal forma que tienen el mismo significado independientemente de la plataforma. Para lograr esto cuando se declaran JAVA les otorga un tamaño fijo y les asigna un valor por defecto. Las referencias son objetos. Estos tipos de datos están presentes en la bibliotecas de JAVA o pueden ser creados por los programadores 21 22 Usar primitivo: Declaración y asignación Tipos Primitivos Tipo_dato nombre_variable [= valor inicial] int cantidad; // se declaró, su valor por defecto es 0 cantidad = 80 + plus; // se asignó el resultado de una operación int cantidad = 8; // declaración y asignación Int ocupa 4 bytes de memoria en todos los casos 23 24 6
Tipos Primitivos Usar Referencia: Declaración, creación y asignación JAVA trata a los valores numéricos sin coma como enteros (int), si desea setear el valor de otro tipo puede usar los literales. Ej: L (long) JAVA trata a los valores numéricos con coma como doble (double), si desea setear el valor de otro tipo puede usar los literales. Ej: F (float). En Java no hay punteros (como los de C). En Java hay referencias a objetos. En Java (como en C) hay memoria estática y memoria dinámica. En Java, absolutamente todos los objetos se crean en la memoria dinámica. Por ejemplo Clase c = new Clase(); En realidad estás haciendo 2 cosas a la vez: Clase c; c = new Clase(); 25 26 Usar Referencia: Declaración, creación y asignación Usar Referencia: Declaración, creación y asignación Clase c; c = new Clase(); Con la primera línea, declaras una *referencia* llamada c que es de tipo Clase (la variable se ha creado en la memoria estática) Como no está inicializada, se dice que esa referencia vale null (no se ha creado el objeto en la memoria dinámica). Con la segunda línea, creas una instancia de tipo Clase y se la asignas a la referencia c (El objeto ha sido creado en memoria dinámica y su posición de memoria lo posee la refencia c) Clase c; c = new Clase(); La referencia c está ubicada en memoria estática (la 'pila de ejecución del método en cuestión). La instancia creada está ubicada en memoria dinámica. 27 28 7
Usar Referencia: Declaración, creación y asignación Movie movie1; movie1 = new Movie( Matrix ); Dif. entre primitivos y referencias Los primitivos reservan un espacio de memoria cuando se declaran. Las referencias no ocupan espacio al declararlas Los primitivos poseen valores por defecto. Las referencias no poseen valores por defecto. Su referencia inicial es null Movie movie2 = new Movie( Spiderman ); Referencias 100-------- 200------------------------------ Objetos 29 30 Dif. entre primitivos y referencias Los primitivos reservan un espacio de memoria cuando se declaran. Las referencias no ocupan espacio al declararlas Los primitivos poseen valores por defecto. Las referencias no poseen valores por defecto. Su referencia inicial es null Control del Flujo de Programa 31 32 8
Control del Flujo de Selección Control del Flujo de Selección 33 34 Control del Flujo de Iteración Control del Flujo de Iteración 35 36 9
Control del Flujo de Iteración Control del Flujo de Transferencia 37 38 package cursos.java.clase3.domain; // sección paquetes public class MiClase { //declaracion de atributos private static String mensaje= mi nombre es ; public String nombre = new String( Juan ); Definición de una Clase: Ej. de Alcance Deben cumplir las reglas de nomenclatura descriptas para variables y constantes La declaración de un atributo se realiza anteponiendo el tipo de dato al nombre del atributo Campo de Variables //declaracion de variables locales String marcelo = Ariel ; nombre = marcelo; if (true) { //declaracion de variables de bloque String apellido = Vega ; System.out.println(mensaje+nombre+apellido);}} } El Alcance de las variables se denomina CAMPO 39 40 10
Operadores Un operador lleva a cabo una función en uno, dos, o tres operandos Un operador que requiere un único operando se denomina operador unario Ej: ++ Un operador que requiere dos operandos es un operador binario. Ej: = Un operador ternario es un operador que requiere de tres operandos. Java tiene un operador ternario,?: Operadores Los operadores unarios soportan una notación de prefijo y postfijo. La notación de prefijo significa que el operador aparece antes de su operando [operator op ] La notación de postfijo significa que el operador aparece después de su operando [op operator] Todos los operadores binarios utilizan notación de infijo, lo cual significa que el operador aparece entre sus operandos [op1 operator op2] El operador ternario también es un infijo; cada componente del operador aparece entre operandos [op1? op2 : op3 ] 41 42 Operadores Aritméticos Operadores Aritméticos Las conversiones explicitas a más cortos pueden perder datos e impide que se realicen comprobaciones útiles. 43 44 11
Operadores Aritméticos Operadores Relacionales Un operador relacional compara dos valores y determina la relación entre ellos 45 46 Operadores Lógicos Un operador lógico permite combinar el resultado de expresiones booleanas y evaluar dicha combinación Operador Ternario Con Cortocircuito Oracle 10g Java Programming - Ariel Alejandro Vega 47 Oracle 10g Java Programming - Ariel Alejandro Vega 48 12
Operadores de Asignación Simple y Asignación Compuesta 49 50 PREGUNTAS? GRACIAS Tomemos un 13