Programación 3: Clases y objetos en Java

Angel Vázquez Patiño
Angel Vázquez PatiñoLecturer em Universidad de Cuenca
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
1 de 24

Recomendados

Programación Orientada a Objetos vs Programación Estructurada por
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
123.6K visualizações8 slides
P. estructurada vs. programación orientada a objetos por
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
23.7K visualizações7 slides
Programacion Orientada a Objetos por
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a ObjetosCesar David Fernandez Grueso
117.7K visualizações31 slides
Conceptos de POO (Programacion Orientada a Objetos) por
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
30.8K visualizações18 slides
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias por
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasJosé Antonio Sandoval Acosta
1.3K visualizações26 slides
Programación Orientada a Objetos - Resumen por
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
34.3K visualizações27 slides

Mais conteúdo relacionado

Mais procurados

2 2 estilos arquitectonicos por
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
44.8K visualizações35 slides
Ingenieria de software por
Ingenieria de softwareIngenieria de software
Ingenieria de softwareFrancisco Gómez
5.8K visualizações8 slides
Tipos de usuarios de base de datos diapositivas por
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasgrupo niche ortega
47.4K visualizações18 slides
Tópicos Avanzados de Programación - Unidad 1 GUI por
Tópicos Avanzados de Programación - Unidad 1 GUITópicos Avanzados de Programación - Unidad 1 GUI
Tópicos Avanzados de Programación - Unidad 1 GUIJosé Antonio Sandoval Acosta
7.9K visualizações47 slides
Creación de tablas y relaciones en mysql workbench por
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbenchJair Ospino Ardila
127.5K visualizações14 slides
Programación Orientada a Objetos -Unidad 6 archivos por
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosJosé Antonio Sandoval Acosta
4.1K visualizações39 slides

Mais procurados(20)

2 2 estilos arquitectonicos por landeta_p
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p44.8K visualizações
Ingenieria de software por Francisco Gómez
Ingenieria de softwareIngenieria de software
Ingenieria de software
Francisco Gómez5.8K visualizações
Tipos de usuarios de base de datos diapositivas por grupo niche ortega
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivas
grupo niche ortega47.4K visualizações
Creación de tablas y relaciones en mysql workbench por Jair Ospino Ardila
Creación de tablas y relaciones en mysql workbenchCreación de tablas y relaciones en mysql workbench
Creación de tablas y relaciones en mysql workbench
Jair Ospino Ardila127.5K visualizações
Estructura de registros por Roberto Contreras
Estructura de registrosEstructura de registros
Estructura de registros
Roberto Contreras4.9K visualizações
Componentes y Librerías - Tópicos avanzados de programación. por Giancarlo Aguilar
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar12K visualizações
Procesos Ligeros: Hilos o Hebras por J M
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
J M5.4K visualizações
Poo 3 herencia por jlmanmons
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
jlmanmons5.3K visualizações
GESTION DE PROCESOS Sistemas Operativos por adriel91
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
adriel9113.4K visualizações
PARADIGMA IMPERATIVO por Fredy Olaya
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
Fredy Olaya35.1K visualizações
Tópicos avanzados de programación eventos por Kanddy Mobylml
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
Kanddy Mobylml15.5K visualizações
Programación Orientada a Objetos - atributos y métodos por Alvaro Enrique Ruano
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
Alvaro Enrique Ruano33.4K visualizações
Sql presentacion por M. Angel Esteban
Sql presentacionSql presentacion
Sql presentacion
M. Angel Esteban4.6K visualizações
REGISTRO DE BANDERAS por Fabian Rojas
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
Fabian Rojas9K visualizações
Memoria Estatica por J M
Memoria EstaticaMemoria Estatica
Memoria Estatica
J M16.9K visualizações
Archivos y Directorios por Mayra Almache
Archivos y DirectoriosArchivos y Directorios
Archivos y Directorios
Mayra Almache3.1K visualizações

Similar a Programación 3: Clases y objetos en Java

Benita ppp unidad 1 por
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1TAtiizz Villalobos
405 visualizações42 slides
programacion orientada a objetos por
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
8.3K visualizações47 slides
FPJUCE - Capitulo2 por
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2Ing. Giovanny Moncayo
777 visualizações42 slides
7-Unidad 2. Elementos de una Clase por
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una ClaseLuis Fernando Aguas Bucheli
308 visualizações30 slides
Unidad 2 poo_clases_y_objetos por
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosRulox Quiñones
467 visualizações10 slides
Clases por
ClasesClases
ClasesAngelina Leal
619 visualizações15 slides

Similar a Programación 3: Clases y objetos en Java(20)

Benita ppp unidad 1 por TAtiizz Villalobos
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
TAtiizz Villalobos405 visualizações
programacion orientada a objetos por jent46
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent468.3K visualizações
Unidad 2 poo_clases_y_objetos por Rulox Quiñones
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetos
Rulox Quiñones467 visualizações
Clases por Angelina Leal
ClasesClases
Clases
Angelina Leal619 visualizações
Propiedades De La Poo por da4
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
da426K visualizações
Cesar adrian barrios alarcon unidad 2 por Cesar Mcfly
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
Cesar Mcfly89 visualizações
Lenguaje de programacion unidad 2 clases y objetos por Andres Herrera Rodriguez
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
Andres Herrera Rodriguez195 visualizações
Programación orientada a objetos con c++ por Karime Hernández
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
Karime Hernández544 visualizações
Programación Orientada a Objetos en Java - Parte I 2015 por Renny Batista
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
Renny Batista3.4K visualizações
Trabajo teorico de java por UNEFA
Trabajo teorico de javaTrabajo teorico de java
Trabajo teorico de java
UNEFA243 visualizações
[ES] Programación orientada a objeto con java por Eudris Cabrera
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
Eudris Cabrera3.3K visualizações
Apunte paradigma orientado a objetos por Alejandro Canosa
Apunte paradigma orientado a objetosApunte paradigma orientado a objetos
Apunte paradigma orientado a objetos
Alejandro Canosa63 visualizações
Proyecto en android completado por Kai Exo
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
Kai Exo808 visualizações
Programacion por jalfonso9971
ProgramacionProgramacion
Programacion
jalfonso997142 visualizações
Programacion orientada-a-objetos por Don Augusto
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
Don Augusto409 visualizações

Mais de Angel Vázquez Patiño

Funciones, límites y continuidad por
Funciones, límites y continuidadFunciones, límites y continuidad
Funciones, límites y continuidadAngel Vázquez Patiño
300 visualizações340 slides
Integral definida e integración por
Integral definida e integraciónIntegral definida e integración
Integral definida e integraciónAngel Vázquez Patiño
15 visualizações136 slides
Valores extremos y comportamiento de las funciones y de sus gráficas por
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
90 visualizações122 slides
Derivada y diferenciación por
Derivada y diferenciaciónDerivada y diferenciación
Derivada y diferenciaciónAngel Vázquez Patiño
112 visualizações147 slides
Causality and climate networks approaches for evaluating climate models, trac... por
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
111 visualizações48 slides
Diferencias finitas y Ecuación de calor por
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorAngel Vázquez Patiño
744 visualizações35 slides

Mais de Angel Vázquez Patiño(20)

Funciones, límites y continuidad por Angel Vázquez Patiño
Funciones, límites y continuidadFunciones, límites y continuidad
Funciones, límites y continuidad
Angel Vázquez Patiño300 visualizações
Valores extremos y comportamiento de las funciones y de sus gráficas por Angel Vázquez Patiño
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficas
Angel Vázquez Patiño90 visualizações
Causality and climate networks approaches for evaluating climate models, trac... por Angel Vázquez Patiño
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...
Angel Vázquez Patiño111 visualizações
Diferencias finitas y Ecuación de calor por Angel Vázquez Patiño
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calor
Angel Vázquez Patiño744 visualizações
Puntos ordinarios y singularidades de una EDO lineal por Angel Vázquez Patiño
Puntos ordinarios y singularidades de una EDO linealPuntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO lineal
Angel Vázquez Patiño331 visualizações
La ecuación diferencial de Legendre por Angel Vázquez Patiño
La ecuación diferencial de LegendreLa ecuación diferencial de Legendre
La ecuación diferencial de Legendre
Angel Vázquez Patiño750 visualizações
Métodos de resolución de EDOs mediante series por Angel Vázquez Patiño
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante series
Angel Vázquez Patiño74 visualizações
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d... por Angel Vázquez Patiño
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Angel Vázquez Patiño20 visualizações
Problemas que originan sistemas de ecuaciones por Angel Vázquez Patiño
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuaciones
Angel Vázquez Patiño39 visualizações
Linealización de sistemas de primer orden por Angel Vázquez Patiño
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer orden
Angel Vázquez Patiño373 visualizações
Fundamentos de Computación y Programación por Angel Vázquez Patiño
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y Programación
Angel Vázquez Patiño115 visualizações
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri... por Angel Vázquez Patiño
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Angel Vázquez Patiño51 visualizações

Último

Diagrama de Flujo Desarrollo de tienda digital por
Diagrama de Flujo Desarrollo de tienda digital Diagrama de Flujo Desarrollo de tienda digital
Diagrama de Flujo Desarrollo de tienda digital EdwinMedina70
19 visualizações1 slide
EVALUACIÓN CONSOLIDADO 2.pdf por
EVALUACIÓN CONSOLIDADO 2.pdfEVALUACIÓN CONSOLIDADO 2.pdf
EVALUACIÓN CONSOLIDADO 2.pdfMatematicaFisicaEsta
21 visualizações2 slides
T6_EJERCICIOS (2).pdf por
T6_EJERCICIOS (2).pdfT6_EJERCICIOS (2).pdf
T6_EJERCICIOS (2).pdfMatematicaFisicaEsta
10 visualizações3 slides
MONOGRAFIA MATE II.docx por
MONOGRAFIA MATE II.docxMONOGRAFIA MATE II.docx
MONOGRAFIA MATE II.docxJuanpiminchumo1
8 visualizações14 slides
S6_TAREA_SET_B_CONTS1202 (1).pdf por
S6_TAREA_SET_B_CONTS1202 (1).pdfS6_TAREA_SET_B_CONTS1202 (1).pdf
S6_TAREA_SET_B_CONTS1202 (1).pdfMatematicaFisicaEsta
17 visualizações3 slides
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docx por
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docxPRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docx
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docxMatematicaFisicaEsta
43 visualizações1 slide

Último(20)

Diagrama de Flujo Desarrollo de tienda digital por EdwinMedina70
Diagrama de Flujo Desarrollo de tienda digital Diagrama de Flujo Desarrollo de tienda digital
Diagrama de Flujo Desarrollo de tienda digital
EdwinMedina7019 visualizações
EVALUACIÓN CONSOLIDADO 2.pdf por MatematicaFisicaEsta
EVALUACIÓN CONSOLIDADO 2.pdfEVALUACIÓN CONSOLIDADO 2.pdf
EVALUACIÓN CONSOLIDADO 2.pdf
MatematicaFisicaEsta21 visualizações
MONOGRAFIA MATE II.docx por Juanpiminchumo1
MONOGRAFIA MATE II.docxMONOGRAFIA MATE II.docx
MONOGRAFIA MATE II.docx
Juanpiminchumo18 visualizações
S6_TAREA_SET_B_CONTS1202 (1).pdf por MatematicaFisicaEsta
S6_TAREA_SET_B_CONTS1202 (1).pdfS6_TAREA_SET_B_CONTS1202 (1).pdf
S6_TAREA_SET_B_CONTS1202 (1).pdf
MatematicaFisicaEsta17 visualizações
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docx por MatematicaFisicaEsta
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docxPRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docx
PRACTICA CALIFICADA DE RECUPERACION CURSO ESTADISTICA 2023-II.docx
MatematicaFisicaEsta43 visualizações
Diagrama de Flujo Luis Campos.pptx por LuisCampos280866
Diagrama de Flujo Luis Campos.pptxDiagrama de Flujo Luis Campos.pptx
Diagrama de Flujo Luis Campos.pptx
LuisCampos28086610 visualizações
Expresiones algebraicas.pptx por dilensanchez1
Expresiones algebraicas.pptxExpresiones algebraicas.pptx
Expresiones algebraicas.pptx
dilensanchez18 visualizações
examen final de estadistica hoy 4.pdf por MatematicaFisicaEsta
examen final de estadistica hoy 4.pdfexamen final de estadistica hoy 4.pdf
examen final de estadistica hoy 4.pdf
MatematicaFisicaEsta55 visualizações
Portfolio 4 LAMM-PSARIANOS-MAILANDER.pdf por FRANCISCOJUSTOSIERRA
Portfolio 4 LAMM-PSARIANOS-MAILANDER.pdfPortfolio 4 LAMM-PSARIANOS-MAILANDER.pdf
Portfolio 4 LAMM-PSARIANOS-MAILANDER.pdf
FRANCISCOJUSTOSIERRA9 visualizações
ABP _ 3ra Nota _ Problemas Financieros.pdf por matepura
ABP _ 3ra Nota _ Problemas Financieros.pdfABP _ 3ra Nota _ Problemas Financieros.pdf
ABP _ 3ra Nota _ Problemas Financieros.pdf
matepura16 visualizações
diagrama de flujo.pptx por yeidrerazuaje1
diagrama de flujo.pptxdiagrama de flujo.pptx
diagrama de flujo.pptx
yeidrerazuaje114 visualizações
S7_TAREA_SET_B_CONTS1202 (1).pdf por matepura
S7_TAREA_SET_B_CONTS1202  (1).pdfS7_TAREA_SET_B_CONTS1202  (1).pdf
S7_TAREA_SET_B_CONTS1202 (1).pdf
matepura16 visualizações
PA3 TAREA 2023-20-B (1).docx por MatematicaFisicaEsta
PA3 TAREA 2023-20-B (1).docxPA3 TAREA 2023-20-B (1).docx
PA3 TAREA 2023-20-B (1).docx
MatematicaFisicaEsta31 visualizações
6.4 prevencion y correción de falla en taludes.pptx por HernanSuarezCastillo2
6.4 prevencion y correción de falla en taludes.pptx6.4 prevencion y correción de falla en taludes.pptx
6.4 prevencion y correción de falla en taludes.pptx
HernanSuarezCastillo220 visualizações

Programación 3: Clases y objetos 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