Repaso de Java. [Tema 1] 1 / 31

Documentos relacionados
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Tema 2. El lenguaje JAVA

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Java para programadores

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Introducción a Java LSUB. 30 de enero de 2013 GSYC

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Tema 2. El lenguaje de programación Java (Parte 1)

Modulo 11. Clases y Objetos en Java

PROGRAMACION ORIENTADA A OBJETOS EN C++

Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Repaso de las características más importantes de la programación Java y su adaptación a Android

Objetivo de aprendizaje del tema

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Curso Introducción JAVA Pág.: 1

Elementos léxicos del lenguaje de programación Java

Elementos de un programa en C

LENGUAJE. Tema 2 Elementos de un programa

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Programación estructurada (Introducción a lenguaje C)

GUÍA DE ESTILO EN JAVA

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Forma Básica Clase Java

Principios de Computadoras II

Tema 3. Programación orientada a objetos en Java (Parte 1)

Introducción a la Programación Orientada a Objetos

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Principios de Computadoras II

TEMA 2. Agenda. Fundamentos de JAVA

Programación Orientada a Objetos (POO)

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Instrucciones de control

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

La sintaxis básica para definir una clase es la que a continuación se muestra:

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

La clase String

Programación Orientada a Objetos con Java

Definición de Memoria

5. Sentencias selectivas o condicionales

Ficha de Aprendizaje N 13

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

Guía - Taller # 2 (JAVA)

2.2 Nombres, Ligado y Ámbito

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

fundamentos de programación (unidad 4) programación estructurada en Java

2. Estructura de un programa en Java

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

4. Operadores Operador asignación

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Las plantillas permiten definir funciones genéricas.

Agenda..NET C# Laboratorio #1

Clase adicional 2. Estructuras básicas de control. Temas

Conversión entre Tipos

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Estatutos de Control C# Estatutos de Decisión (Selección)

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Programación en Visual Basic Ricardo Rodríguez García

Expresiones y sentencias

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

James Gosling, creador de Java

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Tipos primitivos y clases de interés

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Iniciación a Java. 1.Introducción a Java 2.Programación Orientada a Objetos 3.Fundamentos del lenguaje Java

Fundamentos del Lenguaje de Programación Java

Java para no Programadores

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Transcripción:

Repaso de Java [Tema 1] 1 / 31

Cuáles son las características de Java? 2 / 31

Características Estas son las principales características de Java Orientado a Objetos: Salvo los tipos primitivos (char, int, short...) el resto de elementos son objetos que heredan de Object. Semi Intreptetado: El código es compilado a bytecode, un lenguaje intermedio que es ejecutado sobre la máquina virtual. Fuertemente tipado: Las variables han de ser declaradas especificando un tipo y solo podrán asignarse valores de dicho tipo. Memoria Autogestionada: Al crear una variable de asigna automáticamente la memoria y cuando no hay ninguna referencia a esta es eliminada por el recolector de basura. Herencia Simple: Java solo permite heredar desde una clase. Para mantener el polimorfismo se hace uso de las interfaces. 3 / 31

Variables y Constantes Variables Las variables referencia a un valor que puede cambiar con el tiempo siempre y cuando mantenga el tipo. Han de ser declaradas e inicializadas para utilizarse. Constantes Puede ser variables cuyo valor no cambia una vez asignado o valores incluídos en el propio código y que forman parte del programa. 4 / 31

Ejemplos Variables Declaración de un variable int entero; Declaración y asignación int entero = 1; Declaración, asignación y cambio. int entero = 1; entero = 2; 5 / 31

Ejemplos Constantes Declaración usando la palabra reservada final final int ENTERO = 1; Si intentamos modificar una constante dará error. final int ENTERO = 1; ENTERO = 2; //Error 6 / 31

Tipos Primitivos Llamamos tipos primitivos a aquellos tipos que hacen referencia a una cantidad atómica de información: byte: enteros de -128 a 127. short: enteros de -32.768 a 32.767. int: números enteros de -2.147.483.648 a 2.147.483.647. long: enteros de 9.223.372.036.854.775.808 a +9.223.372.036.854.775.807. boolean: valores verdaderos y falsos (true, false). char: carácter Unicode con valor de 0 a 65.535 (casi todo UTF8). Se escriben con comillas simples: 'a'. float: números con decimales con poca precisión. Se pueden escribir como 1.0f. double: números decimales con alta precisión. 7 / 31

Objetos Llamamos objetos a ideas más complejas. Un objeto es una entidad que contiene información y funcionalidad propias. Un ejemplo de objeto podría ser un Avión, el cual contiene Alas y acciones como despegar. Avion avion1 = new Avion(); avion.despegar(); 8 / 31

Objetos y Clases En Java, cada archivo.java es una clase. Una clase es un molde o una idea. Siguiendo el ejemplo anterior, tendríamos la clase Avion y el objeto avion ALM-MAD. La clase Avion podría tener la siguiente forma: public class Avion { public Ala aladerecha; public Ala alaizquierda; public Turbina turbina; public String origen; public String destino: public void despegar() { 9 / 31

Objetos y Clases Podríamos crear un nuevo avión de la siguiente forma Avion avionalmmad = new Avion(); avion.origen = "Almería"; avion.destino = "Madrid"; Cómo se puede ver, tras crear el objeto le hemos asignado valores a sus propiedades origen y destino. Sin embargo, podemos usar métodos especiales denominados constructores para asignar los valores en el momento de inicialización del objeto 10 / 31

Objetos y Clases public class Avion { public Ala aladerecha; public Ala alaizquierda; public Turbina turbina; public String origen; public String destino: public Avion(String ori, String dest) { origen = ori; destino = dest; public void despegar() { Avion avionalmmad = new Avion("Almería", "Madrid"); 11 / 31

Métodos Los métodos permiten dotar de funcionalidades a las clases. Cada método tiene: Tipo de valor a devolver: Cada método puede devolver un único valor o ninguno como salida. En caso de devolver un valor ha de especificarse el tipo y asegurase que se devuelve. Parámetros: Los métodos pueden contener parámetros de entrada Operaciones a realizar: El método ha de contener una serie de operaciones a realizar antes de devolver el valor. Ejemplo public int suma(int enteroa, int enterob) { int resultado = enteroa + enterob; return resultado; 12 / 31

Paquetes e imports Cada clase Java deberá estar contenida dentro de un paquete del tipo: mi.nombre.de.paquete Y para ello hay que declalarlo en el archivo Java de la siguiente forma: package mi.nombre.de.paquete; Para que una clase pueda usar otra contenida en un paquete diferente, esta deberá importarlo. 13 / 31

Paquete e imports package mi.nombre.de.paquete; import paquete.de.otro.claseajena; import paquete.de.otro.otraclase; class MiClase {... 14 / 31

Visibilidad y modificadores Las clases pueden contener variables y métodos como vimos anteriormente. Todos ellos tienen visibilidad la cual indican quien pueden acceder a ellos. Pública public: El método o variable es visible para cualquier otra clase que pueda acceder al objeto. Privada private: El método o variable es visible sólo para el propio objeto o clase. Si cualquier otra clase intenta acceder a él habrá un error de compilación. Protegida protected: Sólo es visible para la propia clase u objeto y para aquellos que desciendan de él (lo veremos más adelante). De paquete - sin modificador: si no añadimos ningún modificador, dicha variable o método será accesible para clases que se encuentren en el mismo paquete que la que lo contiene. Así mismo, las propias clases pueden ser públicas o privadas. Finalmente, tenemos el modificar estático static el cual determina que una variable o método es común a todos los objetos de la misma clase. 15 / 31

Visibilidad y modificadores public class MiClase { // Creamos una constante accesible mediante MiClase.NOMBRE; public static final String NOMBRE = "MiClase"; // Se llama con MiClase.metodoEstatico(); public static void metodoestatico() {... // Se llamaría con miobjeto.metodoinstanciapublico() siempre que se esté en el mismo paquete int metodoinstanciapublico() { int result = metodoinstanciaprivado(); return result; // No podría llamarse desde fuera private int metodoinstanciaprivado() {... 16 / 31

Herencia Una clase puede heredar de otra. Esto es, que una clase puede tener información y funcionalidad común de una clase además de información y funcionalidad propia. Un ejemplo sería que Ave sería un Animal puesto que tiene comportamientos comunes con todos los animales. Además, Animal puede ser un Organismo. Cuando una clase hereda de otra, además de adquirir su información y funcionalidad, también adquirirá su tipos, pudiendo asignar a una variable de tipo Organismo tanto otro Organismo, como un Animal como un Ave. Para hacer uso de la herencia se utiliza la palabra extends. 17 / 31

Herencia public class Organismo {... public class Animal extends Organismo {... public class Ave extends Animal {... public void vuela() { Organismo aguila = new Ave("Águila"); 18 / 31

Herencia Sin embargo, si intentamos acceder a algún método o variable de una clase que no corresponde con la declarada, el compilador nos dará error. Para solucionarlo, deberemos castear la variable. Organismo aguila = new Ave("Águila"); aguila.vuela(); // Daría error, ya que un Organismo no tiene el comportamiento "volar" Ave aveaguila = (Ave) aguila; aveaguila.vuela(); // Funcionaría sin problema ((Ave) aguila).vuela(); // También funcionaría 19 / 31

Herencia Al heredar es posible modificar parcial o totalmente los métodos de la clase padre. Para ello, basta con escribir el método con el mismo nombre, retorno y parámetros y añadir la anotación @Override. Si deseamos llamar al método original podremos hacerlo con els sufijo super.. public class ClasePadre { public int operacion(int inta, int intb) { return inta + intb; 20 / 31

Herencia public class ClaseHija extends ClasePadre { @Override public int operacion(inta, intb) { // La clase hija, además de hacer la suma, le suma uno al resultado return super.operacion(inta, intb) + 1; public class OtraClaseHija extends ClasePadre { @Override public int operacion(inta, intb) { // En este caso, queremos que "operacion" multiplique, no sume return inta * intb; 21 / 31

Interfaces Una interfaz es un contrato, una serie de comportamientos que la clase que la implemente debe tener obligatoriamente. public interface MiInterfaz { public int operacion(string parametro) { De esta forma, cualquier clase que implemente la interfaz MiInterfaz tendrá que tener un método void operacion(string parametro). 22 / 31

Interfaces public class MiClase implements MiInterfaz { @Override public int operacion(string parametro) {... return valorentero; Puesto que MiClase implementa MiInterfaz podremos asignar elementos del tipo MiClase a variables MiInterfaz y usar las funcionalidades definidas en estas última: // De cara al código, operador es de tipo MiInterfaz MiInterfaz operador = new MiClase(); operador.operacion("uno"); 23 / 31

Clases Abstractas Por último, existen un tipo de clases llamadas abstractas, que están a medio camino entre una interfaz y una clase normal: public abstract class ClaseAbstracta { public abstract void operacion(); public void otraoperacion() {... public class MiClase extends ClaseAbstracta { @Override public void operacion() {... 24 / 31

Estructuras de Datos En Java, se pueden tener listas de 2 formas: Listas inmutables (arrays): Se debe conocer el tamaño que quieren que se tengan de antemano para inicializarlo con él. Se notan como Tipo[]: // Lista de 3 strings String[] arraystrings = new String[2]; arraystrings[0] = "Hola"; arraystrings[1] = "Mundo"; arraystring.length() // 2 arraystrings = new String[] {"Hola", "Mundo"; 25 / 31

Listas modificables: // El tipo de variable se escribe entre < > y DEBE SER UNA CLASE (no primitivos) // No tiene por qué saberse el tamaño final // Ponemos ArrayList porque "List" es una interfaz List<String> milista = new ArrayList<String>(); milista.add("hola"); milista.add("mundo"); milista.remove(1); milista.add(1, "Mundo"); milista.size(); // 2 Mapas o diccionarios: Toman parejas de ["clave", "valor"] para guardar los datos: Map<String, Integer> mapa = new HashMap<String, Integer>(); mapa.put("uno", 1); int valor = mapa.get("uno"); mapa.remove("uno"); 26 / 31

Genéricos Para guardar cualquier dato y recuperarlo sin tener que hacer casteo se usan tipos genéricos. public class <Tipo extends Object> MiClase<Tipo> { public Tipo operacion(int arg) { Tipo resultado =... return Tipo; Esto le dice a la clase que se usará el tipo genérico "Tipo", que será al menos de tipo Object. Si quisiéramos usar sólo strings: public class <T extends String> MiClase<T> { public T operacion(int arg) { T resultado =... return T; 27 / 31

Condicionales y bucles Para hacer comprobaciones usaremos las sentencias if/else: int valor;... if(valor > 5) { if(valor == 10) {... else {... También es posible usar else if para evitar que se "aniden" demasiado los ifs unos dentro de otros. Una forma más corta de hacer un if es con?: (valor > 5)? operacionsitrue : operacionsifalse; 28 / 31

Si tenemos valores de tipo entero (o Strings en Java 7 o mayor), podemos usar switch como si fuera un if: int valor;... switch(valor) { case 0: break; case 1: break; // Si el valor no coincide con ninguno de los superiores default:... Es necesario utilizar break entre un caso y otro ya que de lo contrario: switch(valor) { case 0:... case 1: break; Si valor fuera 0, se ejecutaría el caso 0 y luego el 1 hasta encontrar un break. 29 / 31

Bucles Para hacer bucles podemos usar while, que ejecutará el código que contenga mientras que se cumpla la condición establecida: int i = 0; while(i < 5) { i++; // i = i + 1; // Aquí i valdría 5 Este mismo código podría haberse escrito con un for. for tiene 3 partes: Declaración de la variable Declaración de la comprobación Declaración de la operación a realizar tras cada iteración: for(int i = 0; i < 5; i++) {... 30 / 31

Si tenemos una estructura que implemente la interfaz Iterable, además podremos hacer lo siguiente: List<String> lista;... for(string string : lista) { string.replaceall("a", "e"); Si quisiéramos salir rápidamente de un bucle podemos hacerlo con la instrucción break, como en los switch: for(int i = 0; i < 5; i++) { if(i == 2) { // Saldría en la 3º iteración break; 31 / 31