Sunteți pe pagina 1din 24

TIPOS DE DATOS

Clases y objetos

Por:
Daniel Gómez Jaramillo.
Estructura de Archivos
CONTENIDO
1. Abstracción de los lenguajes de 10. Miembros static de una clase.
programación.
11. Clase object.
2. Tipos abstractos de datos.
12. Referencias bibliográficas.
3. Especificación de los TAD.
13. Aplicación en Java.
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.
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.
REDACTAR ()
INDENTIFICACION

LEER ()
ABSTRACCIÓN: Ignorar
detalles específicos buscando
NOMBRE generalidades que ofrezcan
una perspectiva distinta, mas
favorable a su resolución.
INVESTIGAR () DIRECCION
ABSTRACCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

ABSTRACCIONES DE CONTROL

NIVEL DE SENTENCIA NIVEL POR PROCEDIMIENTO

La abstracción a nivel de sentencia se En Java, la abstracción procedimental se


establece con sentencias condicionales y establece con los métodos o funciones
sentencias repetitivas. miembros de clases.

OTROS MECANISMOS DE CONTROL


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.
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
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.
TIPO ABSTRACTO DE DATO

IMPLEMENTACION DE LOS TAD

struct TAD class TAD


{ {
char Nombre[30]; public:
char correo[35]; string Nombre;
int edad; string correo;
}; int edad;
};
C/C++ C++
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.

Clase Objetos de la clase


Nombre de VEHICULO Objeto 1 Objeto 2
la clase
Marca Marca: Chevrolet Marca: Ford
Referencia Referencia: Aveo Referencia: Fiesta
Características Modelo Modelo: 2010 Modelo: 2017
de la clase Placa Placa: AAB112 Placa: DGM779
Color Color: Naranja Color: Verde
Valor Valor: $20,000,000 Valor: $35,999,000

Los objetos que existen en el mundo real


pueden ser conceptuales o físicos. Cada objeto tiene valores propios para cada una de
las características de la Clase.
DECLARACIÓN DE UNA CLASE

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

Cabecera
Nombre Clase class NombreClase
{
Características
(Atributos) Declaración de Atributos
Cuerpo
de la Clase Definición de Métodos
Comportamiento
(Métodos)
}

CLASE
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 Privado Las subclases si Protegido


el exterior de la clase pueden tener
(acceso denegado) Datos o Métodos acceso. Datos o Métodos

Publico
Accesible desde el
exterior de la clase Datos o Métodos
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.

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

Tipo de Miembro de la Miembro de una Miembro de clase Miembro de clase


miembro misma clase clase derivada del paquete de otro paquete
Private X
En blanco X X
Protected X X X
Public X X X X
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();
}
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;

Import
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.
Formato:
import IdentificacionPaquete.NombreClase;
import IdentificacionPaquete.*;

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


bytecode sólo para las clases utilizadas
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;
}
}
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.
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;
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--;
}
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:
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;
}
}
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:
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;
}
}
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.
private static double base;
private static double altura;

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.
public static Triangulo datosTriangulo(double base, double altura) {}
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.
REFERENCIAS BIBLIOGRÁFICAS

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


Hill.
• Paredes, D. (2007). Tipos Abstractos de Datos (TAD). Obtenido de
David Paredes: http://www.davidparedes.es/2009/01/02/tipos-
abstractos-de-datos-tad/

• 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/
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 ).
¡¡ GRACIAS !!

Programación III: Estructura de Archivos

S-ar putea să vă placă și