01 - Programación Orientada A Objetos P1. Introducción A Objetos
01 - Programación Orientada A Objetos P1. Introducción A Objetos
01 - Programación Orientada A Objetos P1. Introducción A Objetos
Material de lectura
INTRODUCCIÓN A OBJETOS
OBJETIVOS DE LA GUÍA
En esta guía aprenderemos a:
2
La Programación Orientada a Objetos (POO) es un paradigma de
programación, es decir, un modelo o un estilo de programación que se basa en
el concepto de clases y objetos. Este tipo de programación se utiliza para
estructurar un programa de software en piezas simples y reutilizables de
código (clases) para crear instancias individuales de objetos.
3
Pero entonces, ¿Qué es un objeto?
Un objeto en la programación es la forma que tenemos de llevar a código, la
representación más fidedigna posible de un objeto de la vida real. Un objeto
tendrá características (atributos) que son comunes a todos ellos, pero pueden
variar entre sí.
4
¿Cómo creamos objetos?
Para llevar cierto orden, por cada uno de los ejercicios de esta guía crearemos
un nuevo proyecto en NetBeans.
5
Luego, necesitamos crear una clase. Una clase es un molde para crear
múltiples objetos que encapsula datos y comportamiento. Una clase es una
combinación específica de atributos y métodos y puede considerarse un tipo
de dato de cualquier tipo no primitivo.
6
7
Así, una clase es una especie de plantilla o prototipo de objetos: define los
atributos que componen ese tipo de objetos y los métodos que pueden
emplearse para trabajar con esos objetos. En su forma más simple, una clase
se define por la palabra reservada class seguida del nombre de la clase. El
nombre de la clase debe empezar por mayúscula.
8
Si el nombre es compuesto, entonces cada palabra debe empezar por
mayúscula. La definición de la clase se pone entre las llaves de apertura y
cierre.
// atributos
// constructores
// métodos propios
Ejercicio persona
Es tu turno, crea tu propio proyecto con la clase Persona.
Estado y Comportamiento
En términos más generales, un objeto es una abstracción conceptual del
mundo real que se puede traducir a un lenguaje de programación orientado a
objetos. Los objetos del mundo real comparten dos características: Todos
poseen estado y comportamiento. Por ejemplo, el perro tiene estado (color,
nombre, raza, edad) y el comportamiento (ladrar, caminar, comer, acostarse,
mover la cola). Por lo tanto, un estado permite informar cuáles son las
características del objeto y lo que este representa, y el comportamiento,
consiste en decir lo que sabe hacer.
9
Elementos de una Clase
Una clase describe un tipo de objetos con características comunes. Es
necesario definir la información que almacena el objeto y su comportamiento.
10
Ejercicio persona – atributos
Seguiremos trabajando sobre la clase Persona que creamos y ahora deberás
sumarle 3 atributos que creas pertinentes.
<sentencia>*
11
Este es un constructor por defecto
Para diferenciar entre los atributos del objeto y los identificadores de los
parámetros del método constructor, se utiliza la palabra this. De esta forma, los
parámetros del método pueden tener el mismo nombre que los atributos de la
clase.
12
El constructor por defecto
Cada clase tiene al menos un constructor. Si no se escribe un constructor, el
lenguaje de programación Java le provee uno por defecto. Este constructor no
posee argumentos y tiene un cuerpo vacío. Si se define un constructor que no
sea vacío, el constructor por defecto se pierde, salvo que creemos un nuevo
constructor vacío.
Una vez que se ha declarado una clase, se pueden crear objetos a partir de
ella. A la creación de un objeto se le denomina instanciación. Por esta razón
que se dice que un objeto es una instancia de una clase y el término instancia y
objeto se utilizan indistintamente. Para crear objetos, basta con declarar una
variable de alguno de los tipos de las clases definidas.
NombreClase nombreObjeto;
13
Instanciamos dos objetos en el main del tipo Persona
14
¿Cómo se crean los constructores?
Dentro de la clase, para agregar automáticamente los constructores podemos
presionar el botón derecho > Insert Code > Constructor y podemos no
seleccionar ningún atributo o seleccionar todos los atributos.
15
Abstracción y Encapsulamiento
La abstracción es la habilidad de ignorar los detalles de las partes para enfocar
la atención en un nivel más alto de un problema. El encapsulamiento sucede
cuando algo es envuelto en una capa protectora. Cuando el encapsulamiento
se aplica a los objetos, significa que los datos del objeto están protegidos,
“ocultos” dentro del objeto. Con los datos ocultos, ¿cómo puede el resto del
programa acceder a ellos? (El acceso a los datos de un objeto se refiere a
leerlos o modificarlos.) El resto del programa no puede acceder de manera
directa a los datos de un objeto; lo tiene que hacer con ayuda de los métodos
del objeto. Al hecho de proteger los datos o atributos con los métodos se
denomina encapsulamiento.
Abstracción
La abstracción es la propiedad que considera los aspectos más significativos o
notables de un problema y expresa una solución en esos términos. La
abstracción posee diversos grados o niveles de abstracción, los cuales ayudan
a estructurar la complejidad intrínseca que poseen los sistemas del mundo real.
La abstracción encarada desde el punto de vista de la programación orientada
a objetos es el mecanismo por el cual se proveen los límites conceptuales de
los objetos y se expresan sus características esenciales, dejando de lado sus
características no esenciales. Si un objeto tiene más características de las
necesarias los mismos resultan difíciles de usar, modificar, construir y
comprender. En el análisis hay que concentrarse en ¿Qué hace? y no en ¿Cómo
lo hace?
Encapsulamiento
La encapsulación o encapsulamiento significa reunir en una cierta estructura a
todos los elementos que a un cierto nivel de abstracción se pueden considerar
pertenecientes a una misma entidad, y es el proceso de agrupamiento de
datos y operaciones relacionadas bajo una misma unidad de programación, lo
que permite aumentar la cohesión de los componentes del sistema.
16
Los métodos operan sobre el estado interno de un objeto y sirven como el
mecanismo primario de comunicación entre objetos. Ocultar el estado interno y
hacer que toda interacción sea a través de los métodos del objeto es un
mecanismo conocido como encapsulación de datos.
Modificadores de Acceso
Para lograr el uso correcto del encapsulamiento vamos a utilizar los
modificadores de acceso, estos, van a dejarnos elegir como se accede a los
datos y a través de que se accede a dichos datos. Todas las clases poseen
diferentes niveles de acceso en función del modificador de acceso (visibilidad).
A continuación, se detallan los niveles de acceso con sus símbolos
correspondientes:
17
Visibilidad Public Private Protected Default
Desde la misma SI SI SI SI
Clase
Desde cualquier SI NO SI SI
Clase del mismo
Paquete
Desde cualquier SI NO NO NO
Clase fuera del
Paquete
18
Métodos propios
Los métodos son funciones que determinan el comportamiento de los objetos.
Un objeto se comporta de una u otra forma dependiendo de los métodos de la
clase a la que pertenece. Todos los objetos de una misma clase tienen los
mismos métodos y el mismo comportamiento. Para definir los métodos, el
lenguaje de programación Java toma la siguiente forma básica:
<sentencias>*
return valorRetorno;
19
Getter & Setter
Para acceder a los atributos de un objeto se definen los métodos get y set. Los
métodos get se utilizan para consultar el estado de un objeto y los métodos
set para modificar su estado. Un método get se declara public y a
continuación se indica el tipo de dato que devuelve. Es un método de consulta.
La lista de parámetros de un método get queda vacía. En el cuerpo del método
se utiliza return para devolver el valor correspondiente al atributo que se quiere
devolver, y al cual se hace referencia como this.nombreAtributo.
Por otra parte, un método set se declara public y devuelve void. La lista de
parámetros de un método set incluye el tipo y el valor a modificar. Es un
método modificador. El cuerpo de un método set asigna al atributo del objeto el
parámetro de la declaración.
20
¿Cómo utilizamos estos métodos?
Un método se puede invocar dentro o fuera de la clase donde se ha declarado.
Si el método se invoca dentro de la clase, basta con indicar su nombre. Si el
método se invoca fuera de la clase entonces se debe indicar el nombre del
objeto y el nombre del método. Cuando se invoca a un método ocurre lo
siguiente:
21
En resumen
Antes de POO, la técnica estándar de programación era la programación
procedural. Se denomina programación procedural porque en ella se destacan
los procedimientos o tareas que resuelven un problema. Se piensa primero en
lo que se quiere hacer: los procedimientos.
Estas cosas podrían ser entidades físicas o conceptuales, por ejemplo, un libro.
Una vez identificadas las cosas que se quiere modelar, se identifican sus
propiedades/atributos básicos. Estos se pueden agrupar todos juntos en una
estructura coherente llamada objeto que creamos a través de las clases.
22