SlideShare una empresa de Scribd logo
1 de 27
Estructuras, clases, encapsulado, métodos, instancias, herencias Mayo 2011 Fernando Di Bartolo
Estructuras
Estructuras Es una colección de una o mas variables de iguales o diferentes tipo Ayudan a organizar un conjunto de datos complicados Trata a esa colección de variables como a una única unidad
Estructuras Ejemplostructpunto {int x;int y;}; La palabra reservada struct presenta la declaración de la estructura, mientras que punto es el nombre o rótulo de la misma. Las variables x e y, son denominadas miembros.
Estructuras Declaración e inicializaciónstruct punto p1;struct punto p2 = {10, 35};	p1.x = 24;	p1.y = 43;El operador ‘.’ conecta al nombre de la estructura con el nombre del miembro
Estructuras Estructuras anidadasstructrect {struct punto p1;struct punto p2;	};structrectpantalla;	pantalla.p1.x = 200;	pantalla.p2.y = 180;
Clases
Clases Permite modelar objetos de la vida real Se representan a través de sus atributos o miembros de datos, y sus comportamientos o funciones miembro. Permite aislar comportamiento que no es de interés para los clientes de dicha clase
Datos  Métodos  Clases Struct vs Class struct Time { int hora; int minutos; }; class Time { private: int hora; int minutos;      public: Time(); void setTime(int, int); 	void printTime(); };
Clases Encapsulamiento Modificadores de acceso: public Datos y funciones miembros son accesibles desde cualquier clase dentro del programa private Datos y funciones miembro solo son accesibles desde dentro de la clase protected Datos y funciones miembro son accesibles desde dentro de la clase, como así también desde clases derivadas de ella
Clases La clase puede ser la responsable de asegurar la integridad de sus datos class Time { private: int hora; int min;      public: void setTime(int, int); … }; void Time::setTime(int h, int m) {       hora = (h>=0 && h<24) ? h : 0;       min = (m>=0 && h<60) ? m : 0; }
Clases Métodos o funciones miembro Representan acciones de la clase Aquellos que son públicos, hacen a la interfaz de la clase Existen otros métodos «de utilería» los cuales son usados para operaciones internas de la clase, invocados desde otros métodos
Clases Ejemplo: class Time { private: int hora; int min;      public: void printTime(); … }; void Time::printTime() { cout << ‘’La hora es ’’ << hora                << ‘’:’’ << min << endl; }
Clases Sobrecarga de métodos class Time { private: int hora; int min;      public: void printTime(); void printTime(bool); 	… }; void Time::printTime() { cout << hora << ‘’:’’ << min << endl; } void Time::printTime(boolisMilitary) { if (isMilitary) {                   //lógica conversión     }	 cout << hora << ‘’:’’ << min << endl; }
Clases Sobrecarga de métodos, otro ejemplo classCalculator { private:          …      public: int Sumar(int, int); float Sumar(float, float);          … }; intCalculator::Sumar(int a, int b) { return (a+b); } floatCalculator::Sumar        (float a, float b) { return (a+b); }
Clases Constructor Es una función miembro especial, que lleva el mismo nombre de la clase (C++) Se ejecuta automáticamente cuando se crea una instancia de la clase Entre otras cosas, se puede utilizar para inicializar los miembros de datos de la clase No tiene valor de retorno Time::Time() {       hora = min = 0; }
Clases Destructor Es otra función miembro especial, que lleva el mismo nombre de la clase, antepuesto por el tilde ~ Se invoca automáticamente cuando el objeto sale del alcance Ejecuta trabajos de terminación, antes de que el sistema recupere el espacio de memoria ocupado No recibe parámetros, ni tiene valor de retorno Time::~Time() {       //lógica específica aquí }
Herencia
Herencia Es una forma de reutilización de software donde nuevas clases son creadas a partir de otras, heredando su comportamiento La clase ya definida es la clase base, mientras que la heredera es la clase derivada Los datos y métodos protegidos (protected) de una clase base, son accesibles por la clase derivada.
Herencia Herencia simple                                                                                                                   clase baseclases derivadaspublic Auto: public Vehículo {…}; Vehículo Camión Auto Moto
Herencia public Vehículo {   public:        Vehículo(int);         void PrintCantRuedas();private:int _r;   };public Moto : public Vehículo {    public:        Moto();};public Auto : public Vehículo {    public:        Auto();}; Vehículo::Vehículo (int r) { _r = r;  } void Vehículo::PrintCantRuedas () { cout << ‘’Cantidad ruedas: ’’ << _r << endl; } Moto::Moto() : Vehículo(2) {} Auto::Auto() : Vehículo(4) {}
Herencia main(){     Auto a;     Moto m;cout << ‘’Auto’’ << endl;a.PrintCantRuedas();cout << ‘’Moto’’ << endl;m.PrintCantRuedas();} Auto Cantidad ruedas: 4 Moto Cantidad ruedas: 2 Salida
Herencia public Vehículo {   public:        Vehículo(int);         void PrintCantRuedas();        void PrintLetraColor();private:int _r;   protected:char _c;}; public Moto {                                        public Auto {    public:			           public:        Moto(); Auto(); void SetLetraColor(char);		 voidSetLetraColor(char);}; 				      }; void Vehículo::PrintLetraColor () { cout << ‘’Letra color: ’’ << _c << endl; } void (Moto/Auto)::SetLetraColor(charc) { _c = c; }
Herencia main(){     Auto a;     Moto m;cout << ‘’Auto’’ << endl;a.PrintCantRuedas();a.SetLetraColor(‘R’);a.PrintLetraColor();cout << ‘’Moto’’ << endl;m.PrintCantRuedas();m.SetLetraColor(‘V’);m.PrintLetraColor();} Auto Cantidad ruedas: 4 Letra color: R Moto Cantidad ruedas: 2 Letra color: V Salida
Herencia Redefinición de funciones miembro de clase base en clase derivada public Vehículo {    public:        …         void PrintLetraColor();}; public Moto : public Vehículo {                public Auto : public Vehículo {     public:			                 public:           …				 	       …          void PrintLetraColor();		       void PrintLetraColor();}; 				             };
Herencia Clase base directa e indirectaAuto hereda directamente de vehículoSedan hereda directamente de autoSedan hereda indirectamente de vehículo Vehículo Auto Sedan
Herencia Herencia múltipleLa clase Anfibio hereda funcionalidad tanto de Vehículo (Andar) como así también de Embarcación (Navegar)                public Anfibio: public Vehículo, public Embarcación 	{ … }; Embarcación Vehículo Velero Barco Auto Anfibio Moto

Más contenido relacionado

La actualidad más candente

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
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Arreglos en java v01
Arreglos en java v01Arreglos en java v01
Arreglos en java v01Emerson Garay
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje JavaNetwork Sens
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosAntonio Palomares Sender
 
Abstracción de datos en java
Abstracción de datos en java Abstracción de datos en java
Abstracción de datos en java Izayoi Sakamaki
 
Clases Abstractas Pc
Clases Abstractas PcClases Abstractas Pc
Clases Abstractas Pcguest28ee92
 
2 POO Presentación
2 POO Presentación2 POO Presentación
2 POO Presentaciónguest7b7e934
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Andres Garcia Garcia
 

La actualidad más candente (20)

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
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Arreglos en Java
Arreglos en JavaArreglos en Java
Arreglos en Java
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
Arreglos en java v01
Arreglos en java v01Arreglos en java v01
Arreglos en java v01
 
02 Bases Del Lenguaje Java
02   Bases Del Lenguaje Java02   Bases Del Lenguaje Java
02 Bases Del Lenguaje Java
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Abstracción de datos en java
Abstracción de datos en java Abstracción de datos en java
Abstracción de datos en java
 
Video 1 metodos y arreglos
Video 1 metodos y arreglosVideo 1 metodos y arreglos
Video 1 metodos y arreglos
 
Clases Abstractas Pc
Clases Abstractas PcClases Abstractas Pc
Clases Abstractas Pc
 
Tema3 p2%20
Tema3 p2%20Tema3 p2%20
Tema3 p2%20
 
2 POO Presentación
2 POO Presentación2 POO Presentación
2 POO Presentación
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Tema2
Tema2Tema2
Tema2
 
Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
 

Similar a Estructuras y clases

Patrones de diseño.pptx
Patrones de diseño.pptxPatrones de diseño.pptx
Patrones de diseño.pptxgigoallspam1
 
Presentación arraysobjetos
Presentación arraysobjetosPresentación arraysobjetos
Presentación arraysobjetossilsilvetti
 
Funciones amigas
Funciones amigasFunciones amigas
Funciones amigasdaosma
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion Cont5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion ContUVM
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructurasjeoselyn
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Alexandra Pérez
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetosDon Augusto
 
Visual basic
Visual basicVisual basic
Visual basicmellcv
 
Computacion estructuras
Computacion estructurasComputacion estructuras
Computacion estructurasManuel
 

Similar a Estructuras y clases (20)

Cplus
CplusCplus
Cplus
 
Patrones de diseño.pptx
Patrones de diseño.pptxPatrones de diseño.pptx
Patrones de diseño.pptx
 
Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)
 
Oo basico
Oo basicoOo basico
Oo basico
 
Presentación arraysobjetos
Presentación arraysobjetosPresentación arraysobjetos
Presentación arraysobjetos
 
MéTodos
MéTodosMéTodos
MéTodos
 
MéTodos
MéTodosMéTodos
MéTodos
 
MéTodos
MéTodosMéTodos
MéTodos
 
Funciones amigas
Funciones amigasFunciones amigas
Funciones amigas
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion Cont5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion Cont
 
Parámetro
ParámetroParámetro
Parámetro
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructuras
 
Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)Clases abstractas e interfaces (AlexandraPerez)
Clases abstractas e interfaces (AlexandraPerez)
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Funcionesclase1
Funcionesclase1Funcionesclase1
Funcionesclase1
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Atributos
AtributosAtributos
Atributos
 
Visual basic
Visual basicVisual basic
Visual basic
 
Computacion estructuras
Computacion estructurasComputacion estructuras
Computacion estructuras
 

Último

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 

Último (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 

Estructuras y clases

  • 1. Estructuras, clases, encapsulado, métodos, instancias, herencias Mayo 2011 Fernando Di Bartolo
  • 3. Estructuras Es una colección de una o mas variables de iguales o diferentes tipo Ayudan a organizar un conjunto de datos complicados Trata a esa colección de variables como a una única unidad
  • 4. Estructuras Ejemplostructpunto {int x;int y;}; La palabra reservada struct presenta la declaración de la estructura, mientras que punto es el nombre o rótulo de la misma. Las variables x e y, son denominadas miembros.
  • 5. Estructuras Declaración e inicializaciónstruct punto p1;struct punto p2 = {10, 35}; p1.x = 24; p1.y = 43;El operador ‘.’ conecta al nombre de la estructura con el nombre del miembro
  • 6. Estructuras Estructuras anidadasstructrect {struct punto p1;struct punto p2; };structrectpantalla; pantalla.p1.x = 200; pantalla.p2.y = 180;
  • 8. Clases Permite modelar objetos de la vida real Se representan a través de sus atributos o miembros de datos, y sus comportamientos o funciones miembro. Permite aislar comportamiento que no es de interés para los clientes de dicha clase
  • 9. Datos Métodos Clases Struct vs Class struct Time { int hora; int minutos; }; class Time { private: int hora; int minutos; public: Time(); void setTime(int, int); void printTime(); };
  • 10. Clases Encapsulamiento Modificadores de acceso: public Datos y funciones miembros son accesibles desde cualquier clase dentro del programa private Datos y funciones miembro solo son accesibles desde dentro de la clase protected Datos y funciones miembro son accesibles desde dentro de la clase, como así también desde clases derivadas de ella
  • 11. Clases La clase puede ser la responsable de asegurar la integridad de sus datos class Time { private: int hora; int min; public: void setTime(int, int); … }; void Time::setTime(int h, int m) { hora = (h>=0 && h<24) ? h : 0; min = (m>=0 && h<60) ? m : 0; }
  • 12. Clases Métodos o funciones miembro Representan acciones de la clase Aquellos que son públicos, hacen a la interfaz de la clase Existen otros métodos «de utilería» los cuales son usados para operaciones internas de la clase, invocados desde otros métodos
  • 13. Clases Ejemplo: class Time { private: int hora; int min; public: void printTime(); … }; void Time::printTime() { cout << ‘’La hora es ’’ << hora << ‘’:’’ << min << endl; }
  • 14. Clases Sobrecarga de métodos class Time { private: int hora; int min; public: void printTime(); void printTime(bool); … }; void Time::printTime() { cout << hora << ‘’:’’ << min << endl; } void Time::printTime(boolisMilitary) { if (isMilitary) { //lógica conversión } cout << hora << ‘’:’’ << min << endl; }
  • 15. Clases Sobrecarga de métodos, otro ejemplo classCalculator { private: … public: int Sumar(int, int); float Sumar(float, float); … }; intCalculator::Sumar(int a, int b) { return (a+b); } floatCalculator::Sumar (float a, float b) { return (a+b); }
  • 16. Clases Constructor Es una función miembro especial, que lleva el mismo nombre de la clase (C++) Se ejecuta automáticamente cuando se crea una instancia de la clase Entre otras cosas, se puede utilizar para inicializar los miembros de datos de la clase No tiene valor de retorno Time::Time() { hora = min = 0; }
  • 17. Clases Destructor Es otra función miembro especial, que lleva el mismo nombre de la clase, antepuesto por el tilde ~ Se invoca automáticamente cuando el objeto sale del alcance Ejecuta trabajos de terminación, antes de que el sistema recupere el espacio de memoria ocupado No recibe parámetros, ni tiene valor de retorno Time::~Time() { //lógica específica aquí }
  • 19. Herencia Es una forma de reutilización de software donde nuevas clases son creadas a partir de otras, heredando su comportamiento La clase ya definida es la clase base, mientras que la heredera es la clase derivada Los datos y métodos protegidos (protected) de una clase base, son accesibles por la clase derivada.
  • 20. Herencia Herencia simple clase baseclases derivadaspublic Auto: public Vehículo {…}; Vehículo Camión Auto Moto
  • 21. Herencia public Vehículo { public: Vehículo(int); void PrintCantRuedas();private:int _r; };public Moto : public Vehículo { public: Moto();};public Auto : public Vehículo { public: Auto();}; Vehículo::Vehículo (int r) { _r = r; } void Vehículo::PrintCantRuedas () { cout << ‘’Cantidad ruedas: ’’ << _r << endl; } Moto::Moto() : Vehículo(2) {} Auto::Auto() : Vehículo(4) {}
  • 22. Herencia main(){ Auto a; Moto m;cout << ‘’Auto’’ << endl;a.PrintCantRuedas();cout << ‘’Moto’’ << endl;m.PrintCantRuedas();} Auto Cantidad ruedas: 4 Moto Cantidad ruedas: 2 Salida
  • 23. Herencia public Vehículo { public: Vehículo(int); void PrintCantRuedas(); void PrintLetraColor();private:int _r; protected:char _c;}; public Moto { public Auto { public: public: Moto(); Auto(); void SetLetraColor(char); voidSetLetraColor(char);}; }; void Vehículo::PrintLetraColor () { cout << ‘’Letra color: ’’ << _c << endl; } void (Moto/Auto)::SetLetraColor(charc) { _c = c; }
  • 24. Herencia main(){ Auto a; Moto m;cout << ‘’Auto’’ << endl;a.PrintCantRuedas();a.SetLetraColor(‘R’);a.PrintLetraColor();cout << ‘’Moto’’ << endl;m.PrintCantRuedas();m.SetLetraColor(‘V’);m.PrintLetraColor();} Auto Cantidad ruedas: 4 Letra color: R Moto Cantidad ruedas: 2 Letra color: V Salida
  • 25. Herencia Redefinición de funciones miembro de clase base en clase derivada public Vehículo { public: … void PrintLetraColor();}; public Moto : public Vehículo { public Auto : public Vehículo { public: public: … … void PrintLetraColor(); void PrintLetraColor();}; };
  • 26. Herencia Clase base directa e indirectaAuto hereda directamente de vehículoSedan hereda directamente de autoSedan hereda indirectamente de vehículo Vehículo Auto Sedan
  • 27. Herencia Herencia múltipleLa clase Anfibio hereda funcionalidad tanto de Vehículo (Andar) como así también de Embarcación (Navegar) public Anfibio: public Vehículo, public Embarcación { … }; Embarcación Vehículo Velero Barco Auto Anfibio Moto

Notas del editor

  1. Introto OOP
  2. Inicios programacion estructurada90’s  OOPPrograma definido a traves de los datos y acciones  structs resuelve los datos, el todo lo resuelve la clase
  3. Mostrar que tiene de mas una clase de una struct: metodos, modificadores de acceso
  4. Clase vs Objeto
  5. Time t;  instancia de Time. El nombre de la clase se convierte en el nuevo especificador de tipo.Aquí es donde se empieza a ver por qué C++ es un lenguaje extensible
  6. Sobrecarga de Constructores
  7. No hay sobrecarga de destructores.El destructor no destruye el objeto, o sea, no es el encargado de liberar la memoria
  8. Los objetos de una clase derivada, sontambien objetos del tipo de la clase base, pero no así viceversa (un cuadrado es un poligono, pero no todo poligono es un cuadrado)
  9. Herencia publica, privada o protegida:publica: miembros públicos y protegidos de clase base, serán públicos y protegidos respect en clase derivada (los privados no son heredados!!)privada: miembros públicos y protegidos de clase base, serán privados en clase derivadaprotegida: miembros públicos y protegidos de clase base, serán protegidos en clase derivada
  10. 19.6Cuando se redefinen metodos, al invocar dicho metodo en una clase derivada, su version es la que se llama, y no la de su clase baseA pesar de eso, usando el operador de alcance, se puede acceder a la version de la clase base (Base::NombreMetodo)
  11. 19.8