Vous êtes sur la page 1sur 21

Repblica olivariana de !

ene"uela #inisterio de $ducaci%n Superior &undaci%n #isi%n Sucre 'ldea &ra( )edro de 'greda Desarrollo de Software

Fundamentos Programacin Orientada a Objetos ( POO ) - Parte I


Desarrollo de Software

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Contenido
* +,u- es un )aradigma de )rogramaci%n. * )aradigma /rientado a /bjetos. * /bjeto o instancia. * Clase. * 'tributos. * #-todos. * Implementaci%n en C00.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Qu es un paradigma de programacin?
Conjunto de 1erramientas ( t-cnicas 2ue conforman el soporte de una tecnolog3a4 en este caso para desarrollo de programas. IBM 2005

Paradigma Orientado a Objetos


Resultado de la evoluci%n natural de la programaci%n5 se transformo en una metodolog3a de programaci%n de prop%sito general 2ue simula la forma en 2ue el 1ombre trabaja ( cu(a idea b6sica es 2ue percibimos al mundo 2ue nos rodea como una variedad de objetos.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Origen Paradigma Orientado a Objetos


Origen * Crisis del software 7 Cada ve" mas costoso. 7 Dif3cil mantenimiento. 7 !ida til cada ve" mas corta. 7 8ecesidad de r6pida adaptaci%n a cambios. 7 Soluciones inform6ticas con poca visi%n 1ol3stica. Soluciones 7 )arametri"aci%n. 7 #odulorari"aci%n. 7 ibliotecas. 7 Soluciones integrales m6s orientadas al negocio.
Desarrollo de Software

Ing. Juan Cisneros juanv.cisneros@gmail.com

Conceptos fundamentales
9n Objeto es una entidad con una estructura de datos interna bien definida5 junto a un conjunto de acciones 2ue describen su comportamiento. $s la unidad b6sica de la )rogramaci%n /rientada a /bjetos : )// ;. 9n objeto o instancia es una variable concreta de una clase con su propia copia de variables miembros. * * * * 9n objeto tiene estado5 comportamiento e identidad. <iene datos internos 2ue le dan el estado. <iene m-todos para producir comportamiento. Cada objeto tiene una direcci%n nica en memoria lo 2ue le da identidad.

Ejemplos= Juan $l $studiante5 8ora >a $studiante5 )edro &lorista5 #ar3a &lorista.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales
9na clase es= * 9na categor3a de objetos con caracter3sticas comunes. * 9na plantilla 2ue se usa para crear mltiples objetos con caracter3sticas similares. >as clases engloban las caracter3sticas de un conjunto particular de objetos. Cuando se escribe un programa en un lenguaje orientado a objetos no se definen objetos individuales sino clases de objetos. >as clases son tipos de variables o tipos de datos creados por el usuario. Se puede e?tender un lenguaje de programaci%n adicionando nuevos tipos de datos espec3ficos acorde a las necesidades del problema a resolver. >as clases pueden estar formadas por variables miembros ( funciones miembros. Ejemplos= &lorista5 $studiante.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Implementacin de un clase en C++


// Sintaxis en C++ class <nombre de la clase> { private: [lista de miembros] protected: [lista de miembros] public: [lista de miembros] }; Buenas Prcticas: * 8ombrar las clases5 atributos ( metodos utili"ando la notaci%n Camell4 9pperCamelCase:8ombre'pellido; o lowerCamelCase:nombre'pellido;. * Colocar la apertura de ambiente en la misma l3nea o en una l3nea aparte.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales
Cada clase puede estar compuesta por= Atributos: definen el estado de la clase. * 'tributos pasivos. * !ariables miembros * Campos. Mtodos= definen el comportamiento de la clase. * &unciones miembros. * 'tributos activos. * /peraciones. * Comportamiento ( responsabilidades. Estudiemos la Clase Televisor

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales - tributos


>os atributos son caracter3sticas5 propiedades 2ue 1acen 2ue un objeto se diferencie del otro. )ueden determinar apariencia5 cualidades5 estado5 etc. >os atributos se definen por variables. )ara cada variable se define su tipo. $jemplo= // en C++ <Tipo de dato> nombreAtributo; // en C++ class Televisor { int canalTv; int modelo; char estadoTv; };

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales - !todos


$l comportamiento de una clase se implementa a trav-s de sus mtodos o funciones miembros. 9na clase o un objeto puede llamar m-todos de otras clases para= @ Indicar a otro objeto 2ue cambie. @ )edir a otro objeto 2ue 1aga algo. >a definici%n b6sica de un mtodo en C00 cuenta de= @ <ipo de retorno :tipo de objeto o tipo primitivo;. @ 8ombre del m-todo. @ >ista de par6metros. @ Cuerpo del m-todo.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales - !todos


AA$n C00 BvisibilidadAopcionalCBtipo@retornoAvoidC nombre#etodo :Dpar6metrosE; F AAcuerpo del m-todo G >as tres primeras partes se conocen como interfa" o firma del mtodo. isibilidad )ublic5 private5 protected Tipo!retorno $s el tipo primitivo o la clase del valor devuelto. #oid indica 2ue no 1a( valor de retorno. "ombreMetodo Debe e?presar claramente lo 2ue se 1ace en el cuerpo del m-todo.
Ing. Juan Cisneros juanv.cisneros@gmail.com Desarrollo de Software

Conceptos fundamentales - !todos


#ista de parmetros Conjunto de declaraciones de variables :tipo@variables; separadas por coma 2ue reciben valor al invocar al m-todo.>os par6metros se convierten en variables locales en el cuerpo del m-todo. )uede 2ue un m-todo no tenga par6metros. >os par6metros se iniciali"an en cada llamada al m-todo al cual pertenecen con los valores especificados al llamarlos. $n C00 se permite 2ue los par6metros tengan valores por defecto. Cuerpo del Metodo $n el cuerpo del mtodo se pueden definir= @ $?presiones @ Condicionales @ Ciclos @ >lamadas a m-todos de otras clases5 etc. ' menos 2ue apare"ca como tipo de retorno #oid en el cuerpo del m-todo 1a( 2ue devolver la variable del tipo indicado a trav-s de la cl6sula return.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Conceptos fundamentales - !todos


$jemplo= class Televisor { int canalTv; int modelo; char estadoTv; Public: void verificar stadoTv!char estadoTv"; int iniciar!"; };

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

Ejemplo OO
$jemplo= 9n televisor tendr6 botones ( un control remoto por medio del cual accedemos a sus funciones :encender5 apagar5 cambiar de canal5 etc.;. )or otro lado5 podr3amos pensar 2ue el objeto tiene un estado5 es decir5 el televisor se encuentra prendido o apagado5 ( posee ciertas propiedades :como la norma en la 2ue trabaja5 la propiedades ( cantidad de canales 2ue maneja el sintoni"ador5 el tamaHo de la pantalla5 el canal actualmente sintoni"ado5 etc.;. $n definitiva5 visto de manera general5 el televisor es un objeto con ciertas funcionalidades ( ciertas propiedades. )odr3amos establecer5 entonces5 de manera no rigurosa5 2ue un objeto es un conjunto de propiedades ( m-todos=

Clase Televisor

Objeto $ Propiedad % Metodos

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

$undamentos Programacin Orientado a Objetos


&undamentos Programaci'n orientada a objetos (Alan )a*+ * * * * * * <-cnica de programaci%n basada en el dic1o Idivide ( vencer6sJ. <odo es un /bjeto. 9n programa es un conjunto de objetos envi6ndose mensajes entre s3. Cada /bjeto tiene su memoria5 conformada por otros objetos. <odo objeto tiene su propio tipo :pertenece a una clase;. <odo objeto de un mismo tipo puede recibir los mismos mensajes.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

lgunos entornos de desarrollo en C++


,"- . #inu/ * * Kean( :1ttp=AAwww.gean(.orgA; Code== locLs :1ttp=AAwww.codeblocLs.orgA;

0indo1s * * Dev@C00 :1ttp=AAwww.bloods1ed.netAdevcpp.1tml; Code== locLs :1ttp=AAwww.codeblocLs.orgA;

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

!i primer programa C++ %&ello 'orld(


2olaMision3ucre.cpp Minclude BiostreamC AAIncluir la libreria para entrada ( salida de datos using namespace std4 AA'l incluir el namespace eliminamos la necesidad de escribir std=cout int main:; F cout BB NOello PorldQN BB endl4 cout BB N ienvenido a la #isi%n SucreN BB endl4 G

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

!i Primer Programa OO
persona.cpp Minclude BiostreamC AAIncluir la libreria para entrada ( salida de datos using namespace std4 AA'l incluir el namespace eliminamos la necesidad de escribir std=cout class )ersonaF AA Declaracion de la clase int edad5 cedula4 AA atributos c1ar nombre'pellidoDRSE4 public= void obtenerDatos)ersona:;F AA metodo coutBBN8ombre ( 'pellido=NBB N Juan CisnerosN BBendl4 coutBBNCedula de Identidad=NBB N 1TUSVW1XN BBendl4 coutBBN$dad=NBB N URN BBendl4 G G4

AA)rograma )rincipal :main; int main:;F )ersona juan4 AA Instaciamos el objeto juan.obtenerDatos)ersona:;4 AA 'ccedemos al metodo obtenerDatos)ersona:; de la clase G

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

uto estudio
* +,u- es un algoritmo . * Investigue las caracter3sticas del lenguaje de programaci%n C00. * Instalar algunos de los editores recomendados en clase ( ejecutar los U ejercicios .cpp vistos5 sera tema de estudio para la clase siguiente.

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

)ibliograf*a
* 'n introduction to /bject@/riented )rogramming. <imot1( udd. 'ddison Pesle(5 1WW1. * <1e C00 )rogramming >anguage. <1ird $dition. Stroustrup. 'ddison Pesle(5 1WWY. * <1inLing in Java. <1ird $dition. ruce $cLel5 USSU. jarne

Ing. Juan Cisneros juanv.cisneros@gmail.com

Desarrollo de Software

U1

Vous aimerez peut-être aussi