Diferencia entre revisiones de «Usuario:ManuelRomero/sintaxis»
De WikiEducator
(→Clase java.util.Scanner) |
(→Instruccion de leer y escrivir o visualizar) |
||
| (45 revisiones intermedias por el mismo usuario no mostrado) | |||
| Línea 1: | Línea 1: | ||
{{TEP}} | {{TEP}} | ||
| − | {{:Usuario:ManuelRomero/CursoJavaUml/java/nav}} | + | {{:Usuario:ManuelRomero/CursoJavaUml/java/sintaxis/nav}} |
{{#widget:Slides}} | {{#widget:Slides}} | ||
| Línea 17: | Línea 17: | ||
</source> | </source> | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
===Elementos para definir una clase=== | ===Elementos para definir una clase=== | ||
| Línea 28: | Línea 29: | ||
*no se puede utilizar para otro propósito como identificadores. | *no se puede utilizar para otro propósito como identificadores. | ||
</div> | </div> | ||
| − | |||
| + | <div class="slide"> | ||
===Palabras reservadas=== | ===Palabras reservadas=== | ||
{| class="wikitable" | {| class="wikitable" | ||
| Línea 54: | Línea 55: | ||
|} | |} | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===Palabras reservadas=== | + | ====Palabras reservadas==== |
*Las palabras '''const''' y '''goto''' no se emplean actualemnte en java, pero son palabras reservadas | *Las palabras '''const''' y '''goto''' no se emplean actualemnte en java, pero son palabras reservadas | ||
*Existen otras palabras reservadas correspondientes a métodos reservados a la clase Object que ya veremos | *Existen otras palabras reservadas correspondientes a métodos reservados a la clase Object que ya veremos | ||
| Línea 63: | Línea 65: | ||
*Iremos agrupando las palabras en grupos (Variables, modificadores de acceso, estructuras de controls, ...) | *Iremos agrupando las palabras en grupos (Variables, modificadores de acceso, estructuras de controls, ...) | ||
</div> | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ===Programa Java: clases y método main=== | ||
| + | *Un programa en java normalmente se organiza en proyecto | ||
| + | *Es muy común tener muchos ficheros '''.java''' | ||
| + | *Sólo uno de ellos puede tener un método especial llamado '''main''' | ||
| + | *La ejecución del programa empezará en la primera instrucción que tenga un método '''main''' | ||
| + | *solo puede haber uno en un proyecto | ||
| + | *Se puede crear una clase sola para el main o incluir el método en alguna existente (ya lo veremos) | ||
| + | <source lang=java> | ||
| + | public class ClasePrincipal{ | ||
| + | public static void main(String[]args){ | ||
| + | instruccion1;//Primera instrucción que se ejecutará | ||
| + | ... | ||
| + | instruccionn; | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
===Identificadores=== | ===Identificadores=== | ||
| Línea 85: | Línea 107: | ||
** Separar con caracter de subrayado. ''Esto siempre en constantes ya que van en mayúscula'' | ** Separar con caracter de subrayado. ''Esto siempre en constantes ya que van en mayúscula'' | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===Identificadores=== | + | ====Identificadores==== |
*El identificado debe usar los siguientes caracteres | *El identificado debe usar los siguientes caracteres | ||
[$|a..zA..Z|_][$|a..zA..Z|_|0..9]* | [$|a..zA..Z|_][$|a..zA..Z|_|0..9]* | ||
| Línea 93: | Línea 116: | ||
la ñ también es un caracter permitido para un identificador pero se recomienda no usarlo | la ñ también es un caracter permitido para un identificador pero se recomienda no usarlo | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
===Comentarios en el programa=== | ===Comentarios en el programa=== | ||
| Línea 106: | Línea 130: | ||
*/ | */ | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===Comentarios de documentación=== | + | ====Comentarios de documentación==== |
#comentarios de docuemntacion | #comentarios de docuemntacion | ||
Este tercer tipo de comentario es más especial | Este tercer tipo de comentario es más especial | ||
| Línea 122: | Línea 147: | ||
*Los comentario deben de ir inmediatamente antes del elemento que comentas | *Los comentario deben de ir inmediatamente antes del elemento que comentas | ||
*Se puede utilizar tags @author @version @param @return | *Se puede utilizar tags @author @version @param @return | ||
| + | *javadoc.exe -author -version para que aparezcan al principio de la clase | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===Comentarios de | + | ====Comentarios de documentación==== |
<br/> | <br/> | ||
{{Actividad| | {{Actividad| | ||
| − | Haz un porgrama y crea la | + | Haz un porgrama y crea la documentación: |
*Nombre de la clase | *Nombre de la clase | ||
*Información de la versión | *Información de la versión | ||
| Línea 137: | Línea 164: | ||
}} | }} | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | + | ||
| − | + | ===Instruccion de ''leer'' y ''escribir'' o ''visualizar''=== | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | ===Instruccion de ''leer'' y '' | + | |
<br/> | <br/> | ||
*En java no existen estas instrucciones | *En java no existen estas instrucciones | ||
| Línea 164: | Línea 173: | ||
*En concreto la clase System | *En concreto la clase System | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | ===La clase System=== | + | ====La clase System==== |
*Es una clase final y todos sus contenidos son privados | *Es una clase final y todos sus contenidos son privados | ||
*No se puede instanciar un objeto de esa clase | *No se puede instanciar un objeto de esa clase | ||
| Línea 176: | Línea 186: | ||
static InputStream in; | static InputStream in; | ||
static PrintStream out; | static PrintStream out; | ||
| − | ===Métodos de System.out=== | + | </div> |
| + | |||
| + | <div class="slide"> | ||
| + | ====Métodos de System.out==== | ||
*Son los métodos de la clase '''PrintStream''' | *Son los métodos de la clase '''PrintStream''' | ||
http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html | http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html | ||
| Línea 183: | Línea 196: | ||
print ("Cadena ...") //Lo mismo pero no añade un salto de línea | print ("Cadena ...") //Lo mismo pero no añade un salto de línea | ||
printf("Cadena...",argumentos) //Para los amantes del c %d,%c,%s,.... | printf("Cadena...",argumentos) //Para los amantes del c %d,%c,%s,.... | ||
| − | ===Métods de System.in Vs Scanner=== | + | </div> |
| + | |||
| + | <div class="slide"> | ||
| + | ====Métods de System.in Vs Scanner==== | ||
*A partir de Java 5 apareció la clase Scanner | *A partir de Java 5 apareció la clase Scanner | ||
*Es mas sencilla de utilizar que System.in | *Es mas sencilla de utilizar que System.in | ||
| Línea 193: | Línea 209: | ||
Scanner leer = new Scanner(System.in); | Scanner leer = new Scanner(System.in); | ||
*Tiene muchos usos, por ejemplo leer la siguiente línea del teclado | *Tiene muchos usos, por ejemplo leer la siguiente línea del teclado | ||
| − | leer. | + | leer.nextLine(); |
*Para la sintaxis de java aprenderemos su uso | *Para la sintaxis de java aprenderemos su uso | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| − | ===Clase java.util.Scanner=== | + | ====Clase java.util.Scanner==== |
<source lang=java> | <source lang=java> | ||
import java.util.Scanner;/* Debemos cargar la clase | import java.util.Scanner;/* Debemos cargar la clase | ||
| Línea 218: | Línea 237: | ||
<div class="slide"> | <div class="slide"> | ||
| − | === | + | ===Instrucion declarativa=== |
| + | *La instruccion de declaración de variables o atributos es | ||
| + | tipo_variable [[#Identificadores_2|identificador]] [= valor_inicial] | ||
| + | #[[#Identificadores_2|identificador]] es el nombre de la variable | ||
| + | #'''valor_inicial''' opcionalmente se puede inicializar la variable en la propia declaración | ||
| + | int edad=18, sueldo=1000; | ||
| + | //defino dos variables de tipo entero y las inicializo con valores | ||
| + | *En general se puede definir una lista de [[#Identificadores_2|identificadores]] del mimo tipo | ||
| + | *cada uno de ellos se puede inicializar | ||
| + | int a,b,c=1,d=100,e,f; | ||
| + | defino seis [[#Identificadores_2|identificadores]] ''a,b,d,c,d,e'' e inicializo dos de ellos ''c=1 y d = 100'' | ||
| + | la expresión regular para las instruccion declarativa sería | ||
| + | [tipo_dato lista_identificadores] | ||
| + | donde lista_identificadores un conjunto de [[#Identificadores_2|identificadores]] separados por comas opcionalmente inicializados. | ||
| + | *En '''java''' las variables siempre tienen un valor inicial | ||
| + | *Existen en '''java''' dos tipos | ||
| + | #tipos '''primitivos'''(''byte,short,int,long,double,float,char,boolean,void'') | ||
| + | #tipos de '''referencia'''(los que no son primitivos ''vectores, clases e interfaces'') | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | === | + | ====Clasificacion de tipos==== |
| + | [[Archivo:tipos.png|800px]] | ||
</div> | </div> | ||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | === | + | ====TIPOS PRIMITIVOS==== |
| + | La siguiente tabla muestra una relación de tipos simples | ||
| + | <BR/> | ||
| + | [[Archivo:tiposSimples.png|600px]] | ||
</div> | </div> | ||
| + | |||
| + | |||
| + | |||
<div class="slide"> | <div class="slide"> | ||
| − | === | + | ====TIPOS PRIMITIVOS==== |
| + | <br/> | ||
| + | {{Pregunta|Tipos primitivos en un lenguajes orientado a objetos}} | ||
| + | ;En java casi todo son objetos | ||
| + | :Excepciones tipos primitivos para representar valores sin mas | ||
| + | :''''todos''' con el '''mismo''' tamaño y comportamiento | ||
| + | :para cualquier hardware | ||
| + | :para cualquier S.O | ||
| + | {{Nota|si has programado con C sabrás lo bueno que es esto :)}} | ||
| + | *Con los datos primitivos se pueden construyen los array | ||
| + | *tambien pueden aparecer en clases e interfaces | ||
| + | :todo tipo primitivo tiene asociado una clase | ||
| + | :se conoce como 'Wrapper' | ||
| + | :Todo tipo primitivo se puede manejar como objeto | ||
</div> | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ====TIPOS DE REFERENCIA==== | ||
| + | *Son todos objetos | ||
| + | *Para utilizar en Java los objetos debemos hacer dos acciones | ||
| + | *1 definir el objeto | ||
| + | Scanner leer; | ||
| + | *2 instanciarlo o cargarlo en memoria | ||
| + | leer = new Scanner(); | ||
| + | *Se puede hacer en la misma línea | ||
| + | Scanner leer = new Scanner(); | ||
| + | #El operador '''new''' palabra reservada del lenguaje instancia un objeto de una clase | ||
| + | #instanciar es cargalo en memoria | ||
| + | #la variable contendra la direccion de memoria del objeto | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
| + | ====TIPOS DE REFERENCIA==== | ||
| + | *Son todos objetos | ||
| + | *Para utilizar en Java los objetos debemos hacer dos acciones | ||
| + | *1 definir el objeto | ||
| + | Scanner leer; | ||
| + | *2 instanciarlo o cargarlo en memoria | ||
| + | leer = new Scanner(); | ||
| + | *Se puede hacer en la misma línea | ||
| + | Scanner leer = new Scanner(); | ||
| + | #El operador '''new''' palabra reservada del lenguaje instancia un objeto de una clase | ||
| + | #instanciar es cargalo en memoria | ||
| + | #la variable contendrá la dirección de memoria del objeto(por eso es una referencia) | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | |||
| + | ====TIPOS DE REFERENICA '''ARRAY'''==== | ||
| + | #arrays: para definir una variable de este tipo '''[]''' | ||
| + | int notas[]; | ||
| + | notas = new int[100] | ||
| + | *Un '''array''' es una coleccion de elementos del mismo tipo | ||
| + | *Se caracteriza por el tipo base que son el tipo de los elementos que contiene | ||
| + | *También por el número de elementos. | ||
| + | *El número es fijo y no puede cambiar una vez inicializado | ||
| + | *Si necesitamos dinamismo mejor usar la clase '''java.util.Vector''' | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ====TIPOS DE REFERENICA '''CLASES E INTERFACES'''==== | ||
| + | #Clases e interfaces | ||
| + | Se definen con la estructura vista anteriormente | ||
| + | public class NombreClase{ | ||
| + | } | ||
| + | public interface NombreInterfaz{ | ||
| + | } | ||
| + | Para crear elementos de este tipo | ||
| + | NombreClase objeto1 = nes NombreClase(); | ||
| + | NombreInterfaz objetoInterfaz = new NombreInterfaz() | ||
| + | # | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | ====Variables y objetos==== | ||
| + | *Las variables valores de tipos primitivos | ||
| + | *Los objetos son elementos de tipos de referencia | ||
| + | ** Ambos son elementos que residen en memoria | ||
| + | ** Accedo en ellos a traves de su nombre | ||
| + | *Para ver la idea de que los identificadores son referencias a memoria observemos el siguiente código | ||
| + | </div> | ||
| + | <div class="slide"> | ||
| + | |||
| + | ===INSTRUCCION DE ASIGNACIÓN=== | ||
| + | El operador de asiganción es '''=''' | ||
| + | La sintaxis es | ||
| + | variable = expresion | ||
| + | El tipo de la variable y el de la expresión deben coincidir | ||
| + | |||
| + | ====Asignacion entre objetos==== | ||
| + | <source lang=java> | ||
| + | import java.util.Scanner; | ||
| + | public class Definicion { | ||
| + | public static void main(String []a){ | ||
| + | String nom; | ||
| + | Scanner l1,l2; | ||
| + | l1=new Scanner(System.in); | ||
| + | l2=l1; //En realidad son el mismo elemento ya que son la misma dirección de memoria | ||
| + | System.out.println("dame tu nombre que leeré con L2"); | ||
| + | nom = l2.next(); //introduzco Manuel Romero Miguel Perez | ||
| + | System.out.println("Leyendo de L2 " +nom);// Visualiza Manuel | ||
| + | System.out.println("dame tu nombre L1"); | ||
| + | nom=l1.next();//No espera ya que todavia tiene en el buffer Romero Miguel Perez | ||
| + | System.out.println("Leyendo de L1 " +nom); //Visualiza Romero | ||
| + | nom = l2.next(); | ||
| + | System.out.println("Resto de L2 " +nom);//Visualiza Miguel | ||
| + | nom = l1.next(); | ||
| + | System.out.println("Resto de L1 " +nom);//Visualiza Lopez | ||
| + | } | ||
| + | } | ||
| + | </source> | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ====Salida del código anterior==== | ||
| + | dame tu nombre que leeré con L2 | ||
| + | Manuel Romero Miguel Pérez | ||
| + | Leyendo de L2 Manuel | ||
| + | dame tu nombre L1 | ||
| + | Leyendo de L1 Romero | ||
| + | Resto de L2 Miguel | ||
| + | Resto de L1 Pérez | ||
| + | Probar a que l1 y l2 sean dos objetos diferentes | ||
| + | l1=new Scanner(System.in); | ||
| + | l2=new Scanner(System.in); | ||
| + | Y no hacemos la asignacion '''l2=l1''' | ||
| + | {{Pregunta|observamos la diferencia? | ||
| + | #ahora l1 y l2 son dos buffers diferente | ||
| + | #cada uno guarda historia de lo que almacea | ||
| + | }} | ||
| + | </div> | ||
| + | |||
| + | <div class="slide"> | ||
| + | ====la expresion==== | ||
| + | Un literal puede ser un valor de los siguientes tipos | ||
| + | numérico | ||
| + | boolean | ||
| + | false true | ||
| + | caracter | ||
| + | Literal entre comillas simples '' 'c' '' | ||
| + | Secuencia unicode '''\u064''' | ||
| + | Secuencia de escape \t | ||
===Qué puede haber dentro de una clase=== | ===Qué puede haber dentro de una clase=== | ||
| Línea 248: | Línea 433: | ||
*Los datos nos referiremos a ellos como atributos llamado así en terminología orientada a objetos | *Los datos nos referiremos a ellos como atributos llamado así en terminología orientada a objetos | ||
*A las funciones las identificaremos como métodos | *A las funciones las identificaremos como métodos | ||
| − | |||
| − | |||
| − | |||
| − | |||
</div> | </div> | ||
</div> | </div> | ||
Última revisión de 18:49 14 feb 2016
| Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
