3

Mis notas del curso :)

Este curso me sirvió mucho ya que aunque muchas cosas de las que vemos no son vitales nos ayuda y ahorran muchos tiempo estas herramientas dándonos mas opciones para programar.
Espero que les sirva 😃
Operador ternario y foreach
Operador ternario
Sirve para simplificar un if(){}else{}
condicion ? queHacersiCUmple : que hacer si no
foreach
for extendido simplifica un for en una colección
Collection y map
Map
es implementado por hashTable linkedHashMAp HashMap y sortedMap
ES un estructura de datos que hereda de collection
esta basada en el mapeo
Cada dato tienen un valor y un clave

    hashTable
        se considera obsoleto ya que hay métodos redundantes en otras clases
    linkedHashMAp
        es una estructura enlazada 
    HashMap
        NO hay orden. No se duplican las llaves y no hay valores nulos. 
    sortedMap es implementado por TreeMap
        TreeMap
            las claves se generan automáticamente y en forma de "árbol" 
Collection es implementado en set y list 
    Set 
        Almacena objetos únicos, no repetidos.
        Están en desorden
        No hay índice.
        hereda a hashset y a sortedset(interfaz)
        
        hashset
            Es como un set pero con hashing            
        sortedset es implementado por treeset
            treeset
                    es como un set
                    es muy eficaz
    list
        Puede almacenar objetos repetidos.
        Los objetos estarán en orden secuencial.
        Hay índice. 
        implementado por arraylist y linkedlist

        arraylist 
            permite duplicados, no esta sincronizado 
            por lo tanto es mas rápido  
        linkedlist
            no es sincronizado 
            esta doblemente lincado por lo que se puede añadir al principio o al final
        vector
            es sincronizado, es mas lento, pero es mas seguro

Clases abstractas
las clases abstractas sirven para que hereden de ellas
básicamente debe tener métodos vacíos y si son abstractos
la clase que herede debe usarlos obligatoriamente
No se pueden hacer objetos de un a clase abstracta
Se puede utilizar la inclusión
Polimorfismo
El Polimorfismo puede tener 3 formas: sobrecarga parametrico e inclusion
Sobrecarga: ponerle el mismo nombre a un método en distintas clases
parametrico: mismo nombre con diferentes parametros se ejecutar a el que coincida con los parámetros
inclusión: este es usado en la abstracción quiere decir que las clases pueden ser de
otros tipos. Ejemplo:
claseA nombreObjeto = new claseB();
En donde la clase B hereda de la A, esto es utilizado en abstracción ya que si la clase A es abstracta
no se puede crear un objeto de ella pero de este modo si también se puede utilizar aunque no haya abstracción
JavaDocs
Sirven para generar un documento HTML con las características del programa
se pueden usar las etiquetas de html <p> se usa para salto de linea

@author name indica el autor de la clase o el programa
@version indica la versión
@since indica cuando se hizo 
{@code } agrega código que indiques en un formato distinto 
{@link } genera un link de lo que indiques
{@inheritDoc} indica de donde proviene algo heredado
@see es como un vease tambien y se pone un link

Clases Anidadas
Consiste en tener un a clase dentro de otra
Pueden tener modificador de acceso cualquiera
Sirven si la dependencia entre clases es única y asi no tenemos un numero excesivo de
clases estas clases son mas que nada auxiliares
clases Helper estarán puestas en el lugar donde sean ocupadas por lógica
es importante encapsular
Estáticas
Deben ser instanciadas con static
Se crea a través de la clase exterior Ejem.
claseExterior.claseInterior name = new claseExterior.claseInterior();
Solo puede usar elementos externos si es que estos son estáticos
Interiores/inner
Interior/inner
Se crean y usan del siguiente modo
Exterior E = new Exterior();
Exterior.Interior I = E.new Interior();
I.usos();
Metodo local
Están dentro de un método
Por lo que generalmente solo se usan en el
Ejemplo:
metodoE(){
class nombre{
metodoI(){
}
}
nombre n = new nombre();
n.metodoI;
}
Anónima
Son abstractas
abstract class className {
abstract methodName();
}
//////otra clase //////
className objectName = new className(){
methodName(){
//implementacion
}
};
Enum
es una estructura de datos en la cual se almacenan constantes
pero esta funciona como si fuera una clase
también puede tener métodos
Interfaces
default: permite agregar código a los métodos
private: los métodos pueden ser privados es decir
solo lo pueden usar ls defaults
Clase abstracta vs. Interfaz
Al ser heredable una clase solo puede heredar de una sola abstracta
mientras que puede implementar muchas Interfaces
Por lo mismo un interfaz puede heredar de otras interfaces mientras esto se hace con extends no con
implements es decir entre interfaces se “hereda” no se implementan entre si
que la clase abstracta puede heredar de clases
Las clases abstractas se piensan mas como el inicio de una "familia"
mientras que las interfaces se piensan para ser implementadas por varias "familias"
Una buena práctica es que el diseño de las aplicaciones
siempre esté orientado a interfaces y no a la implementación. Crear buenas abstracciones. Encontrar el
comportamiento común. Enfocarse en la declaración de los métodos.

Escribe tu comentario
+ 2