SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
TIPOS DE DATOS
Clases y objetos
Por:
Daniel Gómez Jaramillo.
Estructura de Archivos
CONTENIDO
1. Abstracción de los lenguajes de
programació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.
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.
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
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
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++
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.
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
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
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.
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;
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
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:
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:
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:
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) {}
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
• 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/
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

Más contenido relacionado

La actualidad más candente

encapsulamiento
encapsulamientoencapsulamiento
encapsulamientozeta2015
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de javainnovalabcun
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físicoerrroman
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosJorge Garcia
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaBigbossH
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: ListaEmerson Garay
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Cuestionario
CuestionarioCuestionario
CuestionarioJose Nava
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisisinnovalabcun
 

La actualidad más candente (20)

encapsulamiento
encapsulamientoencapsulamiento
encapsulamiento
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
diseño lógico y diseño físico
diseño lógico y diseño físicodiseño lógico y diseño físico
diseño lógico y diseño físico
 
Java colecciones
Java coleccionesJava colecciones
Java colecciones
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y Salida
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Diagramas Analisis
Diagramas AnalisisDiagramas Analisis
Diagramas Analisis
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 

Destacado

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosJavier Camacho
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractoserwin_alexander
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En JavaEmilio Aviles Avila
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Walter Javier Franck
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre ObjetosEmilio Aviles Avila
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosLuis Lastra Cid
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datosJose Armando
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosJosé Antonio Sandoval Acosta
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 

Destacado (20)

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Clase5
Clase5Clase5
Clase5
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
Joomla
JoomlaJoomla
Joomla
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
Curso Java Inicial 1 POO
Curso Java Inicial   1 POOCurso Java Inicial   1 POO
Curso Java Inicial 1 POO
 
Poo
PooPoo
Poo
 
Tipos de Datos Abstractos.
Tipos de Datos Abstractos.Tipos de Datos Abstractos.
Tipos de Datos Abstractos.
 
Programación!! . .
Programación!! . .Programación!! . .
Programación!! . .
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Tipos abstractos de datos
Tipos abstractos de datosTipos abstractos de datos
Tipos abstractos de datos
 
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 

Similar a Tipos de datos y clases en Java

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosRulox Quiñones
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2 Cesar Mcfly
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosAndres Herrera Rodriguez
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Trabajo teorico de java
Trabajo teorico de javaTrabajo teorico de java
Trabajo teorico de javaUNEFA
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con javaEudris Cabrera
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetosAlejandro Canosa
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetosDon Augusto
 

Similar a Tipos de datos y clases en Java (20)

Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetos
 
Clases
ClasesClases
Clases
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Trabajo teorico de java
Trabajo teorico de javaTrabajo teorico de java
Trabajo teorico de java
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Apunte paradigma orientado a objetos
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetos
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 

Más de Daniel Gomez Jaramillo

Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...Daniel Gomez Jaramillo
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Daniel Gomez Jaramillo
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCDaniel Gomez Jaramillo
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosDaniel Gomez Jaramillo
 

Más de Daniel Gomez Jaramillo (16)

DotVVM Fundamentals
DotVVM FundamentalsDotVVM Fundamentals
DotVVM Fundamentals
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
Microsoft Cognitive Services y el lado humano de las aplicaciones inteligentes.
 
HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure. HTML y Alojamiento en Azure.
HTML y Alojamiento en Azure.
 
Internet y seguridad en redes
Internet y seguridad en redesInternet y seguridad en redes
Internet y seguridad en redes
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
 
Colecciones en Scala
Colecciones en ScalaColecciones en Scala
Colecciones en Scala
 
Codificación de Huffman
Codificación de Huffman Codificación de Huffman
Codificación de Huffman
 
Algoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivosAlgoritmos de ordenamiento externo sobre archivos
Algoritmos de ordenamiento externo sobre archivos
 
Reproductor de música DG Player
Reproductor de música DG PlayerReproductor de música DG Player
Reproductor de música DG Player
 
Colecciones en Python
Colecciones en PythonColecciones en Python
Colecciones en Python
 
Paradigmas de la programación
Paradigmas de la programación Paradigmas de la programación
Paradigmas de la programación
 
Fuerzas de rozamiento
Fuerzas de rozamientoFuerzas de rozamiento
Fuerzas de rozamiento
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Programación dinámica
Programación dinámicaProgramación dinámica
Programación dinámica
 

Tipos de datos y clases en Java

  • 1. TIPOS DE DATOS Clases y objetos Por: Daniel Gómez Jaramillo. Estructura de Archivos
  • 2. CONTENIDO 1. Abstracción de los lenguajes de programació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.
  • 3. 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.
  • 4. 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
  • 5. 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
  • 6. 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.
  • 7. 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++
  • 8. 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.
  • 9. 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
  • 10. 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
  • 11. 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.
  • 12. 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(); }
  • 13. 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
  • 14. 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; } }
  • 15. 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.
  • 16. 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;
  • 17. 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--; }
  • 18. 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:
  • 19. 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:
  • 20. 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) {}
  • 21. 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.
  • 22. 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/
  • 23. 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 ).
  • 24. ¡¡ GRACIAS !! Programación III: Estructura de Archivos