Programación 3: Clases y objetos en Java

24
TIPOS DE DATOS Clases y objetos Por: Daniel Gómez Jaramillo. Estructura de Archivos

Transcript of Programación 3: Clases y objetos en Java

Page 1: Programación 3: Clases y objetos en Java

TIPOS DE DATOSClases y objetos

Por:Daniel Gómez Jaramillo.

Estructura de Archivos

Page 2: Programación 3: Clases y objetos en Java

CONTENIDO

1. Abstracción de los lenguajes deprogramación.

2. Tipos abstractos de datos.

3. Especificación de los TAD.

4. Clases y objetos.

5. Declaración de una clase.

6. Paquetes.

7. Constructores.

8. Recolección de objetos

9. Objeto que envía el mensaje: this.

10. Miembros static de una clase.

11. Clase object.

12. Referencias bibliográficas.

13. Aplicación en Java.

Page 3: Programación 3: Clases y objetos en Java

ABSTRACCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de

lenguajes pueden implementar los modelos abstractos.

ABSTRACCIÓN: Permite distinguir las

características de los objetos: Atributos y

Métodos.

INVESTIGAR ()

REDACTAR ()

LEER ()

NOMBRE

DIRECCION

INDENTIFICACION

ABSTRACCIÓN: Ignorar

detalles específicos buscando

generalidades que ofrezcan

una perspectiva distinta, mas

favorable a su resolución.

Page 4: Programación 3: Clases y objetos en Java

ABSTRACCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

ABSTRACCIONES DE CONTROL

NIVEL DE SENTENCIA NIVEL POR PROCEDIMIENTO

En Java, la abstracción procedimental se

establece con los métodos o funciones

miembros de clases.

La abstracción a nivel de sentencia se

establece con sentencias condicionales y

sentencias repetitivas.

La evolución de los lenguajes de

programación ha permitido la aparición de

otros mecanismos para la abstracción de

control, como manejo de excepciones,

unidades concurrentes o plantillas.

OTROS MECANISMOS DE CONTROL

Page 5: Programación 3: Clases y objetos en Java

ABSTRACCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

ABSTRACCIONES DE DATOS

La abstracción de datos es la técnica de programación que permite inventar o definir nuevos tipos de datos

(tipos de datos definidos por el usuario) adecuados a la aplicación que se desea realizar.

Objetivo: simplificar el proceso de la programación. Lo hace

permitiendo al programador concentrarse sólo en los atributos

que son esenciales y le permite ignorar los que son

prescindibles.

Consideraciones esenciales:

Los datos que se involucran en el problema.

Las operaciones que se aplican sobre los datos

Los tipos de datos son abstracciones y el proceso de construir

nuevos tipos se llama abstracción de datos

Page 6: Programación 3: Clases y objetos en Java

TIPO ABSTRACTO DE DATO

Un tipo de datos definido por el programador se denomina tipo abstracto de datos (TAD) para

distinguirlo de los tipos predefinidos de datos. Los tipos abstractos de datos están formados por

los datos (estructuras de datos) y las operaciones (procedimientos o funciones) que se realizan

sobre esos datos.

Las principales ventajas que nos aportan los TAD son las siguientes:

Mejoran la conceptualización y hacen más claro y comprensible el código.

Hacen que el sistema sea más robusto.

Reducen el tiempo de compilación.

Permiten modificar la implementación sin que afecte al interfaz público.

Facilitan la extensibilidad.

Page 7: Programación 3: Clases y objetos en Java

TIPO ABSTRACTO DE DATO

struct TAD{

char Nombre[30];char correo[35];int edad;

};

class TAD{

public:string Nombre;string correo;int edad;

};

IMPLEMENTACION DE LOS TAD

C/C++ C++

Page 8: Programación 3: Clases y objetos en Java

CLASES Y OBJETOS

CLASE: es la abstracción de las propiedades y operaciones o acciones que ejecutan los objetos

del mundo real.

OBJETO: son las instancias de una clase.

Nombre de

la clase

Características

de la clase

VEHICULO

Marca

Referencia

Modelo

Placa

Color

Valor

Clase Objetos de la clase

Marca: Chevrolet

Referencia: Aveo

Modelo: 2010

Placa: AAB112

Color: Naranja

Valor: $20,000,000

Marca: Ford

Referencia: Fiesta

Modelo: 2017

Placa: DGM779

Color: Verde

Valor: $35,999,000

Objeto 1 Objeto 2

Cada objeto tiene valores propios para cada una de

las características de la Clase.

Los objetos que existen en el mundo real

pueden ser conceptuales o físicos.

Page 9: Programación 3: Clases y objetos en Java

DECLARACIÓN DE UNA CLASE

Una clase se representa en un modelo, como se observa a continuación:

Nombre Clase

Características

(Atributos)

Comportamiento

(Métodos)

Nombre Clase

Características

(Atributos)

Comportamiento

(Métodos)

Cabecera

Cuerpo

de la Clase

CLASE

class NombreClase{

}

Declaración de Atributos

Definición de Métodos

Page 10: Programación 3: Clases y objetos en Java

DECLARACIÓN DE UNA CLASE

Visibilidad de los métodos de una clase

Un principio fundamental en programación orientada a objetos es la ocultación de la información,

que significa que a determinados datos del interior de una clase no se puede acceder por métodos

externos a ella.

No accesibles desde

el exterior de la clase

(acceso denegado)

Privado

Accesible desde el

exterior de la clase

Publico

Datos o Métodos

Datos o Métodos

Las subclases si

pueden tener

acceso.

Protegido

Datos o Métodos

Page 11: Programación 3: Clases y objetos en Java

DECLARACIÓN DE UNA CLASE

Visibilidad de los métodos de una clase

Un principio fundamental en programación orientada a objetos es la ocultación de la información,

que significa que a determinados datos del interior de una clase no se puede acceder por métodos

externos a ella.

Tipo de

miembro

Miembro de la

misma clase

Miembro de una

clase derivada

Miembro de clase

del paquete

Miembro de clase

de otro paquete

Private X

En blanco X X

Protected X X X

Public X X X X

Visibilidad, “X” indica que el acceso está permitido.

Page 12: Programación 3: Clases y objetos en Java

DECLARACIÓN DE UNA CLASE

Métodos de una clase:

• Definen el comportamiento de una clase.

• Es la agrupación de un conjunto de instrucciones que resuelven una tarea en particular.

• Una invocación (llamada) activa ese comportamiento sobre un determinado objeto.

class Producto{

private int ID;private string Nombre;

Public void setID(int ID);Public void setNombre(String Nombre);Public int getID();Public String getNombre();

}

Page 13: Programación 3: Clases y objetos en Java

PAQUETES

Sentencia Package. Los paquetes son la forma que tiene Java de organizar los archivos con las

clases necesarias para construir las aplicaciones. Java incorpora varios paquetes, por ejemplo

java.util o java.io, con las clases básicas para construir programas.

Formato:

package NombrePaquete;

Las clases que se encuentran en los paquetes se identifican

utilizando el nombre del paquete, el selector punto (.) y, a

continuación, el nombre de la clase.

Import

Formato:

import IdentificacionPaquete.NombreClase;import IdentificacionPaquete.*;

Aunque aparezca la sentencia import paquete.*, el compilador genera

bytecode sólo para las clases utilizadas

Page 14: Programación 3: Clases y objetos en Java

CONSTRUCTORES

Un constructor es un método que se ejecuta automáticamente cuando se crea un objeto de una

clase. Sirve para inicializar los miembros de la clase.

El constructor tiene el mismo nombre que la clase. Cuando se define no se puede especificar un

valor de retorno, nunca devuelve un valor. Sin embargo, puede tomar cualquier número de

argumentos.

class Persona{

string nombre;int edad;public Persona(string nom, int ed) {

nombre = nom;edad = ed;

}}

Page 15: Programación 3: Clases y objetos en Java

CONSTRUCTORES

Reglas

Para crear un constructor:

1. El constructor tiene el mismo nombre que la clase.

2. Puede tener cero o mas argumentos.

3. No tiene tipo de retorno.

Constructor por defecto:

Java crea automáticamente un constructor por defecto cuando no existen otros

constructores.

Constructores sobrecargados :

Para prevenir a los usuarios de la clase de crear un objeto sin parámetros, se puede: (1)

omitir el constructor por defecto, o bien (2) hacer el constructor privado.

Page 16: Programación 3: Clases y objetos en Java

RECOLECCIÓN DE OBJETOS

Instancias de una clase:

En Java, un objeto siempre ha de estar referenciado por una variable; en el momento en que un

objeto deja de estar referenciado, se activa la rutina de recolección de memoria, se puede decir

que el objeto es liberado y la memoria que ocupa puede ser reutilizada.

Ejemplo:

Persona Eduardo = new Persona(“Eduardo”, 22);

Destrucción de un objeto:

La siguiente sentencia provoca que el objeto Eduardo sea liberado automáticamente:

Eduardo = null;

Page 17: Programación 3: Clases y objetos en Java

RECOLECCIÓN DE OBJETOS

Metodo finalize()

El método finalize() es especial, se llama automáticamente si ha sido definido en la clase,

justo antes que la memoria del objeto recolectado vaya a ser devuelta al sistema. El método no

es un destructor del objeto, no libera memoria; en algunas aplicaciones, se puede utilizar para

liberar ciertos recursos del sistema.

Ejemplo:

protected void finalize()

{

System.out.println("Fin de objeto…");

NroPersonas--;

}

Page 18: Programación 3: Clases y objetos en Java

OBJETO QUE ENVÍA EL MENSAJE: this

El uso más frecuente del this en Java tiene lugar cuando existe sobrecarga de nombres. La

sobrecarga de nombres se da cuando tenemos una variable local de un método o constructor, o

un parámetro formal de un método o constructor, con un nombre idéntico al de un campo de la

clase. Fundamentalmente, this tiene dos usos:

1. Seleccionar explícitamente un miembro de una clase con el fin de dar mas claridad o de

evitar colisión de identificadores.

class Triangulo {

private double base; private double altura;

public void datosTriangulo(double base, double altura) { this.base = base; this.altura = altura;

} }

Fundamentalmente, this tiene dos usos:

Page 19: Programación 3: Clases y objetos en Java

OBJETO QUE ENVÍA EL MENSAJE: this

El uso más frecuente del this en Java tiene lugar cuando existe sobrecarga de nombres. La

sobrecarga de nombres se da cuando tenemos una variable local de un método o constructor, o

un parámetro formal de un método o constructor, con un nombre idéntico al de un campo de la

clase. Fundamentalmente, this tiene dos usos:

2. Que un método devuelva el mismo objeto que lo llamó. De esa manera, se pueden hacer

llamadas en cascada a métodos de la misma clase.

class Triangulo {

private double base; private double altura;

public Triangulo datosTriangulo(double base, double altura) { this.base = base; this.altura = altura; return this;

} }

Fundamentalmente, this tiene dos usos:

Page 20: Programación 3: Clases y objetos en Java

MIEMBROS static DE UNA CLASE

Cada instancia de una clase, cada objeto, tiene su propia copia de las variables de la clase.

Cuando interese que haya miembros que no estén ligados a los objetos sino a la clase y, por

tanto, sean comunes a todos los objetos, estos se declaran static.

Variables static: Las variables de clase static son compartidas por todos los objetos de la clase.

Se declaran de igual manera que otra variable, añadiendo como prefijo la palabra reservada

static.

Métodos static: Los métodos de las clases se llaman a través de los objetos. En ocasiones

interesa definir métodos que estén controlados por la clase, de modo que no haga falta crear un

objeto para llamarlos: son los métodos static.

private static double base; private static double altura;

public static Triangulo datosTriangulo(double base, double altura) {}

Page 21: Programación 3: Clases y objetos en Java

CLASE object

Object es la superclase base de todas las clases de Java; toda clase definida en Java hereda de la

clase Object y, en consecuencia, toda variable referencia a una clase se convierte,

automáticamente, al tipo Object.

Ejemplo:

Object g; String cd = new String("Barranco la Parra");Integer y = new Integer(72); // objeto inicializado a 72 g = cd; // g referencia al mismo objeto que cd g = y; // g ahora referencia a un objeto Integer

La clase Object tiene dos métodos importantes: equals() y toString(). Generalmente, se

redefinen en las clases para especializarlos.

equals(): Compara el objeto que hace la llamada con el objeto que se pasa como argumento.

toString(): Este método construye una cadena, que es la representación del objeto.

Page 22: Programación 3: Clases y objetos en Java

REFERENCIAS BIBLIOGRÁFICAS

• Paredes, D. (2007). Tipos Abstractos de Datos (TAD). Obtenido de

David Paredes: http://www.davidparedes.es/2009/01/02/tipos-

abstractos-de-datos-tad/

• Joyanes, L., & Zahonero, I. (2008). Estructuras de datos. Mc Graw

Hill.

• Augusto, P. (2013). Java a fondo, 2da edición. Alfaomega.

• Deitel, H., & Deitel, P. (2004). Como programar en C/C++ y Java, cuarta edición.

Juarez: Pearson.

• Avella, C. (2013). Curso de POO en Java - clases y objetos. Obtenido de Slideshare:

http://es.slideshare.net/cpavella/6-clases-objetos

• Flores, C. (2015). Objetos y Clases. Obtenido de SlidePlayer:

http://slideplayer.es/slide/3957888/

Page 23: Programación 3: Clases y objetos en Java

APLICACIÓN EN JAVA

Se desea realizar una clase Vector3d que permita manipular vectores de tres componentes

(coordenadas x, y, z) de acuerdo con las siguientes normas:

• Posee un método constructor.

• Tiene un método miembro equals() que permite saber si dos vectores tienen sus componentes

o coordenadas iguales.

• Posee un método normamax() que permita obtener la norma de dos vectores (Nota: La norma de

un vector v = x, y, z es ( 𝑥2 + 𝑦2 + 𝑧2 ).

Page 24: Programación 3: Clases y objetos en Java

¡¡ GRACIAS !!

Programación III: Estructura de Archivos