1.1 Recordatorio Java - ajpaez/OCA GitHub Wiki

Un programa es principalmente una colección de objetos hablando con otros objetos por medio de invocaciones a sus métodos. Cada objeto es de un tipo, y cada tipo está definido por una clase o una interfaz. La mayoría de los programas Java usan una colección de objetos de muchos tipos diferentes. Conceptos básicos:

  • Clase: Es una plantilla que describe el tipo de estado y comportamiento que objetos de dicho tipo soportan.
  • Objeto: En tiempo de ejecución , cuando la JVM encuentra la keyword new, usa clase apropiada para construir el objeto que es una instancia de dicha clase. El objeto tendrá su propio estado y acceso a todos su comportamiento definido por su clase.
  • Estado (variable de instancia): Cada objeto (instancia de una clase) tendrá su propio conjunto único de variables como se definen en la clase. Colectivamente, los valores asignados a las variables de instancia del objeto conforman es estado del objeto.
  • Comportamiento (métodos): Cuando un programador crea una clase, se crea los métodos de dicha clase. Métodos son donde esta la lógica de la clase.

Identificados y keywords

Todos los componentes de Java antes mencionados necesitan nombres. En Java estos nombre se llaman identificadores y tienen reglas para construirse, existe una convención para nombrar estos métodos, variables y clases. Java dispone de un conjunto de palabras claves (keywords), estas palabras clave no deben ser usadas como identificadores.

Identificados y keywords

Concepto fundamental para Java y otros lenguajes orientados a objetos, la herencia permite que el código definido en una clase se reutilice en otras clases. En java puedes definir una superclase general (mas abstracta) y luego extender a subclases mas especificas. Todos las subclases pueden acceder a las variables de instancia de la superclase, pero las subclases son libres de sobrescribir los métodos para definir un comportamiento mas especifico.

Interfaces

Un poderoso complemento de la herencia son las interfaces. Las interfaces son como una superclase abstracta que define los métodos de las subclases, pero no como deben comportarse.

Cohesividad

Como veremos mas adelante es una buena practica, hacer clases cohesivas, esto significa que cada clase debe tener un conjunto bien definido de responsabilidades.