Está en la página 1de 13

Apuntes: Paradigmas de la Programación

17/8/2023

Relación entre motor y camión bidireccional.

“Un objeto tiene una referencia en el que lo compone”.

Rol: nombre que toma un objeto dentro dela clase que compone.

Cardinalidad: Cantidad de objetos que vamos a tener.

Paquete: directorio.

Relación de Herencia (Foto diagrama de clases “Vehículo”):

Responde a “es un”. Todos los atributos y métodos de la clase madre se heredan a las subclases,
pero los privados no son accesibles.

Agregar atributos particulares propios de cada clase derivada se llama especialización.

Java provee un constructor por defecto.

Una clase abstracta es aquella en la que no se pueden crear objetos, únicamente para ser
heredada.

Un método abstracto es aquel que no tiene implementación. Keyword “ABSTRACT”. Si tiene una
llave que abre y cierra ya no es método abstracto.

Por regla, estoy obligado a que un método abstracto se encuentre en una clase abstracta. Sin
embargo una clase abstracta puede contener métodos no abstractos.

En Java no tengo herencia múltiple de clases, es decir, una clase derivada no puede heredar de
más de una clase.

Una interfaz es una clase totalmente abstracta donde todos los métodos son abstractos por
defecto y todos sus atributos son constantes, es decir, no pueden cambiar su valor.

Para heredar interface debemos implementar (IMPLEMENTS). A la larga es una herencia. La


herencia múltiple puede realizarse con un “extends” y un “implements”. La herencia múltiple
puede realizarse con varias interfaces (1 o más).

@Override: Notación que le explica al compilador que se está sobrescribiendo un método. No es


obligatorio ponerlo.

Una interface hereda necesariamente de otras interfaces, pero las extiende (“extends”).

//TODO : cosas para hacer.

Agustín N. Gonzalez Género 2k7 2023 Pá gina 1


Apuntes: Paradigmas de la Programación

Palabra Reservada “super”, reemplaza new Vehículo, llamando al constructor de la superclase o


clase madre.

A una referencia de una superclase se le puede asignar cualquier objeto hijo (Foto Class A, Class
B….).

Todo objeto, ya sea que provenga de una clase predefinida en Java o una clase creada por
nosotros mismos, hereda implícitamente de la clase “Object”.

Preguntar al sistema sus métodos, atributos, etc. Es llamado INTROSPECCIÓN (foto a.getClass()….).

Super. Super().

This. This().

Accesor. Constructor.

24/08/2023

Atributo estático: en el ejemplo, a1 es estático, es decir, si se le asigna 10, entonces a2.b también
tendrá 10.

Foto programa class A

Constructor estático: Se usa para inicializar los atributos estáticos.

Foto static A

Métodos Estáticos: se puede ejecutar sin crear métodos de la clase que lo contienen.

Public static void (){}

Foto public static void muestraB

Regla: desde un método estático puedo acceder a miembros que también son estáticos. No tiene
sentido que de un método preexistente a un objeto se pueda acceder a un atributo de instancia
(necesito un objeto).

Soluciones para acceder a otro():

1. Otro() debe ser estático


2. Debo crear un objeto de la clase y buscar el método para acceder a todos los atributos de
instancia.

Agustín N. Gonzalez Género 2k7 2023 Pá gina 2


Apuntes: Paradigmas de la Programación

Foto otro()

¿Puede ser privado? Sí, puede ser privado pero sólo puedo acceder desde la misma clase por otro
método estático.

Foto math()

Gestión de errores: EXCEPCIONES

Para manejar errores el código realiza esto:

Foto Gestión de errores COMPLETA

No se requiere colocar controles if else, se usa un manejador de excepciones con un try{cualquier


llamada que pueda generar error, sout da el resultado si no hay error. Si lo hay, saltamos a catch}
catch(objeto de tipo exception predefinida en Java que atrapa el error en una variable){Imprime
mensaje de error/excepción}

Foto try{} catch{} ejemplo

Por cada error puedo colocar un catch diferente.

Foto try{} catch{} filmina

Métodos que lanzan excepciones

Foto Throws Exception

Se especifica en cada método con THROWS EXCEPTION que puede lanzar una excepción. Cuando
un método lanza una excepción a un método invocador, este último puede tomar 2 caminos:

1. Manejar la excepción
foto con try catch finally (siempre se ejecuta)
2. Lanzar nuevamente la excepción
foto Throws y try catch en main

Crear mi excepción

Foto public class denominadorceroexcepcion extends exception(){}

Lanzar más de un tipo de excepción

Foto Denominadorcero y denominador muy grande.

Consigna: En el modelo de camiones, si el constructor de un frigorífico recibe un chasis igual a 0, se


debe lanzar una excepción denominada NoHayVehículos().

Agustín N. Gonzalez Género 2k7 2023 Pá gina 3


Apuntes: Paradigmas de la Programación

31/08/2023

Contenedores

ArrayList: Guarda tipos de datos específicos. Puede parametrizarse con el fin de guardar
únicamente un tipo de dato y me ahorro castear, pero como desventaja sólo guardo tipos
homogéneos.

Se recorre con un for.

Autoboxing: permite guardar tipos de datos heterogéneos en el ArrayList. El compilador se da


cuenta de que queremos guardar un tipo entero en el ArrayList

Parametrizar: Indicar entre <> qué tipo de dato se guarda, lo que me quita la necesidad de casteo

Vectores: Contenedor inseguro

Hashtable: Forma de búsqueda de Java, da un acceso más rápido y seguro a los datos

Foto pizarra

Iteradores (Iterator i=a.iterator): Le pido al ArrayList que todos sus elementos los pase al Iterador
ya que es más fácil de recorrer. Se recorre con:

While( i.hasNext() )

System.out.println(i.next());

Foto iterator

JFrame: crea ventanas adicionales, menús, etc. Las cuales se configuran con setBounds, y con
setLayout indica la posición de cada

JButton: sirve para crear botones para la ventana creada

Control+shift+i te importan las librerías que vamos usando

07/09/2023

Agustín N. Gonzalez Género 2k7 2023 Pá gina 4


Apuntes: Paradigmas de la Programación

Clase final: No permite tener clases hijas

Método final: no permite sobreescritura de método

Agustín N. Gonzalez Género 2k7 2023 Pá gina 5


Apuntes: Paradigmas de la Programación

Clase Abstracta: no puede ser final, está hecha para ser heredada

Método abstracto final: no permitido

Agustín N. Gonzalez Género 2k7 2023 Pá gina 6


Apuntes: Paradigmas de la Programación

Transient: hace que el atributo no se persista en el disco rígido. Sólo se usa en atributos.

Clases Parametrizadas

Declaro una clase A de tipo T, que no definimos hasta solicitar que la misma construya un objeto
de tipo T

Agustín N. Gonzalez Género 2k7 2023 Pá gina 7


Apuntes: Paradigmas de la Programación

El tipo puede ser del que yo quiera, en estos casos usamos el que a nosotros se nos ocurra.
Podemos guardar cualquier objeto de tipo T.

Foto código filmina “Clases Parametrizadas”

Generalidades

No se puede:

 Crear instancias de tipo genérico

 Usar genéricos declarados externamente en miembros estáticos.


 Heredar de Throwable.

Modos de uso:

 Cualquier tipo T que herede de A y B

Agustín N. Gonzalez Género 2k7 2023 Pá gina 8


Apuntes: Paradigmas de la Programación

 Los tipos T1 y T2 se heredan


 Método Parametrizado
Foto Public<A extends Number>
 Creación de una instancia de tipo genérico
T otro = (T)obj.getClass().newInstance();

14/09/2023

Clases Acotadas: Imponen restricciones mediante herencia en los parámetros.

Agustín N. Gonzalez Género 2k7 2023 Pá gina 9


Apuntes: Paradigmas de la Programación

Equals: Comparador de objetos, se hereda de object.

Parametrizar con Comodines: se hace con ?

Agustín N. Gonzalez Género 2k7 2023 Pá gina 10


Apuntes: Paradigmas de la Programación

 <? Extends xClase> Límite superior


 <? Super xClase> Límite Inferior

Foto filmina uso de extends y super

Clases Internas

Tercer miembro de una clase junto a los métodos y atributos. Puede ser:

 Local: Se define en un bloque de código, son visibles y usables en él. No pueden incluir
modificador de proceso ni ser estáticas. Son útiles para evitar exceso de clases pequeñas,
encapsular y ocultar en paquetes y agrupamiento de clases relacionadas, según
proximidad entre la definición y el uso de las clases

Sus aplicaciones son para tratamiento de eventos y creación de clases de ayuda o

Agustín N. Gonzalez Género 2k7 2023 Pá gina 11


Apuntes: Paradigmas de la Programación

adaptación

 Clases Anidadas:
Foto Filmina clases anidadas ejemplo
 Clases Miembro: Clase interna definida como miembro no estático de otra que pueden
declararse como privada o protegida.
Aclaración: Desde la clase interna tengo acceso a todo lo que es externo, incluidos los
atributos privados, mas desde lo externo, no puedo acceder a lo interno.
Cada instancia de una de ellas se asocia a una de la clase contenedora internamente, no
puede tener miembros estáticos ni nombres comunes con la clase externa ni es posible
crear un objeto de la clase interna sin tener un objeto de la clase exterior previamente
creado.

Consigna: agregue una línea al código fuente para que b se pueda asignar

Agustín N. Gonzalez Género 2k7 2023 Pá gina 12


Apuntes: Paradigmas de la Programación

 Clases Anónimas: Clase interna local sin nombre. Se define e instancia en una sola
operación, sólo existe una instancia que puede incluirse en una expresión
 Clases Interfaces de Alto Nivel: Clases Static que pueden sólo anidarse en otra clase
normal

Sintaxis de this, new y super:

 Referencia a un objeto de la clase contenedora


Foto filmina obj=A.this;
 Creación de un objeto de una clase interna
foto filmina obj=(new A()).new B();
 Herencia de una clase interna: constructor de la clase

Agustín N. Gonzalez Género 2k7 2023 Pá gina 13

También podría gustarte