Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GFI Informática
Parte 2
Orientación a Objetos
Clase I
• Define las características comunes a todos los objetos de un cierto
tipo, es decir, especifica los atributos y comportamientos comunes
para los objetos del mismo tipo.
• Es la “plantilla” que usamos para crear objetos.
• ATRIBUTOS
• Define el estado del objeto.
• COMPORTAMIENTO (métodos)
• Conjunto de acciones o operaciones que el objeto
puede realizar
Clase II
• Convenciones
• El nombre de la clase comienza con mayúscula y
cada palabra subsiguiente comienza también por
maýuscula
public class MiClase() { }
• El nombre de los métodos comienza en minúscula
y cada palabra subsiguiente comienza por
maýuscula.
objRectangulo.calcularArea();
Clase III
• Ejemplo
[Modificadores] class NombreClase [extends SuperClase] {
Clase IV
• Modificadores de clase I
Orientación a Objetos
Introducción POO I
• Muy de moda en los años 90 aunque la filosofía surgió en los años 60
(SmallTalk, etc). Pretende conseguir una visión mas cercana a la
realidad.
• Principales ventajas:
• Estructura de programas mas cercana a nuestra forma de
pensar.
• Se maximiza la reutilización de código.
• Considera todo como una serie de objetos con propiedades y
atributos.
Introducción POO II
• Características
• Java es un lenguaje totalmente orientado a objetos.
• En Java todo es un objeto, a excepción de los tipos básicos de
variables:
enteros, reales, char y boolean.
• Un programa es una agrupación de objetos, independientes
entre si, que dialogan entre ellos mediante mensajes.
• La POO permite abordar con más posibilidades de éxito y con
un menor coste temporal grandes proyectos de software,
simplificándole además la tarea al programador.
Paradigmas de la POO I
• Abstracción
• Consiste en abstraer conceptualmente los atributos y
comportamiento (métodos) comunes a un determinado conjunto
de objetos y almacenarlos en una clase (plantilla).
• Encapsulamiento.
• El encapsulamiento es el principio por el cual se ocultan los
detalles de implementación al usuario. Cada clase consta de:
· Interfaz: es la parte pública con la que interactúa el usuario
(métodos públicos)
· Implementación: es el código que realiza todas las
operaciones de la clase (métodos privados).
• Una ventaja importante, se puede modificar la implementación
sin modificar el interfaz público
• Fomenta la reusabilidad de código muy importante en Ingeniería
del software.
Paradigmas de la POO II
• Composición : “tiene un”
• Herencia : “es un”
• La herencia permite crear una clase nueva (subclase o clase
derivada) que tenga el mismo comportamiento que otra
(superclase o clase base) y además extienda o adapte ese
comportamiento a unas necesidades específicas.
• La nueva subclase heredará los atributos y los métodos de la
clase base, los cuales se añadirán a los definidos en la propia
subclase.
• Esquema jerárquico, permite la reutilización de código
• En JAVA, cualquier clase hereda de la clase que está en el
principio de la jerarquía, esta clase es Object.
• Polimorfismo.
• El Polimorfismo es la respuesta distinta frente a una llamada a
un método dependiendo de la naturaleza del objeto.
• Consiste en definir métodos distintos, que comparten el mismo
nombre, pero que se aplican a clases diferentes.
19 de abril de 2023 © GFI Informática Curso Java Página 15
Orientación a Objetos (POO)
Mamifero
Primate Canino
¡datos duplicados!
Variables
Identificadores
• Permiten nombrar los distintos elementos de un
programa
variables, objetos, clases, paquetes, interfaces
• Sintaxis:
Comienzan con letra (incluyendo _ y $)
Seguido de letras o dígitos
Cualquier longitud
Se distinguen mayúsculas de minúsculas
• Ejemplos:
x
_var1
MAXIMO
$Caractero
Variables
• Unidad básica de almacenamiento de información.
• Elementos cuyo valor puede cambiar durante el
programa
Declaración de variables I
• Declaración
tipo identificador;
tipo identificador [= valor_inicial] [, ident [=valor_ini] ] …;
• Ejemplos
int numero;
int max= 5;
boolean sino = true;
Declaración de variables II
• Especificadores de acceso
• private: Sólo pueden ser utilizadas dentro de la
clase donde son definidas.
• protected: Sólo pueden ser utilizadas dentro de la
clase donde son definidas y subclases de esta.
• public: Todas las clases pueden acceder a estas
variables.
• static
• Variable general de la clase, no de las instancias.
• Su valor es compartido por las instancias.
• final
• se emplea para definir constantes, un dato tipo
final no puede variar nunca su valor.
19 de abril de 2023 © GFI Informática Curso Java Página 35
Orientación a Objetos (POO)
Declaración de variables II
• Static
• Permite utilizar la variable stática fuera de la clase sin crear
el objeto a priori
• Cuando tu declaras una variable/metodo no-static, para
poder usarlo fuera de la clase
(siempre y cuando los atributos de acceso te lo permitan)
tienes que hacer primero una instancia de la clase y luego
accesar al metodo o variable, como en:
Objetos
Objetos y Mensajes
• ¿Qué son los Objetos?
• Los objetos son instancias de clases.
• ¿Qué son los Mensajes?
• Los objetos se comunican mediante mensajes (llamadas a
los métodos de las clases).
• Hay que enviar mensajes (métodos) a un objeto para que
realice algo.
• Los mensajes que pueden ser enviados son los que se
definen en la interfaz pública.
Objetos: Declaración
• No crea el objeto, sólo notifica al compilador el tipo
de variable.
Clase objClase;
La declaración de tipos primitivos reserva memoria.
La declaración de tipos NO primitivos no reserva
memoria.
Los objetos declarados no son objetos, sino punteros
a objetos.
Persona p;
num 5 x
y
rect
…
otroRect
Asignación
• Por valor int i 10
int i=10;
int j=i; int j
10
• Por referencia
Employe e=new Employee();
Employe x=e; x
Employe e
Employe x
…
Utilización de Objetos
• Los objetos se pueden utilizar después de ser
creados.
• Se puede controlar el acceso a variables y
métodos de una clase mediante los identificadores
private, protected.
• Se puede manipular sus variables (públicas).
objRectangulo.ancho
• Se puede llamar a sus métodos (públicos).
objRectangulo.calcularArea();
Métodos
Métodos I
• Definición
Funciones declaradas en la clase y que
determinan su comportamiento
tipoDevuelto nombreMetodo (listaParametros) {//instrucciones del método}
referenciaObjeto.nombreMetodo(listaArgumentos);
Métodos II
• Ejemplos
Métodos III
• Expresan el comportamiento de un objeto pudiendo cambiar su
estado.
• Normalmente su nombre comienza con un verbo.
• La información necesaria se pasa a través de parámetros.
• Los métodos pueden utilizar variables internas.
• Los métodos pueden retornar objetos.
• Java admite lo que se llama sobrecarga de métodos
Métodos Declaración I
• Especificadores de acceso
• private: Sólo pueden ser utilizados dentro de la clase donde son
definidos.
• protected: Sólo pueden ser utilizados dentro de la clase donde
son definidos y subclases de esta.
• public: Todas las clases pueden acceder a estos métodos.
• static
• Método general de la clase, no de las instancias.
• Existe sólo una copia en memoria compartida por las instancias.
• No pueden acceder a variables de la instancia
• final
• No puede ser sobrescrito por subclases.
• syncronized
• Para ser usado por threads y no causar problemas típicos de
multiproceso.
Métodos Declaración II
• Parámetros
• Se usan para pasar información a un método.
• Se debe declarar el tipo y nombre de cada uno.
• Se separan por comas.
• Pueden ser de cualquier tipo Java o cualquier Clase
declarada (import). Cuando se pasan Objetos por
parámetros se puede invocar los métodos de su clase
• Si el parámetro de entrada tiene el mismo nombre que
un atributo de la clase se utiliza “this” (referencia al
propio objeto)
Métodos Declaración IV
• Parámetros
• El lenguaje Java sólo pasa los argumentos de tipos
básicos por valor.
• Cuando se pasa un objeto instanciado como argumento
a un método, el valor del argumento es el puntero al
objeto.
• Los contenidos del objeto se pueden cambiar dentro del
método al que se ha llamado (los objetos se pasan por
referencia), pero el puntero no se puede cambiar.
Métodos Constructores
• Constructores
• Métodos con el mismo nombre de la clase.
• No retornan ningún objeto (void).
• Los constructores se emplean para inicializar los
valores de los objetos y realizar las operaciones que
sean necesarias para la generación de este objeto.
• Una clase puede tener varios constructores, todos
con el mismo nombre pero diferente cantidad o tipo
de parámetros.
• Java provee de un constructor por defecto.
Rectangulo r = new Rectangulo(300,200)
UML
Unified Modelling Language
UML I
• ¿Qué es UML?
• Unified Modelling Language. Notación estándar que
permite modelar visualmente todos los procesos
implicados en el análisis, diseño y desarrollo orientado a
objetos de un sistema.
• ¿Que es un diagrama de clases?
• Es un tipo de diagrama estático que describe la estructura
de un sistema mostrando sus clases, atributos y las
relaciones entre ellos.
• Son utilizados durante el proceso de análisis y diseño de
los sistemas, donde se crea el diseño conceptual de la
información que se manejará en el sistema, y los
componentes que se encargaran del funcionamiento y la
relación entre uno y otro.
19 de abril de 2023 © GFI Informática Curso Java Página 61
Orientación a Objetos (POO)
UML II
• Diagrama de Clases
UML III
• Diagrama de Casos de uso
UML IV
• Diagrama de interacción