









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documento de apuntes sobre el tema de Programación Orienta a Objetos en Java, en el que se abordan conceptos como lectura y escritura de datos por consola, arreglos y colecciones. Se explica el uso de la clase Scanner para la lectura de datos, el manejo de arreglos estáticos y dinámicos, y la utilización de colecciones como ArrayList, HashSet y Map.
Tipo: Apuntes
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Bitácora #
Lectura y escritura de datos por consola La lectura y escritura de datos por consola son conceptos super importantes y fundamentales cuando en un programa se busca interactuar con el usuario. Entrada de datos. Desde java 1.5 se tiene disponible la clase Scanner que facilita la tarea de lectura de datos desde el teclado. En primer lugar se debe importar dicha clase del paquete java.util, posteriormente se la instancia pasándole el System.in y a partir de ahí se tienen a disposición muchos métodos que permiten la entrada de distintos tipos de datos. Imagen 1. Importación de la clase Scanner del paquete java.util. Autoría propia. Al momento de realizar la lectura de datos con la clase Scanner, se debe realizar de la siguiente manera: Scanner objetoInstanciado = new Scanner ¿ tipoDato nombreVariable = objetoInstanciado .metodoUtilizar ; Por ejemplo: Scanner scanner = new Scanner ¿ ∫ numero = scanner^.^ nextInt^ ()^ ;
Imagen 3. Salida de datos. Autoría propia. También se puede utilizar System.out.print(), teniendo como única diferencia al anterior explicado, es que al momento de la impresión no realiza un salto de línea automático al momento de terminar de imprimir por pantalla el mensaje. Arreglos Un arreglo es un tipo de objeto que contiene valores llamados elementos. A diferencia de las variables que son accedidas por un nombre, los elementos de un arreglo son accedidos por un índice que indica la posición (número) del elemento en el arreglo, dicho índice comienza en cero y puede extenderse hasta n. De esta manera se puede avanzar a través del arreglo, accediendo a cada uno de sus elementos.
Imagen 4. Arreglos diagrama. Autoría propia. Todos los arreglos deben cumplir con los siguientes conceptos: Finito: Todos los arreglos tienen un límite, que indica cual es el número máximo de elementos que puede almacenar. Homogéneo: Solo puede almacenar elementos de un mismo tipo de dato. Ordenado: Se debe determinar cuál es el primer elemento, el segundo, el tercero, hasta el enésimo. Los arreglos se clasifican en: Unidimensionales: Una sola dimensión. (Un índice) Bidimensionales: Dos dimensiones. (Dos índices) Multidimensionales: n dimensiones. (n índices) Arreglos estáticos. Array estático es un grupo de elementos homogéneo, que es declarado con una cantidad de elementos fija. Una vez declarado el arreglo, no se puede cambiar su tamaño. Su declaración se realizará en la cabecera de programa o cabecera de módulo. Este tipo de arreglos puede almacenar objetos o tipos de datos primitivos. Los arreglos estáticos se declaran de la siguiente forma:
Sin embargo, también se puede utilizar esta otra alternativa: Índice o subíndice. Indica la posición del elemento en el arreglo El nombre del arreglo es: a
una forma de crear nuestros propios arreglos dinámicos, y es indicando la dimensión del array en tiempo de ejecución y no en tiempo de desarrollo como en el caso de los estáticos. Tienen la misma declaración que los arreglos estáticos, lo único que cambia es que, en la dimensión, en vez de poner un valor fijo, se coloca una variable. ∫[^ ] a^ rreglo = new ∫ [^ x^ ]^ ; Con anterioridad a la declaración se pide por pantalla el valor de la variable x (dimensión del arreglo). Imagen 7. Declaración arreglos dinámicos. Autoría propia. Arreglos primitivos. Son arreglos que almacenan un tipo de dato primitivo determinado, no almacenan objetos, ya sean valores numéricos o caracteres. Los arreglos primitivos pueden contener los siguientes tipos de datos: Tipo primitivo Tamaño Mínimo Máximo boolean - - - char 16 bits Unicode 0 Unicode 0 byte 8 bits -128 + short 16 bits (^) − 215 + 215 − 1 int 32 bits (^) − 231 + 231 − 1 long 64 bits (^) − 263 + 263 − 1
float 32 bits (^) −3.4∗ 1038 +3.4∗ 1038 double 64 bits (^) −3.4∗ 10308 +3.4∗ 10308 Tabla 1. Tipos de datos que pueden almacenar los arreglos primitivos. Autoría propia. Arreglos de objetos. Son arreglos que almacenan objetos, los cuales son instancias de una clase ya definida que posee sus atributos y métodos propios. TIPOS OBJETO (con métodos, necesitan una invocación para ser creados) Tipos de la biblioteca estándar de Java String (cadenas de texto) Muchos otros (p.ej. Scanner, TreeSet, ArrayList…) Tipos definidos por el programador / usuario Cualquiera que se nos ocurra, por ejemplo, Taxi, Autobus, Tranvia arrays Serie de elementos o formación tipo vector o matriz. Lo consideraremos un objeto especial que carece de métodos. Tipos envoltorio o wrapper (Equivalentes a los tipos primitivos pero como objetos.) Byte Short Integer Long Float Double Character Boolean Tabla 2. Tipos referenciados que puede almacenar un arreglo de objetos. Obtenido de: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=419:tipos-de- datos-java-tipos-primitivos-int-boolean-y-objeto-string-array-o-arreglo-variables- cu00621b&catid=68&Itemid= Colecciones La API de colecciones de Java (Collections) de Java provee a los desarrolladores con un conjunto de clases e interfaces que facilitan la tarea de manejar colecciones de objetos. En
Para solo un tipo determinado de objetos: ArrayList < nombreClase > nombreLista = new ArrayList < nombreClase >( ) ; Métodos del ArrayList: add(): Sirve para agregar elementos al array. Dentro del paréntesis se coloca el elemento a agregar. size(): Devuelve la cantidad de elementos que posee la lista. get(): Permite consultar información guardada en la lista. Dentro del paréntesis se coloca el índice del elemento del array que quiere ser consultado. remove(): Sirve para eliminar determinado elemento. Dentro del paréntesis se coloca el índice del elemento del array el cual quiere ser eliminado. Interface Set. No se admiten objetos duplicados, por lo que cada elemento que se añada a un Set deber ser único. No garantiza el orden en que se encuentren almacenados los objetos que contenga. Set al ser una interfaz, es necesario instanciar una implementación concreta de la interfaz para poder usarla. La interfaz Set posee el siguiente grupo de clases: HashSet LinkedHashset TreeSet Interface Map. Los mapas almacenan parejas de valores, relacionando un objeto (clave) con otro objeto (valor). Las claves no pueden estar duplicadas y solo puede tener un valor asociado. Los valores pueden estar dupliciados. La interfaz Map posee el siguiente grupo de clases: HashMap LinkedHashMap TreeMap
Iterator. La interface Iterator también pertenece como las anteriores al framework Collections de Java. Esta interface nos permite iterar sobre una colección de elementos. Para ello hemos de implementar sus métodos, que son los siguientes: hasNext(), next(). Declaración de un Iterator: Iterator nombreIterador = nombreLista. iterator ( ) ; Métodos del Iterator: hasNext(): Devuelve true si todavía existe un elemento en el array para poder seguir avanzando, caso contrario devuelve false. next(): Devuelve el siguiente método dentro de la colección. Imagen 8. Declaración ArrayList, uso de métodos del ArrayList, declaración Iterator y uso de métodos del Iterator. Autoría propia.
Imagen 10. Representación de una asociación en UML. Autoría propia. Agregación. Es una relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación utiliza al objeto incluido para su funcionamiento. (Es una relación débil) En UML se le representa como una línea con un diamante blanco en el extremo en el que está la clase que representa el todo. Composición. Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. En este tipo de relación el objeto base se construye a partir del objeto incluido. (Es una relación fuerte) En UML se le representa como una línea con un diamante negro en el extremo en el que está la clase que representa el todo. Imagen 11. Representación de agregación y composición en UML. Autoría propia.
A continuación, partes de un programa que utiliza agregación y composición: Imagen 12. Agregación en un programa en Java. Autoría propia.