Diferencia entre revisiones de «Usuario:ManuelRomero/sintaxis»
De WikiEducator
(→Variables) |
(→Instruccion de leer y escrivir o visualizar) |
||
(41 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 56: | Línea 57: | ||
<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 64: | 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=== | ===Programa Java: clases y método main=== | ||
*Un programa en java normalmente se organiza en proyecto | *Un programa en java normalmente se organiza en proyecto | ||
Línea 104: | 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 112: | 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 125: | 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 143: | Línea 149: | ||
*javadoc.exe -author -version para que aparezcan al principio de la clase | *javadoc.exe -author -version para que aparezcan al principio de la clase | ||
</div> | </div> | ||
− | |||
− | ===Comentarios de | + | <div class="slide"> |
+ | ====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 158: | Línea 164: | ||
}} | }} | ||
</div> | </div> | ||
+ | |||
<div class="slide"> | <div class="slide"> | ||
− | ===Instruccion de ''leer'' y '' | + | |
+ | ===Instruccion de ''leer'' y ''escribir'' o ''visualizar''=== | ||
<br/> | <br/> | ||
*En java no existen estas instrucciones | *En java no existen estas instrucciones | ||
Línea 165: | 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 177: | 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 184: | 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 194: | 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 219: | Línea 237: | ||
<div class="slide"> | <div class="slide"> | ||
− | === | + | ===Instrucion declarativa=== |
− | *La instruccion de | + | *La instruccion de declaración de variables o atributos es |
− | tipo_variable [[ | + | tipo_variable [[#Identificadores_2|identificador]] [= valor_inicial] |
− | identificador es el nombre de la variable | + | #[[#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 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"> | <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> | ||
+ | <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 253: | 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 07:49 15 feb 2016
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |