Está en la página 1de 32

UNIVERSIDAD LATINA DE COSTA RICA

Sede Guápiles
BACHILLERATO EN INGENIERÍA DE SISTEMAS INFORMÁTICOS

PROGRAMACIÓN
Programación Orientada a Objetos o POO 

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación

que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en

varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su

uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de

lenguajes de programación que soportan la orientación a objetos.


¿Qué es una clase?

Las clases en Java son básicamente una plantilla que sirve para crear un objeto. Si imaginásemos las clases en el

mundo en el que vivimos, podríamos decir que la clase «persona» es una plantilla sobre cómo debe ser un ser

humano. Todos y cada uno de nosotros, los seres humanos, somos objetos de la clase «persona«, ya que todos

somos personas. La clase «persona» contiene la definición de un ser humano, mientras que cada ser humano

es una instancia u objeto de dicha clase.


Herencia

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase

existente. La herencia (a la que habitualmente se denomina subclase) proviene del hecho de que la subclase (la nueva

clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad

para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.
Jerarquía de clase
La relación padre-hijo entre clases puede representarse desde un punto de vista jerárquico, denominado vista de clases

en árbol. La vista en árbol comienza con una clase general llamada superclase (a la que algunas veces se hace referencia

como clase primaria, clase padre, clase principal, o clase madre; existen muchas metáforas genealógicas). Las clases

derivadas (clase secundaria o subclase) se vuelven cada vez más especializadas a medida que van descendiendo en el

árbol. Por lo tanto, se suele hacer referencia a la relación que vincula una clase secundaria con una clase primaria

mediante la frase es una x o y. 


Dependiendo del lenguaje que se utilice, el diseñador también puede controlar qué miembros de las superclases son

visibles en las subclases. En el caso de java y C++ los especificadores de acceso (private, protected, public) de los

miembros de la superclase afectan también a la herencia:

• Private
Ningún miembro privado de la superclase es visible en la subclase.
• Protected
Los miembros protegidos de la superclase son visibles en la subclase, pero no visibles para el exterior.
• Public
Los miembros públicos de la superclase siguen siendo públicos en la subclase.
Abstracción

La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.

En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?"

(característica de caja negra). El común denominador en la evolución de los lenguajes de programación,

desde los clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstracción del que cada

uno de ellos hace uso.


La abstracción encarada desde el punto de vista de la programación orientada a

objetos expresa las características esenciales de un objeto, las cuales distinguen al

objeto de los demás. Además de distinguir entre los objetos provee límites

conceptuales. Entonces se puede decir que la encapsulación separa las características

esenciales de las no esenciales dentro de un objeto. Si un objeto tiene más

características de las necesarias los mismos resultarán difíciles de usar, modificar,

construir y comprender sobre todo cuando es un método de número entero con

terminación fraccionaria.
CLASE SMARTPHONE
HEREDADA DE LA
CLASE CELULAR
Get - Set
Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o modificar (set) el valor de un

atributo. El nombre del método siempre sera get o set y a continuación el nombre del atributo, su modificador siempre

es public ya que queremos mostrar o modificar desde fuera la clase. Por ejemplo, getNombre o setNombre.
Constructores en Java

Un Constructor  es una función, método de las clases, la cual es llamada automáticamente cuando se crea un

objeto de esa clase.

Por ser métodos, los constructores también aceptan parámetros. Cuando en una clase no especificamos ningún

tipo de constructor, el compilador añade uno público por omisión sin parámetros, el cual NO hace nada.
Características de los Constructores

1.     Un constructor, tiene el mismo nombre de la clase a la cual pertenece.


2.     No puede ser Heredado.
3.     No retorna ningún valor (Ni void), por lo cual no debe especificarse
ningún tipo de dato.
4.     Debe declararse como public, sólo en casos realmente extraordinarios
será de otro tipo.
Constructores parametrizados
Los parámetros se agregan a un constructor de la misma manera que se agregan a un método: simplemente
declararlos dentro del paréntesis después del nombre del constructor.
Usando this()
Esto lo que hace es invocar a otro

constructor que este en la misma

clase y que soporte el conjunto de

parámetros que le pasamos.


Métodos

Los métodos y las funciones en Java están en capacidad de realizar las mismas tareas, es decir, son funcionalmente

idénticos, pero su diferencia radica en la manera en que hacemos uso de uno u otro (el contexto). Un método también

puede recibir valores, efectuar operaciones con estos y retornar valores, sin embargo, en método está asociado a un

objeto, siempre, básicamente un método es una función que pertenece a un objeto o clase, mientras que una función

existe por sí sola, sin necesidad de un objeto para ser usada.


Crear un método en Java

Declaración de un método
Un método consta de un encabezado y un cuerpo. Para declarar el encabezado de un método, basta con escribir el tipo que
retorna, seguido del nombre del método y entre paréntesis la lista de parámetros. 
Ejemplos:
• void imprimir(); este método no retorna nada y no tiene parámetros.
• int sumar(int a, int b); este método recibe dos parámetros de tipo int y retorna un int.
Parámetros 
Un método puede recibir cero, uno o más parámetros. Los parámetros, son datos de entrada que pueden ser rellenos en

la llamada al método. Dentro del cuerpo del método, los parámetros pueden ser usados como variables.  

Cuando se definen los parámetros de un método, se indica de qué tipo son. Cuando hay dos o más parámetros son

separados por comas. 

int sumar(int a, int b).


Llamar a los métodos
Herencia
"La herencia es un
mecanismo que permite
la definición de una
clase a partir de la
definición de otra ya
existente.

La herencia permite
compartir
automáticamente
métodos y datos entre
clases, subclases y
objetos."
Las tres clases tienen métodos y atributos comúnes, decimos que la herencia consiste en "sacar factor

común" para no escribir código de más, por tanto lo que haremos sera crearnos una clase con el "código

que es común a las tres clases" (a esta clase se le denomina en la herencia como "Clase Padre o

SuperClase") y el código que es  especifico de cada clase, lo dejaremos en ella, siendo denominadas

estas clases como "Clases Hijas", las cuales heredan de la clase padre todos los atributos y métodos

públicos o protegidos. Es muy importante decir que las clases hijas no van a heredar nunca los atributos

y métodos privados de la clase padre.


Clase Padre

Clase Hijas
•extends: indica a la clase hija cual va a ser su clase padre, es decir que por ejemplo en la clase Futbolista

al poner "public class Futbolista extends SeleccionFutbol" le estamos indicando a la clase 'Futbolista' que su

clase padre es la clase 'SeleccionFutbol' o dicho de otra manera para que se entienda mejor, al poner esto

estamos haciendo un "copy-paste dinámico" diciendo a la clase 'Futbolista' que se 'copie' todos los

atributos y métodos públicos o protegidos de la clase 'SeleccionFutbol'. De aquí viene esa 'definición' que

dimos de que la herencia en un 'copy-paste dinámico'.

•protected:  sirve para indicar un tipo de visibilidad de los atributos y métodos de la clase padre y

significa que cuando un atributo es 'protected' o protegido, solo es visible ese atributo o método desde

una de las clases hijas y no desde otra clase.

•super: funciona para llamar al constructor de la clase padre.

También podría gustarte