Want to create interactive content? It’s easy in Genially!

Get started free

Clase inicial JAVA

Marta López Ron

Created on May 8, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Akihabara Microsite

Essential Microsite

Essential CV

Practical Microsite

Akihabara Resume

Tourism Guide Microsite

Online Product Catalog

Transcript

Bienvenidos a pROGRAMACIÓN

Comenzando con JAVA

INDICE

tEORIA

eJERCICIOS

¿Qué sabemos de java?

¿Es JAVA un lenguaje interpretado o compilado? ¿Qué consecuencias tiene?

¿Cual es el paradigma de programación para el que está diseñada JAVA? ¿Que se pretende con ello?

¿Por que los códigos se estructuran en clases?

¿Cuando hablamos de clases y objetos, hacemos referencia a lo mismo? ¿De que hablamos cuando nos referimos a la clase principal?

¿Qué sentencias utilizamos para compilar y ejecutar desde linea de comandos?

ESTRUCTURAS DE CONTROL

Estructuras condicionales
Estructuras iterativas (bucles)

if else - switch

Estructura if else

Estructura switch

¿Cuando usar if else?

¿Cuando usar switch?

while - for - do while

Estructura while

Estructura for

Estructura do while

¿Criterio para elegir entre while- for- do while?

BREAK-CONTINUE

SALIDA/ENTRADA

System.out
System.in

System.out

¿Qué es y como funciona?

Métodos asociados

System.in

¿Qué es y como funciona?

¿Que es la clase Scanner?

Métodos de la clase Scanner

Observaciones

cadenas

En Java, las cadenas son objetos. Por tanto, son valores referencia, instancias de una determinada clase. Se utilizan para trabajar con texto

Tipos
Métodos

MUTABLES

inMUTABLES

Definición

Definición

Creación

Creación

Ejemplos

Ejemplos

MÉTODOS DE INSTANCIA

MÉTODOS ESTÁTICOS

Los métodos estáticos son métodos que pertenecen a una clase en lugar de pertenecer a instancias individuales de la clase. Se definen utilizando la palabra clave static en la firma del método. Los métodos estáticos se pueden llamar directamente desde la clase sin necesidad de crear una instancia de la clase y solo pueden acceder a los miembros estáticos de la clase

Los métodos de instancia son métodos asociados a una instancia específica de una clase. Estos métodos se invocan en una instancia de la clase utilizando la sintaxis instancia.metodo(). Los métodos de instancia pueden acceder y manipular los datos específicos de la instancia en la que se invocan.

Ejemplos métodos de instancia (String)

Ejemplos métodos estáticos (String)

eJEMPLO: mÉTODOS DE INSTANCIA VS ESTÁTICOS

ejemplo: Cadenas inmutables

ejemplo: Cadenas mutables

ARRAYS

En Java, un array es un dato mutable compuesto por elementos (también llamados componentes) a los que se accede mediante indezación, es decir, indicando la posición donde se encuentra almacenado el elemento deseado dentro del array. Características: - Cada array tiene una longitud fija (no puede cambiar de tamaño dinámicamente) - Todos los elementos de un array deben ser del mismo tipo, el cual debe indicarse en la declaración del array. - Los arrays son objetos, y por tanto, son valores referencia.

modificación

Declaración

subtipado

Creación

metodos

acceso

ARRAYS MULTIDIMENSIONES

ARRAYS UNIDIMENSIONALES

La dimension de un array viene determinada por el número de índices que se necesitan para acceder a un elemento suyo. A los arrays de dimension 1 se les denomina unidimensionales. A los arrays de dimension mayor que 1 se les denomina genericamente arrays mutidimensionales.

ARRAYS MULTIDIMENSIONES

ARRAYS UNIDIMENSIONALES

Para la creación de un objeto array multidimensional utilizaremos el operador new e indicaremos el tipo de los elementos y el tamaño de al menos la primera dimensión del array.

Para la creación de un objeto array unidimensional utilizaremos el operador new e indicaremos el tipo de los elementos y la longitud del array entre corchetes.

Si no indicamos el tamaño del array el objeto no se crea.

Si no indicamos el tamaño del array el objeto no se crea.

También se puede definir un array en su inicialización. Así por ejemplo una matriz se puede representar por filas con el siguiente array:

Otra manera de crear un array unidimensional es a través de su inicialización. En este caso no es necesario definir la longitud del array en el corchete.

ARRAYS MULTIDIMENSIONES

ARRAYS UNIDIMENSIONALES

Para acceder a un elemento del array se usa el operador de indexacion (los corchetes). Los elementos se indexan de 0 a n-1, siendo n la longitud del array. Si se intenta acceder a un elemento fuera de esos limites, se levanta una excepcion java.lang.ArrayIndexOutOfBoundsException

Ejemplo

Ejemplo

ARRAYS MULTIDIMENSIONES

ARRAYS UNIDIMENSIONALES

Para cambiar un elemento del array por otro, se puede usar la indezación combinada con la asignación. El compilador comprueba que el valor a asignar es del tipo correcto, e impide la operación si se ve obligago a hacer narrowing para hacer que el tipo del valor sea compatible con el tipo del elemento.

Si declaramos un array de tipo Object estamos diciendo que sus elementos pueden ser de cualquier tipo referencia, lo que nos permite trabajar con elementos de cualquier tipo (incluyendo tipos primitivos).Inconveniente: No podremos aprovechar el comprobador de tipos del compilador para determinar si los tipos son adecuados.

SUBTIPADO

En el primer caso, el tipo char es subtipo del tipo int. En el segundo caso, se produce un caso de narrowing (perdida de precisón) y da error.

Ejemplo

métodos

La clase java.util.Arrays contiene varios métodos estáticos para manipular arrays. Los métodos de esta clase lanzan todos una excepción NullPointerException cuando el array especificado es una referencia nula. Algunos métodos interesantes son: - length: permite obtener la longitud del array, es decir el número de elementos que contiene. Se utiliza como "array.length". En el caso bidimensional, array.length devuelve el número de filas y array[0].length el número de columnas - Arrays.sort(): se utiliza para ordenar elementos del array en orden ascendente. Requiere importar la clase java.util.Arrays. Se utiliza como "Arrays.sort(array)". - Arrays.toString(): permite convertir el array en una cadena de texto que muestra todos los elementos. Es útil para imprimir el contenido del array. Requiere importar la clase java.util.Arrays. Se utiliza como "Arrays.toString(array)".

arrays.copyof

CLONE

Arrays.equals

SYSTEM.ARRAYCOPY

clone

System.arraycopy

copyof

ARRAYS.DEEPEQUALS

arrays.equals

ejercicios iniciales

Nivel 1

Declaracion de variables

Nivel 2

Entrada de datos por pantalla

Nivel 3

Conversión numerico char Conversion char numérico

Nivel 4

Operaciones básicas

Ejercicios iniciales

Nivel 8

Piedra-papel-tijeras

Nivel 7

Funciones

Nivel 6

Arrays

Nivel 5

Bucles

Ejercicio de clase

Crea un programa

Crea un programa que pida un número por teclado, y devuelva por pantalla un mensaje indicando si el numero introducido es una potencia de 2.

Haz el programa anterior más eficiente. No utilices ningún tipo de bucle. PISTA: Utiliza operadores binarios

Crea un programa que simule un sistema de permisos para una aplicación y te permita verificar si un usuario tiene ciertos permisos especificos. Cada permiso se representa mediante un número entero y un usuario puede tener varios permisos.

Haz el programa anterior más eficiente. No utilices ningún tipo de bucle. PISTA: Utiliza operadores binarios

Ejercicio ARRAYS

Escribir un programa que solicite números al usuario y los vaya introduciendo en un array con una longitud inicial de 5. Si se supera la capacidad del array, se deberá ampliar usando la solución del ejercicio anterior. Cuando el usuario introduzca un 0, deberá mostrar todos los elementos almacenados en el array y finalizar el programa.

Escribe un programa que represente la matriz 1 2 3 4 5 6 7 8 9 usando un array bidimensional inicializando a los valores adecuados. A continuación muestra los valores de la matriz usando dos bucles anidados

Crear un método rellenaCuadrado que reciba un entero 𝑛 y que devuelva una matriz Cuadrada de 𝑛 × 𝑛 que sólo contenga al entero 𝑛.

Crear un programa que cree un array de cinco elementos, donde el primero sea un entero, el segundo una cadena, el tercero un booleano, el cuarto un valor null y el quinto un StringBuilder. Luego debe enviar ese array a un método estático que recorrerá el array desde el primer elemento hasta el último y los mostrará por la salida.

Ejercicio ARRAYS (nivel ++)

Escribir un programa que a partir de un archivo de texto llamado mis_empleados.txt. Se encuentra en la carpeta de Ejercicios del moodle y tiene la siguiente estructura: InicialesNombreApellidosEmpleado_Sexo_Edad_NivelEmpresa Ej: MLR_M_31_8, APR_H_54_14. Se pide: - Almacenar en un array unidimensional de tipo String la información del fichero que viene delimitada por ",". - Transformar dicho array en una matriz de tipo Objeto donde para cada empleado se almacena en distintas columnas sus iniciales (String), sexo(String), edad (Int) y nivel(Int) Ej: {{MLR, M, 31, 8}, {APR, H, 54, 14}}. - Define un método estático dentro de la clase principal que permita filtrar la matriz por alguno de sus campos. - Define un método estático dentro de la clase principal para calcular la edad media de un conjunto de empleados. El parametro de entrada será un array bidimensional con los empleados requeridos. - Define un método estático que defina la promoción de un empleado. Si un empleado es promocionado, entonces su nivel aumenta en 1. Ojo! Si tiene el nivel máximo no puede promocionar más. - Una vez definido los métodos, muestra por pantalla, los empleados que son mujeres, calcula su edad media y promociónalas. Nota: El fichero se encuentra en la carpeta "Codigos Ejercicios Iniciales" del Moodle. Para hacer esta actividad se recomienda importar las librerias java.io.File; java.io.FileNotFoundException; En la carpeta "Codigos ejemplos", el archivo Ej_HasNextBucle.java puede servirte de ayuda para leer un fichero. .

Ejercicio ARRAYS (nivel ++)

Diseña y escribe un programa que permita a dos jugadores jugar al "n en rayas". El primer jugador que forme una linea de "n" símbolos iguales será el ganador. En caso de que ninguno de los jugadores lo consiga, se establecerá un empate. Se pide: - Diseñar y mostrar por pantalla un tablero donde cada casilla esté separada por los caracteres "-" y "|" - Pedir por pantalla a cada jugador la columna donde se introducirá la ficha. Si hay hueco disponible en la columna, debe almacenarse siempre en el ínidice más alejado disponible. - Garantizar que la posicion introducida por teclado tiene un tipo de valor adecuado a lo definido en el código y está entre el rango de valores posibles. En caso de no ser así, volver a pedir la posición al jugador. RETO: Diseña el programa con métodos estáticos para que el main quede lo más sencillo posible. .

Ejemplo de estructura del main

Ejercicio ARRAYS (nivel ++)