Resumen PDF

Title Resumen
Author Antoine Bequerol
Course Programación Orientada a Objetos
Institution UNED
Pages 30
File Size 1.9 MB
File Type PDF
Total Downloads 472
Total Views 1,001

Summary

06/04/Cristina Otero Rodríguez1. Tipos primitivosEnteros: Byte: 1 byte. Desde -128 hasta 127.  Short: 2 bytes. Desde -32,768 hasta 32,767.  Int: 4 bytes de almacenamiento.  Long: 8 bytes. Hay que añadir el sufijo “L”.Decimales: Float: 4 bytes de almacenamiento. Aproximadamente de 6 a 7 cifras d...


Description

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez

1.

Tipos primitivos

Enteros:    

Byte: 1 byte. Desde -128 hasta 127. Short: 2 bytes. Desde -32,768 hasta 32,767. Int: 4 bytes de almacenamiento. Long: 8 bytes. Hay que añadir el sufijo “L”.

Decimales:  

Float: 4 bytes de almacenamiento. Aproximadamente de 6 a 7 cifras decimales. Hay que añadir el sufijo “F”. Double: 8 bytes. Aproximadamente 15 cifras decimales.

Char: para representar caracteres. Boolean: true/false. Enumerados: se definen mediante la palabra reservada enum.

Figura 1.1 Definición de un enumerado

2.

Variables y constantes en Java

Variables:   

Hay que especificar el tipo de dato que almacenará en su interior y el nombre de la variable. No se pueden utilizar variables que no se hayan iniciado. Las variables se pueden declarar e iniciar en la misma línea.

Constantes:   

Una constante no puede cambiar de valor durante la ejecución del programa. Se crean utilizando la palabra clave final, especificando el tipo de dato y su valor. Hay constantes de clase. Son aquellas que vienen con una clase. Por ejemplo el número pi en la clase Math.

Instrucciones de asignación: se emplean como medio de almacenar un valor en una variable. Funcionan tomando el valor que aparece en el lado derecho del operador y copiando dicho valor en la variable especificada en el lado izquierdo:

Figura 2.1 Ejemplo de asignación

Página 1 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez El lado derecho de la asignación se denomina expresión. El tipo de expresión del lado derecho debe corresponderse con el tipo de la variable a la que se asigna. Expresión: son elementos que calculan un valor. Bloque: conjunto de declaraciones e instrucciones situado entre una pareja de llaves. Un bloque también se denomina ámbito. BlueJ representa los distintos ámbitos con colores diferentes, lo que se denomina representación visual del ámbito. Sobrecarga de nombres: situación en la que se utiliza el mismo nombre para dos entidades diferentes.

3.

Operadores

Aritméticos + suma - resta * multiplicación / división ++ incrementa el valor de la variable en una unidad -- reduce el valor de la variable en una unidad +=n incrementa el valor de la variable en n unidades -=n reduce el valor de la variable en n unidades % (módulo) calcula el resto de una división entera

4.

Lógicos, relacionales y booleanos > mayor que < menor que mayor o menor que != distinto que == igual que && y || o ? seleccionar uno de dos valores alternativos en una condición

Clases en Java

Clase: se utilizan para describir, de manera abstracta, todos los objetos de un tipo concreto. En cada clase se definen los campos y métodos. Por tanto, todos los objetos de una misma clase compartirán los métodos y campos. Las clases definen tipos. Cada clase tiene un código fuente asociado en el que se definen los detalles de la clase: los campos y métodos que tiene una clase y lo que sucede cuando se invoca cada método. En Java hay tres tipos de clases: 1. Propias: elaboradas por el programador. 2. Predefinidas: están ya construidas dentro del lenguaje. Por ejemplo:  Math: colección de métodos para realizar cálculos matemáticos.  String: sirve para manejar cadenas de texto.  Array: permite manipular colecciones.  Thread: permite la programación concurrente. 3. Terceras fuentes: son librerías hechas por programadores individuales y puestas a disposición de otras personas. En API Java se incluyen todas las clases predefinidas. Clases genéricas: no tienen un tipo concreto por lo que es necesario parametrizarlas con un segundo tipo. Clases envolventes (wrappers): los tipos sencillos (int, boolean, char) no pueden añadirse en una colección. Cuando se necesita crear una lista, se hace a través de una clase envolvente. Página 2 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez Autoboxing: se realiza automáticamente cuando se utiliza un valor de tipo primitivo en un contexto que necesita una clase envolvente. La operación inversa es el unboxing. Se aplica siempre que se transfiera un valor de tipo primitivo como un parámetro a un método que espera un tipo envolvente, y cuando se almacena un valor de tipo primitivo en una variable de tipo envolvente. El unboxing se aplica cuando se pasa un valor de tipo envolvente como parámetro a un método que espera un valor de tipo primitivo, y cuando se almacena en una variable de tipo primitivo. Interfaz de una clase: documentación que incluye:      

Nombre de la clase. Descripción general del propósito de la clase. Lista de constructores y métodos. Parámetros y tipos de retorno para cada constructor y método. Descripción del propósito de cada constructor y método. No incluye el código fuente que implementa la clase.

La interfaz de una clase es el conjunto de detalles que necesita ver cualquier otro programador que la use. Proporciona información acerca de cómo utilizar la clase. Incluye las signaturas de los constructores y los métodos, además de una serie de comentarios. Es la parte pública de una clase. Su propósito es definir lo que hace la clase. Un comentario dentro del código fuente es añadido al javadoc cuando comienza por “ /** ”:

Figura 4.1 Ejemplo de comentario que se añadirá a la documentación de la clase

Implementación: código fuente completo que define cómo funciona una clase. Los cuerpos de los métodos y la mayoría de los campos son parte de la implementación. También se denomina parte privada de una clase. El usuario de una clase no necesita conocer su implementación. Ocultamiento de la información: principio que establece que los detalles internos de la implementación de una clase deben estar ocultos a los ojos de otras clases. Garantiza una mejor modularización de las aplicaciones. Colección (abstracción colección): concepto de agrupar cosas para referirse a ellas y manejarlas de manera conjunta. Matrices: colección de tamaño fijo. Las ventajas de estas clases frente a las clases de colección de tamaño flexible son:  

El acceso a los elementos almacenados en una matriz suele ser más eficiente que el acceso a los elementos de una colección de tamaño flexible comparable. Las matrices pueden almacenar tanto objetos como valores de tipo primitivo.

Se declaran siguiendo este patrón:

Figura 4.2 Declaración de una matriz

Página 3 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez La forma general de construcción de un objeto matriz es: ,

-

Figura 4.3 Construcción de un objeto matriz

Si la matriz es de objetos, se inicializa con valor null. Si es una matriz de números, se inicializa con valor 0.

4.1.

Propiedades de las clases

Está formada por una parte externa (cabecera y comentario) y una parte interna (campos, constructores y métodos). Cabecera: el propósito principal es proporcionar a la clase un nombre. Por convenio, los nombres de las clases comienzan siempre por letra mayúscula. Sobre la cabecera de la clase suele incluirse un comentario en el que se describe brevemente la clase. Campos: almacenan datos de manera persistente dentro de un objeto. También se denominan variables de instancia. Se pueden consultar desde el inspector. La definición de los campos se realiza de la siguiente forma: (

)

(

)

Figura 4.4 Ejemplo de campos dentro de una clase

Una de las funciones más importantes de un campo es recordar la información externa pasada al objeto, con el fin de que esa información esté disponible para el objeto a lo largo de toda su vida. Los campos proporcionan, por tanto, un lugar donde almacenar datos de larga duración. Además, son accesibles para todos los métodos del objeto. Las clases también pueden tener campos denominados variables de clase o variables estáticas. De cada variable de clase existirá en todo momento exactamente una copia, con independencia del número de instancias que se creen de dicha clase. El ámbito de un campo es todo el conjunto de la definición de la clase: puede accederse a él desde cualquier punto de la misma. El tiempo de vida de un campo coincide con el del objeto al que pertenece. Es recomendable que los nombres de los campos proporcionen información acerca de la información que se almacena en ellos. Si un campo se define como private no se podrá acceder a él desde ningún punto situado fuera de la clase en la que está definido. Los campos deben declararse como privados.

Página 4 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez Un campo es inmutable cuando su valor no puede modificarse después de haberlo inicializado. Constructores: garantizan que un objeto se configure apropiadamente en el momento de crearlo por primera vez. Métodos: implementan el comportamiento de un objeto; proporcionan su funcionalidad. Es recomendable definir campos, constructores y métodos en ese orden.

Cabecera

Campos

Constructor

Métodos

Figura 4.5 Estructura de una clase

Página 5 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez

4.2.

Diagrama de clases

Diagrama de clases: muestra las clases de una aplicación y las relaciones entre ellas. Proporciona información acerca del código fuente y presenta una vista estática de un programa.

Figura 4.6 Diagrama de clases

El diagrama de clases cambia cuando se modifica el código fuente bien sea modificando las relaciones entre clases o creado o borrando clases.

4.3.

Clases predefinidas

Las clases predefinidas están organizadas por paquetes (carpetas): 1. Java a. b. c. d. 2. Javax a. b.

java.awt java.util java.io java.nio javax.activity javax.annotation

Los paquetes permiten organizar las clases, evitar conflictos de nombres (no puede haber dos clases con el mismo nombre en el mismo paquete) y controlar la visibilidad de las clases. El paquete java.lang es un paquete por defecto. Si se quiere utilizar otro paquete, hay que añadir la palabra clave import, el nombre del paquete y “*”.

Figura 4.7 Importación de un paquete

También se puede importar solamente una clase del paquete: Página 6 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez

Figura 4.8 Importación de una clase

Las instrucciones de importación deben colocarse siempre antes de las instrucciones de clases en un archivo. La máquina virtual de Java (JRE) se actualiza incluyendo nuevas clases predefinidas. System:   

System.out.print(): imprime por pantalla. System.out.println(): imprime por pantalla y salta de línea. System.out.printf(): imprime por pantalla y da formato.

Math:      

Math.sqrt(n): raíz cuadrada de un número. Math.pow(base, exponente): potencia de un número. Math.sin(ángulo), Math.cos(ángulo), Math.tan(ángulo): seno, coseno y tangente de un ángulo. Math.atan(tangente): obtener el ángulo a partir de la tangente. Math.round(decimal): redondear un número. Math.PI: constante de clase con el número π.

Refundición (cast): consiste en convertir un tipo de dato en otro.

Figura 4.9 Ejemplo de refundición

String:     

String no es un tipo primitivo, es una clase predefinida. String mi_nombre=”Juan”; donde mi_nombre es un objeto (instancia o ejemplar) de la clase String. length(): devuelve la longitud de una cadena de caracteres. charAt(n): devuelve la posición de un carácter dentro de una cadena. Las posiciones empiezan a contar desde cero. substring(x,y): devuelve una subcadena dentro de la cadena, siendo x el carácter a partir del cual se extrae e y el número de caracteres que se quieren extraer. Página 7 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez      

equals(cadena): devuelve true si dos cadenas que se comparan son iguales y false si no lo son. Distingue mayúsculas y minúsculas. equalsIgnoreCase(cadena): devuelve true si dos cadenas que se comparan son iguales y false si no lo son. No distingue mayúsculas y minúsculas. split(“expresion“): puede dividir una cadena en una serie de subcadenas separadas y devolverlas en una matriz de cadenas. trim(): elimina los espacios al principio y final de una cadena. toLowerCase(): pasa la cadena a minúsculas. toUpperCase(): pasa la cadena a mayúsculas.

La entrada y salida de datos en Java debería hacerse con una GUI (interfaz gráfica de usuario), pero hay clases que permiten obtener y devolver datos. Scanner:   

nextLine(): permite introducir texto. nextInt(): entrada de enteros. nextDouble(): permite introducir números decimales.

Figura 4.10 Ejemplo de utilización de la clase Scanner

JOptionPane: 

Se puede construir una ventana en la que se solicita la información al usuario.

Figura 4.11 Ejemplo de utilización de la clase JOptionPane



showInputDialog(cadena): se utiliza este método estático. Este método devuelve un String.

Integer:  

Clase envolvente del tipo sencillo int. parseInt(string): se utiliza para transformar un String en int. Es un método estático por lo que hay que indicar la clase antes del método (Integer.parseInt()). Página 8 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez Double: 

parseDouble(string): se utiliza para transformar un String en double.

NumberFormat: 

Esta clase se utiliza para dar formato a los números (más o menos decimales, etc.).

ArrayList:  

Está incluida en el paquete java.util. Un objeto de esta clase se define como:



Las instancias se pueden crear utilizando la notación diamante: () ()

       

add(objeto): añade un objeto a la colección. size(): proporciona el número de elementos almacenados en la lista. get(índice): devuelve el elemento almacenado en la posición índice. remove(índice): borra el elemento almacenado en la posición índice y reorganiza la lista. Esta clase es capaz de incrementar su capacidad interna según sea necesario (cada vez que se añade un nuevo elemento). Mantiene su propio contador privado, el número de elementos que almacena en cada instante. Mantiene el orden de los elementos que se inserten en la lista. Cada vez que se añade un nuevo elemento, este se almacena al final de la lista. Los elementos almacenados tienen una numeración o posicionamiento implícito que comienza en 0. La posición de un objeto dentro de una colección se denomina índice.

Iterator:   

Está incluida en el paquete java.util. La clase ArrayList devuelve un objeto de tipo Iterator al invocar a su método iterator. La forma en que se utiliza un Iterator es la siguiente

Figura 4.12 Ejemplo de utilización de un Iterator

  

hasNext(): comprueba si hay más elementos. next(): obtiene el siguiente elemento. remove(): permite eliminar elementos cuando se está buscando dentro de una colección.

Página 9 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez Random:  

 

Está incluida en el paquete java.util. Se utiliza para generar números aleatorios (realmente son números pseudoaleatorios). Para crear un número aleatorio hay que: 1. Crear una instancia de la clase Random. 2. Hacer una llamada a un método de dicha instancia para obtener el número. nextInt(): devuelve un número aleatorio de tipo entero. nextInt(bound): devuelve un número aleatorio de tipo entero mayor que 0 y menor que el límite introducido (bound).

HashMap:



Está incluida en el paquete java.util. Un mapa es una colección de parejas clave/valor de objetos. Se utilizan para realizar búsquedas en una sola dirección, en las que se conoce la clave de búsqueda y se necesita conocer el valor asociado a esa clave. Un objeto de esta clase se define como:



Las instancias se pueden crear utilizando la notación diamante:

 

() ()    

put(clave, valor): inserta una entrada en el mapa. get(object): extrae el valor correspondiente a una clave especificada. size(): proporciona el número de elementos almacenados en el mapa. getOrDefault(clave, valor): si la clave está en uso en el mapa, el método devuelve su valor asociado. Si la clave no está devuelve el valor por omisión.

HashSet:



Está incluida en el paquete java.util. Un conjunto es una colección que almacena cada elemento individual como máximo una vez. No mantiene ningún orden específico. Un objeto de esta clase se define como:



Las instancias se pueden crear utilizando la notación diamante:

 

() ()   

add(object): inserta una entrada en el conjunto. get(object): extrae el valor correspondiente a una clave especificada. size(): proporciona el número de elementos almacenados en el mapa.

Página 10 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez Set:  

Está incluida en el paquete java.util. Un objeto de esta clase se define como:



Las instancias se pueden crear utilizando la notación diamante: () ()

 

add(object): inserta una entrada en el conjunto. size(): proporciona el número de elementos almacenados en el mapa.

Object:  

   

Es una clase de la librería estándar Java que sirve como superclase para todos los objetos. Disponer de una superclase común para todos los objetos persigue dos objetivos:  Declarar variables polimórficas de tipo Object capaces de almacenar cualquier tipo de objeto.  Puede definir algunos métodos que luego estén disponibles automáticamente para todos los objetos existentes. equals(): comprueba si existe una igualdad de referencias. Si se quiere evaluar la igualdad de contenidos entre dos objetos de una determinada clase, hay que sustituir este método dentro de dicha clase. hashCode(): devuelve un código hash para el objeto. toString(): crea una representación de un objeto en forma de cadena de caracteres. getClass(): devuelve la instancia de Class asociada con un objeto.

Objects:  

Está incluida en el paquete java.util. requireNonNull(objeto, mensaje): genera un NullPointerException, con la cadena asociada, si el valor del objeto es null. En caso contrario no hará nada.

Class:  

Es una clase genérica: tiene un parámetro tipo que especifica el subtipo de clase concreto al que hace referencia. Los objetos de esta son útiles si se quiere saber si el tipo de dos objetos coincide.

FileReader: 

Está incluida en el paquete java.io.

BuferedReader: 

Está incluida en el paquete java.io.

Path:   

Está incluida en el paquete java.nio. Es una interfaz. La lectura de un archivo de texto se realiza de la siguiente forma Página 11 de 30

Programación Orientada a Objetos 06/04/2019 Cristina Otero Rodríguez

Figura 4.13 Lectura de un archivo de texto

FileWriter:  

Está incluida en el paquete java.io. Permite escribir un archivo de texto, siguiendo este patrón:

Figura 4.14 Escritura de un archivo de texto

File:  

Está incluida en el paquete java.io. Permite a un programa consultar los detalles re...


Similar Free PDFs