Unos conceptos antes del "Hola Mundo"
Ahora que tenemos preparado nuestro entorno para comenzar a programar en Java y en Android, y antes de realizar nuestro primer programa, voy a dar unas pequeñas nociones sobre algunos terminos con los que nos estaremos encontrando constantemente y que si no los tenemos claros nos van a dar unos quebraderos de cabeza, como pueden ser las clases, herencias, métodos, etc.
Conceptos fundamentales de la programación orientada a objetos (OOP o POO)
Programación procedimental o estructurada.
Los algoritmos se implementan como funciones o procedimientos y tienen unas determinadas reglas de ámbitos de acceso para las llamadas entre módulos. En la programación estructurada, normalmente se tiende a organizar las funciones como un árbol, en el que hay un nodo raíz del que dependen las funciones y procedimientos de los que se compone el programa. Normalmente, las partes que están más cerca del nodo raíz son más abstractas (generales) y cuanto más nos alejamos del nodo principal, estas partes se van especializando hasta llegar al nivel máximo de detalle, el cual se halla en las capas inferiores.
En este tipo de programación la representación de los datos se determina por los algoritmos empleados y reflejan su estructura interna. Los datos son pasivos, son zonas de memoria con valores que pueden estar organizados en forma de estructuras de datos.
Estas metodologías de programación se suelen llamar programación estructurada, que aunque en su momento fué una gran mejora con respecto a la calidad del código con respecto a metodologías anteriores, seguía teniendo algunos problemas, como pueden ser la mantenibilidad del código y la dificultad de crear componentes de software, esto es módulos con entradas y salidas bien definidas y con propósitos diversos.
Las unidades básicas de un programa estructurado son las funciones o procedimientos, y los datos son zonas de memoria que serán modificadas por los algoritmos. Sólo con las reglas de ámbitos de acceso que hay en estos lenguajes no se puede unir de forma lógica y coherente los datos y el código que los utilizará.
La programación orientada a objetos (POO o OOP)
Las personas, cuando miramos a nuestro alrededor, vemos objetos, los cuales tienen un estado y un conjunto de acciones que se pueden ejercer en él, y la programación orientada a objetos intenta reflejar ésta característica. Ya no hay funciones y estructuras separadas, las entidades mantienen juntos los datos y el código que los utiliza. Estas entidades se denominan OBJETOS.
Un objeto está compuesto por variables, que contienen el estado actual del mismo y por métodos, que son funciones que permiten alterar los estados de las variables. La única forma de acceder a las variables privadas del objeto es a través de los métodos que tiene asociados. Esta forma de unir el código y los datos se llama encapsulación. Con la encapsulación podemos modificar la forma en que un objeto implementa sus métodos sin afectar a los demás objetos, con lo cual hemos conseguido la modularidad, y podemos acceder a los servicios del objeto sin saber los detalles de su implementación (abstracción de datos).
Clases: Las clases son modelos que se utilizan para crear objetos de ese tipo. A un modelo de una determinada clase se le llama instancia de esa clase. El modelo describe el estado y el comportamiento que comparten todos los objetos de esa clase. Las clases normalmente contienen variables y métodos. Los métodos son fragmentos de código reutilizables. Las variables se llaman también atributos o variables miembro o variables de instancia.
Las clases son contenedores de datos y de las operaciones que los manipulan. Normalmente se denominan con nombres abstractos (generales), como Persona, Animal, etc,. Se puede definir una clase a partir de otra, con lo que la nueva hereda parte de su funcionalidad, y además se le pueden añadir nuevos métodos.
Variables miembro: Son características de los objetos y contienen los datos relacionados con estos. Normalmente son privadas, para ocultar los datos, y el acceso a las mismas se realiza a través de los métodos o propiedades. También pueden ser públicas y no estar ocultas, e incluso permitir que se realizen cambios sin ser a través de los métodos, pero no es recomendable ya que puede producir estados indeterminados.
Métodos: Son a las clases lo que las funciones a la programación estructurada. Pueden acceder a las variables de la clase de forma implícita.
Propiedades: Son un tipo especial de métodos utilizados para controlar el acceso a las variables privadas.
<<<< ARTÍCULO SIN TERMINAR... CONTINUARÁ...>>>