1. Beneficios
    1. Encapsulamiento
    2. Reutilización
    3. Bajo acoplamiento
    4. Alta cohesión
  2. Objeto
    1. Instanciar un objeto: MiObjeto obj = new MiObjeto()
    2. Utilizar un objeto: obj.metodo();
    3. Finalizando un objeto
      1. Llamado por el GC
      2. finalize();
  3. Clase
    1. Declaración una clase: class
    2. atributos
      1. Datos del objeto
    3. métodos
      1. Comportamiento del objeto
      2. Overloading
        1. Reutilizar el nombre del método
        2. Diferente argumentos
      3. Overriding
        1. Sobreescribir el método
        2. Mismos argumentos
    4. constructores
      1. Ejecutado al instanciar el objeto
        1. Se reserva espacio para el nuevo objeto y se inicializa a 0 ó null
        2. Se realizan las inicializaciones explícitas.
        3. Se ejecuta el constructor
        4. La variable referencia, recibe la referencia al nuevo objeto
      2. Con parámetros o sin parámetros
      3. super();
  4. Interface
    1. Declarar una interface: interface
    2. Implementar una interface: implements
    3. Solo declara métodos, no implementaciones
    4. Todos los métodos son públicos
    5. No se puede instanciar
  5. Modificadores
    1. Acceso
      1. public
      2. protected
      3. default
      4. private
    2. Otros
      1. final
        1. No puede ser modificado
        2. Aplica
          1. Clases
          2. No se puede heredar
          3. Variables
          4. No se puede actualizar
          5. Métodos
          6. No se puede sobreescribir
      2. abstract
        1. No puede ser instanciado
        2. Aplica
          1. Clases
          2. Métodos
      3. static
        1. Asociado a la clase, no a la instancia
        2. Aplica
          1. Variables
          2. Métodos
      4. native
        1. Su implementación está fuera de la JVM
        2. Aplica a métodos
      5. transient
        1. No se persiste
        2. Aplica a variables
      6. volatile
        1. No es de uso común
        2. Las variables no pueden ser modificadas de forma asíncrona
        3. Aplica a variables
      7. synchronized
        1. Controla el acceso concurrente en hilos
  6. Herencia
    1. Reutilizar atributos y métodos de la clase padre
    2. Heredar una clase: extends
  7. Encapsulación
    1. Ocultar información
    2. getters/setters
  8. Polimorfismo
    1. Un objeto se comporta de diferentes formas
  9. Acerca de
    1. Topic
    2. Topic